summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Bauman <bman@gentoo.org>2018-06-02 21:07:41 -0400
committerAaron Bauman <bman@gentoo.org>2018-06-02 21:07:57 -0400
commitd70bed7f53c5f0524c77f6e630ae7f4b9f9ce7c7 (patch)
tree64fd2153ce0e6e99037a92ec6f3b43cfc636e885
parentprofiles: powerpc: Drop obsolete dev-qt/* revdeps masks (diff)
downloadgentoo-d70bed7f53c5f0524c77f6e630ae7f4b9f9ce7c7.tar.gz
gentoo-d70bed7f53c5f0524c77f6e630ae7f4b9f9ce7c7.tar.bz2
gentoo-d70bed7f53c5f0524c77f6e630ae7f4b9f9ce7c7.zip
dev-libs/libressl: add build fix patch for hppa
This patch addresses an issue found by the HPPA team and addressed by Sergei Trofimovich (slyfox). Closes: https://bugs.gentoo.org/656104 Package-Manager: Portage-2.3.40, Repoman-2.3.9
-rw-r--r--dev-libs/libressl/files/libressl-2.6.4-hppa-asm.patch62
-rw-r--r--dev-libs/libressl/libressl-2.6.4.ebuild2
2 files changed, 64 insertions, 0 deletions
diff --git a/dev-libs/libressl/files/libressl-2.6.4-hppa-asm.patch b/dev-libs/libressl/files/libressl-2.6.4-hppa-asm.patch
new file mode 100644
index 00000000000..a0922af0961
--- /dev/null
+++ b/dev-libs/libressl/files/libressl-2.6.4-hppa-asm.patch
@@ -0,0 +1,62 @@
+From 787d8d240bbeaa812bcf37deeedb3c467be468a3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sat, 19 May 2018 17:31:42 +0100
+Subject: [PATCH] __warn_references: tweak assembly for "gnu.warning" section
+
+On some targets ';' (like hppa) is treated as a comment
+in assembly files. This occasionally causes the following
+assembly failures:
+
+```
+Error: can't resolve `.gnu.warning.EVP_DecryptFinal'
+{.gnu.warning.EVP_DecryptFinal section} - `.Ltext0' {.text section}
+```
+
+Note how branch (or other reference) attempts to cross the
+boundary across two section types: '.text' and '.gnu.warning'.
+
+Tobias Ulmer notes that openbsd already uses newlines
+for similar macro:
+
+https://github.com/openbsd/src/blob/master/sys/arch/hppa/include/cdefs.h
+
+This change switches from ';' to newline as well.
+Tested on hppa2.0 and x86_64.
+
+Reported-by: Jeroen Roovers
+Bug: https://bugs.gentoo.org/656104
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ configure.ac | 2 +-
+ include/compat/sys/types.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b74b8a1..16ed825 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -91,7 +91,7 @@ AM_CONDITIONAL([HOST_CPU_IS_INTEL], [test "x$HOSTARCH" = "xintel"])
+ AC_MSG_CHECKING([if .gnu.warning accepts long strings])
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
+ extern void SSLv3_method();
+-__asm__(".section .gnu.warning.SSLv3_method; .ascii \"SSLv3_method is insecure\" ; .text");
++__asm__(".section .gnu.warning.SSLv3_method\n\t.ascii \"SSLv3_method is insecure\"\n\t.text");
+ int main() {return 0;}
+ ]])], [
+ AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.])
+diff --git a/include/compat/sys/types.h b/include/compat/sys/types.h
+index 2107119..dec09e3 100644
+--- a/include/compat/sys/types.h
++++ b/include/compat/sys/types.h
+@@ -62,7 +62,7 @@ typedef SSIZE_T ssize_t;
+ #if defined(__GNUC__) && defined (HAS_GNU_WARNING_LONG)
+ #define __warn_references(sym,msg) \
+ __asm__(".section .gnu.warning." __STRING(sym) \
+- " ; .ascii \"" msg "\" ; .text");
++ "\n\t.ascii \"" msg "\"\n\t.text");
+ #else
+ #define __warn_references(sym,msg)
+ #endif
+--
+2.17.0
+
diff --git a/dev-libs/libressl/libressl-2.6.4.ebuild b/dev-libs/libressl/libressl-2.6.4.ebuild
index 9aaf4681a71..bc3550222a7 100644
--- a/dev-libs/libressl/libressl-2.6.4.ebuild
+++ b/dev-libs/libressl/libressl-2.6.4.ebuild
@@ -22,6 +22,8 @@ RDEPEND="!dev-libs/openssl:0"
DEPEND="${RDEPEND}"
PDEPEND="app-misc/ca-certificates"
+PATCHES=( "${FILESDIR}/libressl-2.6.4-hppa-asm.patch" )
+
src_prepare() {
touch crypto/Makefile.in