mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-18 03:46:03 +00:00
Port to aarch64. Tested for no-harm on amd64.
While here, pet portlint. PR: 229057 Submitted by: greg at unrelenting.technology Approved by: portmgr (tier-2 blanket)
This commit is contained in:
parent
befa177970
commit
0d9d8a8521
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=473531
@ -13,17 +13,17 @@ COMMENT= Generic stack unwinding library
|
||||
LICENSE= MIT
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
ONLY_FOR_ARCHS= aarch64 amd64 i386
|
||||
|
||||
OPTIONS_DEFINE= DOCS
|
||||
OPTIONS_SUB= yes
|
||||
DOCS_CONFIGURE_ON= ac_cv_path_LATEX2MAN=${TRUE}
|
||||
DOCS_CONFIGURE_OFF= --disable-documentation
|
||||
|
||||
ONLY_FOR_ARCHS= i386 amd64
|
||||
|
||||
USES= libtool pathfix pkgconfig
|
||||
USE_LDCONFIG= yes
|
||||
GNU_CONFIGURE= yes
|
||||
INSTALL_TARGET= install-strip
|
||||
USE_LDCONFIG= yes
|
||||
USES= libtool pathfix pkgconfig
|
||||
LLD_UNSAFE= yes
|
||||
|
||||
PLIST_SUB= ARCH=${ARCH:S|i386|x86|:S|amd64|x86_64|}
|
||||
|
11
devel/libunwind/files/patch-include_libunwind-aarch64.h
Normal file
11
devel/libunwind/files/patch-include_libunwind-aarch64.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- include/libunwind-aarch64.h.orig 2018-06-15 23:58:09 UTC
|
||||
+++ include/libunwind-aarch64.h
|
||||
@@ -177,7 +177,7 @@ typedef ucontext_t unw_tdep_context_t;
|
||||
|
||||
#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; \
|
||||
+ register uint64_t *unw_base asm ("x0") = (uint64_t*) unw_ctx->uc_mcontext.mc_gpregs.gp_x; \
|
||||
__asm__ __volatile__ ( \
|
||||
"stp x0, x1, [%[base], #0]\n" \
|
||||
"stp x2, x3, [%[base], #16]\n" \
|
14
devel/libunwind/files/patch-include_libunwind__i.h
Normal file
14
devel/libunwind/files/patch-include_libunwind__i.h
Normal file
@ -0,0 +1,14 @@
|
||||
--- include/libunwind_i.h.orig 2018-06-15 23:58:15 UTC
|
||||
+++ include/libunwind_i.h
|
||||
@@ -86,6 +86,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# error Host has unknown byte-order.
|
||||
# endif
|
||||
#endif
|
||||
+#ifdef __FreeBSD__
|
||||
+#define __BYTE_ORDER BYTE_ORDER
|
||||
+#define __LITTLE_ENDIAN LITTLE_ENDIAN
|
||||
+#define __BIG_ENDIAN BIG_ENDIAN
|
||||
+#endif
|
||||
|
||||
#if defined(HAVE__BUILTIN_UNREACHABLE)
|
||||
# define unreachable() __builtin_unreachable()
|
11
devel/libunwind/files/patch-src_aarch64_Ginit.c
Normal file
11
devel/libunwind/files/patch-src_aarch64_Ginit.c
Normal file
@ -0,0 +1,11 @@
|
||||
--- src/aarch64/Ginit.c.orig 2018-06-15 23:58:20 UTC
|
||||
+++ src/aarch64/Ginit.c
|
||||
@@ -44,7 +44,7 @@ static inline void *
|
||||
uc_addr (ucontext_t *uc, int reg)
|
||||
{
|
||||
if (reg >= UNW_AARCH64_X0 && reg <= UNW_AARCH64_V31)
|
||||
- return &uc->uc_mcontext.regs[reg];
|
||||
+ return &uc->uc_mcontext.mc_gpregs.gp_x[reg];
|
||||
else
|
||||
return NULL;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
--- src/coredump/_UCD_access_reg_freebsd.c.orig 2018-06-16 00:05:10 UTC
|
||||
+++ src/coredump/_UCD_access_reg_freebsd.c
|
||||
@@ -110,6 +110,10 @@ _UCD_access_reg (unw_addr_space_t as,
|
||||
Debug(0, "bad regnum:%d\n", regnum);
|
||||
return -UNW_EINVAL;
|
||||
};
|
||||
+#elif defined(UNW_TARGET_AARCH64)
|
||||
+ if (regnum < 0 || regnum >= UNW_AARCH64_FPCR)
|
||||
+ return -UNW_EINVAL;
|
||||
+ *valp = ui->prstatus->pr_reg.x[regnum];
|
||||
#else
|
||||
#error Port me
|
||||
#endif
|
@ -0,0 +1,20 @@
|
||||
--- src/ptrace/_UPT_access_fpreg.c.orig 2018-06-15 23:58:03 UTC
|
||||
+++ src/ptrace/_UPT_access_fpreg.c
|
||||
@@ -85,6 +85,8 @@ _UPT_access_fpreg (unw_addr_space_t as, unw_regnum_t r
|
||||
memcpy(&fpreg.fpr_xacc[reg], val, sizeof(unw_fpreg_t));
|
||||
#elif defined(__i386__)
|
||||
memcpy(&fpreg.fpr_acc[reg], val, sizeof(unw_fpreg_t));
|
||||
+#elif defined(__aarch64__)
|
||||
+ memcpy(&fpreg.fp_q[reg], val, sizeof(unw_fpreg_t));
|
||||
#else
|
||||
#error Fix me
|
||||
#endif
|
||||
@@ -95,6 +97,8 @@ _UPT_access_fpreg (unw_addr_space_t as, unw_regnum_t r
|
||||
memcpy(val, &fpreg.fpr_xacc[reg], sizeof(unw_fpreg_t));
|
||||
#elif defined(__i386__)
|
||||
memcpy(val, &fpreg.fpr_acc[reg], sizeof(unw_fpreg_t));
|
||||
+#elif defined(__aarch64__)
|
||||
+ memcpy(val, &fpreg.fp_q[reg], sizeof(unw_fpreg_t));
|
||||
#else
|
||||
#error Fix me
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user