diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2017-10-09 12:33:24 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2017-10-09 12:33:24 +0000 |
commit | d4cd7692e93df216887c40707d4b887a03280a2c (patch) | |
tree | 0d362a9ac4076e0afffc6aad40591e242b6c4a37 /testing | |
parent | 3f9d699c20999a166996c9ee9a383cccbb1eabab (diff) | |
download | aports-d4cd7692e93df216887c40707d4b887a03280a2c.tar.bz2 aports-d4cd7692e93df216887c40707d4b887a03280a2c.tar.xz |
testing/libsigsegv: build fix for aarch64
backport patch from upstream
Diffstat (limited to 'testing')
-rw-r--r-- | testing/libsigsegv/0001-Avoid-use-of-glibc-internal-macros.patch | 109 | ||||
-rw-r--r-- | testing/libsigsegv/APKBUILD | 7 |
2 files changed, 114 insertions, 2 deletions
diff --git a/testing/libsigsegv/0001-Avoid-use-of-glibc-internal-macros.patch b/testing/libsigsegv/0001-Avoid-use-of-glibc-internal-macros.patch new file mode 100644 index 0000000000..9de94c7f72 --- /dev/null +++ b/testing/libsigsegv/0001-Avoid-use-of-glibc-internal-macros.patch @@ -0,0 +1,109 @@ +From 7d365628d84b1698a68d968b00544f8b6630e3ce Mon Sep 17 00:00:00 2001 +From: Bruno Haible <bruno@clisp.org> +Date: Sat, 4 Mar 2017 16:36:30 +0100 +Subject: [PATCH] Avoid use of glibc-internal macros. + +--- + ChangeLog | 10 ++++++++++ + src/fault-linux-arm.h | 4 ++-- + src/fault-linux-powerpc.h | 8 ++++---- + src/fault-linux-sparc-old.h | 6 +++--- + src/fault-linux-sparc.h | 4 ++-- + 5 files changed, 21 insertions(+), 11 deletions(-) + +diff --git a/src/fault-linux-arm.h b/src/fault-linux-arm.h +index a3da5f8..efd9d5b 100644 +--- a/src/fault-linux-arm.h ++++ b/src/fault-linux-arm.h +@@ -17,7 +17,7 @@ + + #include "fault-posix-ucontext.h" + +-#if __WORDSIZE == 64 ++#if defined(__aarch64__) || defined(__ARM_64BIT_STATE) || defined(__ARM_PCS_AAPCS64) /* 64-bit */ + + /* See glibc/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h. + Note that the 'mcontext_t' defined in +@@ -27,7 +27,7 @@ + + #define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.sp + +-#else ++#else /* 32-bit */ + + /* See glibc/sysdeps/unix/sysv/linux/arm/sys/ucontext.h + and the definition of GET_STACK in +diff --git a/src/fault-linux-powerpc.h b/src/fault-linux-powerpc.h +index 97fd0ab..36a3468 100644 +--- a/src/fault-linux-powerpc.h ++++ b/src/fault-linux-powerpc.h +@@ -1,5 +1,5 @@ + /* Fault handler information. Linux/PowerPC version when it supports POSIX. +- Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> ++ Copyright (C) 2002, 2009, 2017 Bruno Haible <bruno@clisp.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -26,13 +26,13 @@ + and the 'struct pt_regs' defined in <asm/ptrace.h> + are quite different types. */ + +-#if __WORDSIZE == 32 ++#if defined(__powerpc64__) || defined(_ARCH_PPC64) /* 64-bit */ ++# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.gp_regs[1] ++#else /* 32-bit */ + /* both should be equivalent */ + # if 0 + # define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.regs->gpr[1] + # else + # define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1] + # endif +-#else +-# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.gp_regs[1] + #endif +diff --git a/src/fault-linux-sparc-old.h b/src/fault-linux-sparc-old.h +index 2acaeb3..3212fbd 100644 +--- a/src/fault-linux-sparc-old.h ++++ b/src/fault-linux-sparc-old.h +@@ -1,5 +1,5 @@ + /* Fault handler information. Linux/SPARC version. +- Copyright (C) 2002, 2009 Bruno Haible <bruno@clisp.org> ++ Copyright (C) 2002, 2009, 2017 Bruno Haible <bruno@clisp.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -23,9 +23,9 @@ + #if 1 /* Old? FIXME */ + # define SIGSEGV_FAULT_STACKPOINTER scp->sigc_sp + #else +-# if __WORDSIZE == 64 ++# if defined(__sparcv9) || defined(__arch64__) /* 64-bit */ + # define SIGSEGV_FAULT_STACKPOINTER scp->sigc_regs.u_regs[14] +-# else ++# else /* 32-bit */ + # define SIGSEGV_FAULT_STACKPOINTER scp->si_regs.u_regs[14] + # endif + #endif +diff --git a/src/fault-linux-sparc.h b/src/fault-linux-sparc.h +index 8b37874..9c1c285 100644 +--- a/src/fault-linux-sparc.h ++++ b/src/fault-linux-sparc.h +@@ -27,13 +27,13 @@ + (see also <asm/sigcontext.h>) + are quite different types. */ + +-#if __WORDSIZE == 64 ++#if defined(__sparcv9) || defined(__arch64__) /* 64-bit */ + /* From linux-4.8.1/arch/sparc/kernel/signal_64.c, function setup_rt_frame, we + see that ucp is not an 'ucontext_t *' but rather a 'struct sigcontext *' + that happens to have the same value as sip (which is possible because a + 'struct sigcontext' starts with 128 bytes room for the siginfo_t). */ + #define SIGSEGV_FAULT_STACKPOINTER (((struct sigcontext *) ucp)->sigc_regs.u_regs[14] + 2047) +-#else ++#else /* 32-bit */ + /* From linux-4.8.1/arch/sparc/kernel/signal_32.c, function setup_rt_frame, + and linux-4.8.1/arch/sparc/kernel/signal32.c, function setup_rt_frame32, we + see that ucp is a 'struct pt_regs *' or 'struct pt_regs32 *', respectively. +-- +2.14.2 + diff --git a/testing/libsigsegv/APKBUILD b/testing/libsigsegv/APKBUILD index 64dc684981..2bb2820406 100644 --- a/testing/libsigsegv/APKBUILD +++ b/testing/libsigsegv/APKBUILD @@ -12,7 +12,9 @@ depends_dev="" makedepends="" install="" subpackages="$pkgname-dev" -source="http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-$pkgver.tar.gz" +source="http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-$pkgver.tar.gz + 0001-Avoid-use-of-glibc-internal-macros.patch + " builddir="$srcdir/$pkgname-$pkgver" @@ -34,4 +36,5 @@ package() { -C "$builddir" install } -sha512sums="6d60bbaa704b86c12a32a6b0eadd30fa7736d0e0ff8a1c45af1b15b7b7d4524f39902fe3f7f47a100bc2586e32aa25bb575e3d859d9ccb5fd7e99ba4e62f7b02 libsigsegv-2.11.tar.gz" +sha512sums="6d60bbaa704b86c12a32a6b0eadd30fa7736d0e0ff8a1c45af1b15b7b7d4524f39902fe3f7f47a100bc2586e32aa25bb575e3d859d9ccb5fd7e99ba4e62f7b02 libsigsegv-2.11.tar.gz +991f41be604a31fa70114994181d98667fe50d7feb14c306e20b322bf5966e2b7776f3d0991318d1e9a6b77acb11d291d771681244eb1b31a48b0229885e41af 0001-Avoid-use-of-glibc-internal-macros.patch" |