dev-libs/gmp: add patch to aid bootstrapping with old gcc on darwin
authorFabian Groffen <grobian@gentoo.org>
Wed, 3 Jan 2018 15:22:44 +0000 (16:22 +0100)
committerFabian Groffen <grobian@gentoo.org>
Wed, 3 Jan 2018 15:22:55 +0000 (16:22 +0100)
Package-Manager: Portage-2.3.13, Repoman-2.3.3

dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch [new file with mode: 0644]
dev-libs/gmp/gmp-6.1.2.ebuild

diff --git a/dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch b/dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch
new file mode 100644 (file)
index 0000000..8960464
--- /dev/null
@@ -0,0 +1,21 @@
+--- gmp-6.0.0/gmp-h.in.orig    2015-01-16 22:25:51.000000000 +0100
++++ gmp-6.0.0/gmp-h.in 2015-01-16 22:26:40.000000000 +0100
+@@ -360,14 +360,14 @@
+     GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+     inline semantics, unless -fgnu89-inline is used.  */
+ #ifdef __GNUC__
+-#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \
+-  || (defined __GNUC_GNU_INLINE__ && defined __cplusplus)
++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+ #define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
+-#else
++#define __GMP_INLINE_PROTOTYPES  1
++#elif !(defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && __STDC_VERSION__ >= 199901L)
+ #define __GMP_EXTERN_INLINE      extern __inline__
+-#endif
+ #define __GMP_INLINE_PROTOTYPES  1
+ #endif
++#endif
+ /* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1
+    strict ANSI mode.  Inlining is done even when not optimizing (ie. -O0
index 266f6ce8b86acb0fcea1c3cfbb0ff1ebf6a5ac53..9134d5cfa90e41f830054f43698dd6ae332cc410 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
@@ -39,6 +39,11 @@ src_prepare() {
 
        epatch "${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch
 
+       # https://bugs.gentoo.org/536894
+       if [[ ${CHOST} == *-darwin* ]] ; then
+               epatch "${FILESDIR}"/${PN}-6.1.2-gcc-apple-4.0.1.patch
+       fi
+
        # GMP uses the "ABI" env var during configure as does Gentoo (econf).
        # So, to avoid patching the source constantly, wrap things up.
        mv configure configure.wrapped || die