summaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
Diffstat (limited to 'user')
-rw-r--r--user/nettle/APKBUILD14
-rw-r--r--user/nettle/ppc64.patch95
2 files changed, 106 insertions, 3 deletions
diff --git a/user/nettle/APKBUILD b/user/nettle/APKBUILD
index e39fb203c..a77783a17 100644
--- a/user/nettle/APKBUILD
+++ b/user/nettle/APKBUILD
@@ -10,10 +10,17 @@ arch="all"
license="LGPL-3.0+ OR GPL-2.0+"
depends=""
depends_dev="gmp-dev"
-makedepends="$depends_dev m4 openssl-dev texinfo"
+makedepends="$depends_dev m4 openssl-dev texinfo autoconf automake"
subpackages="$pkgname-dev $pkgname-utils"
source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz
- nettle-2.4-makefile.patch"
+ nettle-2.4-makefile.patch
+ ppc64.patch
+ "
+
+prepare() {
+ default_prepare
+ autoreconf -i
+}
build() {
./configure \
@@ -47,4 +54,5 @@ utils() {
}
sha512sums="9901eba305421adff6d551ac7f478dff3f68a339d444c776724ab0b977fe6be792b1d2950c8705acbe76bd924fd6d898a65eded546777884be3b436d0e052437 nettle-3.7.3.tar.gz
-c7d9741a7a37d225f3f0db16d355e13b04cc0f1ac56882a6ff31ef15c1a1a0aee7a70cf1ec8bbf2c46b9b0dcec153da7a7aa6b8909a72d76dd4d669cbbaceaa4 nettle-2.4-makefile.patch"
+c7d9741a7a37d225f3f0db16d355e13b04cc0f1ac56882a6ff31ef15c1a1a0aee7a70cf1ec8bbf2c46b9b0dcec153da7a7aa6b8909a72d76dd4d669cbbaceaa4 nettle-2.4-makefile.patch
+10bd1d5b3c8bd9b602cfcbe9530dece8c35df0c47899cc3cc4670e6462ed662a468a7ee42de10aa180b5956b2ef6af53be36edc59cb7c5de2ed2f7c80dd56a2e ppc64.patch"
diff --git a/user/nettle/ppc64.patch b/user/nettle/ppc64.patch
new file mode 100644
index 000000000..d13a2ec88
--- /dev/null
+++ b/user/nettle/ppc64.patch
@@ -0,0 +1,95 @@
+From c7cf19390dcb0e9792fc23b0c935c1fe5e4f91e1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
+Date: Tue, 4 Jan 2022 20:37:27 +0100
+Subject: [PATCH] ppc: New configure test for ELFV2_ABI
+
+---
+ ChangeLog | 9 +++++++++
+ config.m4.in | 1 +
+ configure.ac | 14 +++++++++++++-
+ powerpc64/machine.m4 | 4 ++--
+ 4 files changed, 25 insertions(+), 3 deletions(-)
+
+diff --git a/config.m4.in b/config.m4.in
+index d89325b8..b98a5817 100644
+--- a/config.m4.in
++++ b/config.m4.in
+@@ -5,6 +5,7 @@ define(`COFF_STYLE', `@ASM_COFF_STYLE@')dnl
+ define(`TYPE_FUNCTION', `@ASM_TYPE_FUNCTION@')dnl
+ define(`TYPE_PROGBITS', `@ASM_TYPE_PROGBITS@')dnl
+ define(`ALIGN_LOG', `@ASM_ALIGN_LOG@')dnl
++define(`ELFV2_ABI', `@ELFV2_ABI@')dnl
+ define(`W64_ABI', `@W64_ABI@')dnl
+ define(`RODATA', `@ASM_RODATA@')dnl
+ define(`WORDS_BIGENDIAN', `@ASM_WORDS_BIGENDIAN@')dnl
+diff --git a/configure.ac b/configure.ac
+index 54df43ec..da72f908 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -311,6 +311,9 @@ AC_SUBST([GMP_NUMB_BITS])
+ # Figure out ABI. Currently, configurable only by setting CFLAGS.
+ ABI=standard
+
++ELFV2_ABI=no # For powerpc64
++W64_ABI=no # For x86_64 windows
++
+ case "$host_cpu" in
+ [x86_64 | amd64])
+ AC_TRY_COMPILE([
+@@ -355,6 +358,15 @@ case "$host_cpu" in
+ ], [
+ ABI=64
+ ])
++ if test "$ABI" = 64 ; then
++ AC_TRY_COMPILE([
++#if _CALL_ELF == 2
++#error ELFv2 ABI
++#endif
++ ], [], [], [
++ ELFV2_ABI=yes
++ ])
++ fi
+ ;;
+ aarch64*)
+ AC_TRY_COMPILE([
+@@ -756,7 +768,6 @@ IF_DLL='#'
+ LIBNETTLE_FILE_SRC='$(LIBNETTLE_FORLINK)'
+ LIBHOGWEED_FILE_SRC='$(LIBHOGWEED_FORLINK)'
+ EMULATOR=''
+-W64_ABI=no
+
+ case "$host_os" in
+ mingw32*|cygwin*)
+@@ -1037,6 +1048,7 @@ AC_SUBST(ASM_TYPE_FUNCTION)
+ AC_SUBST(ASM_TYPE_PROGBITS)
+ AC_SUBST(ASM_MARK_NOEXEC_STACK)
+ AC_SUBST(ASM_ALIGN_LOG)
++AC_SUBST(ELFV2_ABI)
+ AC_SUBST(W64_ABI)
+ AC_SUBST(ASM_WORDS_BIGENDIAN)
+ AC_SUBST(EMULATOR)
+diff --git a/powerpc64/machine.m4 b/powerpc64/machine.m4
+index 187a49b8..b59f0863 100644
+--- a/powerpc64/machine.m4
++++ b/powerpc64/machine.m4
+@@ -1,7 +1,7 @@
+ define(`PROLOGUE',
+ `.globl C_NAME($1)
+ DECLARE_FUNC(C_NAME($1))
+-ifelse(WORDS_BIGENDIAN,no,
++ifelse(ELFV2_ABI,yes,
+ `ifdef(`FUNC_ALIGN',`.align FUNC_ALIGN')
+ C_NAME($1):
+ addis 2,12,(.TOC.-C_NAME($1))@ha
+@@ -17,7 +17,7 @@ ifdef(`FUNC_ALIGN',`.align FUNC_ALIGN')
+ undefine(`FUNC_ALIGN')')
+
+ define(`EPILOGUE',
+-`ifelse(WORDS_BIGENDIAN,no,
++`ifelse(ELFV2_ABI,yes,
+ `.size C_NAME($1), . - C_NAME($1)',
+ `.size .C_NAME($1), . - .C_NAME($1)
+ .size C_NAME($1), . - .C_NAME($1)')')
+--
+GitLab
+