FreeBSD Bugzilla – Attachment 194286 Details for
Bug 229057
devel/libunwind: port to aarch64
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
libunwind-aarch64.patch
libunwind-aarch64.patch (text/plain), 4.31 KB, created by
Val Packett
on 2018-06-16 00:33:15 UTC
(
hide
)
Description:
libunwind-aarch64.patch
Filename:
MIME Type:
Creator:
Val Packett
Created:
2018-06-16 00:33:15 UTC
Size:
4.31 KB
patch
obsolete
>diff --git c/devel/libunwind/Makefile i/devel/libunwind/Makefile >index 52dc5944ddf8..248ed66041a7 100644 >--- c/devel/libunwind/Makefile >+++ i/devel/libunwind/Makefile >@@ -18,7 +18,7 @@ OPTIONS_SUB= yes > DOCS_CONFIGURE_ON= ac_cv_path_LATEX2MAN=${TRUE} > DOCS_CONFIGURE_OFF= --disable-documentation > >-ONLY_FOR_ARCHS= i386 amd64 >+ONLY_FOR_ARCHS= i386 amd64 aarch64 > > GNU_CONFIGURE= yes > INSTALL_TARGET= install-strip >diff --git c/devel/libunwind/files/patch-include_libunwind-aarch64.h i/devel/libunwind/files/patch-include_libunwind-aarch64.h >new file mode 100644 >index 000000000000..d155e228f92f >--- /dev/null >+++ i/devel/libunwind/files/patch-include_libunwind-aarch64.h >@@ -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" \ >diff --git c/devel/libunwind/files/patch-include_libunwind__i.h i/devel/libunwind/files/patch-include_libunwind__i.h >new file mode 100644 >index 000000000000..bd1d60935304 >--- /dev/null >+++ i/devel/libunwind/files/patch-include_libunwind__i.h >@@ -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() >diff --git c/devel/libunwind/files/patch-src_aarch64_Ginit.c i/devel/libunwind/files/patch-src_aarch64_Ginit.c >new file mode 100644 >index 000000000000..9a5cd8ffa026 >--- /dev/null >+++ i/devel/libunwind/files/patch-src_aarch64_Ginit.c >@@ -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; >+ } >diff --git c/devel/libunwind/files/patch-src_coredump___UCD__access__reg__freebsd.c i/devel/libunwind/files/patch-src_coredump___UCD__access__reg__freebsd.c >new file mode 100644 >index 000000000000..90615b82b333 >--- /dev/null >+++ i/devel/libunwind/files/patch-src_coredump___UCD__access__reg__freebsd.c >@@ -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 >diff --git c/devel/libunwind/files/patch-src_ptrace___UPT__access__fpreg.c i/devel/libunwind/files/patch-src_ptrace___UPT__access__fpreg.c >new file mode 100644 >index 000000000000..d3cb94a95311 >--- /dev/null >+++ i/devel/libunwind/files/patch-src_ptrace___UPT__access__fpreg.c >@@ -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
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 229057
: 194286