From nobody Wed Mar 23 08:33:17 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 6A0A81A1580E; Wed, 23 Mar 2022 08:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KNhSs2YbWz4chp; Wed, 23 Mar 2022 08:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648024397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oo1oWA0jw0omqoWm+wo82DQH2PE3/OZbWjn4YZo07bI=; b=CpaH/pdFJMiPxvCaLOyfBTZIuGV2P0AQuYMV5Ymd8WPO9k+tXr/bVWvYxEXtY0Ckbbxvol xXzZKwln6HKyfcqkOLCfSapV8RwwjIyiVac0Mvhm31b2MJmVnRp946plHOBJYcTvhBmWsq 7Q7DTOamOKAD7nWLBmm9c5SMjpDE9BCYHd4IdiYeqUow7F2h1mLgvMSkG1/XIZCiikK2zy wI0Q0gL8Du+GUPWbj0NS3VQKl1i4R2GMb54JC7hxdzXhKExjRblMc7q+pfJ/iSZbM+i6wb RE9lD4MzlXYG7H6BUJn0FhpAqNSQ4TMAdUJDUE+cU+1RJK/EdgkzGoU7Kak2Rg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 378B020519; Wed, 23 Mar 2022 08:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 22N8XHsD003321; Wed, 23 Mar 2022 08:33:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22N8XHuQ003320; Wed, 23 Mar 2022 08:33:17 GMT (envelope-from git) Date: Wed, 23 Mar 2022 08:33:17 GMT Message-Id: <202203230833.22N8XHuQ003320@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Mikael Urankar Subject: git: b53231cc31b2 - main - devel/libunwind: Fix build on aarch64 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mikael X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b53231cc31b2d4e933ba2893c8079cc7d1f07413 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648024397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oo1oWA0jw0omqoWm+wo82DQH2PE3/OZbWjn4YZo07bI=; b=wrLnKBU37XGy9YXnIgQzL+Cb93c11r1JimC1bzJWJBT2JYtdkKD6ffRWxpNnwkUYISFDHA VazipEM3LsIgoYqRgGbhl3B3wryxC89ziOnAbcHLOyyS9544D7iyYYm3IsGe5PvSrFQeZs BvaPJ0KMT4nWOgZjwx3KX371ylIPk3ukwPniSKPyj04YWBGEcjtfduDtuOdttYglwFbHn+ iwAmnsQ3y7YE1fJR6KRBik8j9o7dCTG8c79acRYkbtKecS78XndsNcGzWj4o2Ml3ZJQgzw pomWBh4qejk4qaEO09I1zquJHMfuxEBswYw9DN+u1qcJ+VF7UT7npgEqXikRVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1648024397; a=rsa-sha256; cv=none; b=Vy81C/okrXc9849mhii6Rw8RrVRNYEko1rx4tvA2fCNne8JH6xdG5naUX0hNA1+FOH9KLN FUDSZoi+sjivVSUJs52hDAfHTDk4hpQ2k88+TLT3n4rR0rUKbXbW73zhXI1rC8mEWy/XRc 1pqeoxvxVZuYRDtnDjCY9zOT9UxINcqxCQrS6EkQUNlZJjR4WYBZjHxgfbOO1emfB1EZXz r7G/e4W2kTISkZLxpTLXHe5cxQXnHo9/Tu4R6w74Dwo6/VqfS6E+hoYppo+SvX8fxjbmum H5J2nGs4BU+GPK65bwcU7NgndVO+uw8HJgddu7kQ5cP9+iNX+oczuJen7a6KXQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mikael: URL: https://cgit.FreeBSD.org/ports/commit/?id=b53231cc31b2d4e933ba2893c8079cc7d1f07413 commit b53231cc31b2d4e933ba2893c8079cc7d1f07413 Author: Mikael Urankar AuthorDate: 2022-03-23 08:29:06 +0000 Commit: Mikael Urankar CommitDate: 2022-03-23 08:29:06 +0000 devel/libunwind: Fix build on aarch64 PR: 262447 Approved by: portmgr (build fix blanket) --- .../files/patch-include_libunwind-aarch64.h | 28 ++++++++++++++++++++++ devel/libunwind/files/patch-src_aarch64_Ginit.c | 20 ++++++++++++++++ .../libunwind/files/patch-src_aarch64_unwind__i.h | 13 ++++++++++ 3 files changed, 61 insertions(+) diff --git a/devel/libunwind/files/patch-include_libunwind-aarch64.h b/devel/libunwind/files/patch-include_libunwind-aarch64.h new file mode 100644 index 000000000000..b15e9f14f249 --- /dev/null +++ b/devel/libunwind/files/patch-include_libunwind-aarch64.h @@ -0,0 +1,28 @@ +--- include/libunwind-aarch64.h.orig 2021-12-01 00:46:39 UTC ++++ include/libunwind-aarch64.h +@@ -226,15 +226,24 @@ typedef struct + #else + /* On AArch64, we can directly use ucontext_t as the unwind context. */ + typedef ucontext_t unw_tdep_context_t; ++#if defined(__FreeBSD__) ++typedef ucontext_t unw_fpsimd_context_t; + #endif ++#endif + + + #include "libunwind-common.h" + #include "libunwind-dynamic.h" + ++#if defined(__FreeBSD__) ++#define UNW_BASE register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.mc_gpregs.gp_x[0]; ++#else ++#define UNW_BASE register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.regs; ++#endif ++ + #define unw_tdep_getcontext(uc) ({ \ + unw_tdep_context_t *unw_ctx = (uc); \ +- register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.regs; \ ++ UNW_BASE \ + __asm__ __volatile__ ( \ + "stp x0, x1, [%[base], #0]\n" \ + "stp x2, x3, [%[base], #16]\n" \ diff --git a/devel/libunwind/files/patch-src_aarch64_Ginit.c b/devel/libunwind/files/patch-src_aarch64_Ginit.c new file mode 100644 index 000000000000..d4687b361b27 --- /dev/null +++ b/devel/libunwind/files/patch-src_aarch64_Ginit.c @@ -0,0 +1,20 @@ +--- src/aarch64/Ginit.c.orig 2021-11-30 17:12:31 UTC ++++ src/aarch64/Ginit.c +@@ -47,9 +47,17 @@ static inline void * + uc_addr (unw_tdep_context_t *uc, int reg) + { + if (reg >= UNW_AARCH64_X0 && reg < UNW_AARCH64_V0) ++#if defined(__FreeBSD__) ++ return &uc->uc_mcontext.mc_gpregs.gp_x[reg]; ++#else + return &uc->uc_mcontext.regs[reg]; ++#endif + else if (reg >= UNW_AARCH64_V0 && reg <= UNW_AARCH64_V31) ++#if defined(__FreeBSD__) ++ return &GET_FPCTX(uc)->uc_mcontext.mc_fpregs.fp_q[reg - UNW_AARCH64_V0]; ++#else + return &GET_FPCTX(uc)->vregs[reg - UNW_AARCH64_V0]; ++#endif + else + return NULL; + } diff --git a/devel/libunwind/files/patch-src_aarch64_unwind__i.h b/devel/libunwind/files/patch-src_aarch64_unwind__i.h new file mode 100644 index 000000000000..aa1e8ccbc838 --- /dev/null +++ b/devel/libunwind/files/patch-src_aarch64_unwind__i.h @@ -0,0 +1,13 @@ +--- src/aarch64/unwind_i.h.orig 2020-04-28 15:49:14 UTC ++++ src/aarch64/unwind_i.h +@@ -59,6 +59,10 @@ extern int aarch64_local_resume (unw_addr_space_t as, + } while (0) + #endif + ++#if defined(__FreeBSD__) ++#define GET_FPCTX(uc) ((unw_tdep_context_t *)(&uc->uc_mcontext.mc_spare)) ++#else + #define GET_FPCTX(uc) ((unw_fpsimd_context_t *)(&uc->uc_mcontext.__reserved)) ++#endif + + #endif /* unwind_i_h */