summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2020-01-31 07:56:56 +0000
committerSergei Trofimovich <slyfox@gentoo.org>2020-01-31 07:57:17 +0000
commit10a57644d5a354baac5d1018fe2dbb34342a14fd (patch)
tree5f230dda4683ea91e1125c4e02bac1b65d6a52dc
parentdev-python/pyparsing: version bump to 2.4.6 (diff)
downloadgentoo-10a57644.tar.gz
gentoo-10a57644.tar.bz2
gentoo-10a57644.zip
dev-libs/gmp: add USE=pic for static libraries, bug #707332
gmp makes a decision to use PIC or non-PIC assemply at ./configure time instead of (typical) build time. On top of that non-PIC assembly also has TEXTRELs in it which musl can't handle and crashes binaries at relocation setup time. For gmp is it relevant only for static linking. The change adds USE=pic to force static libraries to generate assembly code without TEXTRELs. Reported-by: Andrew Aladjev Closes: https://bugs.gentoo.org/707332 Package-Manager: Portage-2.3.86, Repoman-2.3.20 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r--dev-libs/gmp/gmp-6.1.2-r1.ebuild7
-rw-r--r--dev-libs/gmp/gmp-6.1.2.ebuild7
-rw-r--r--dev-libs/gmp/gmp-6.2.0-r1.ebuild5
-rw-r--r--dev-libs/gmp/gmp-6.2.0.ebuild5
-rw-r--r--dev-libs/gmp/metadata.xml1
5 files changed, 19 insertions, 6 deletions
diff --git a/dev-libs/gmp/gmp-6.1.2-r1.ebuild b/dev-libs/gmp/gmp-6.1.2-r1.ebuild
index ba741c4f37d9..31bf8c0b5eb4 100644
--- a/dev-libs/gmp/gmp-6.1.2-r1.ebuild
+++ b/dev-libs/gmp/gmp-6.1.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -19,7 +19,7 @@ LICENSE="|| ( LGPL-3+ GPL-2+ )"
# The subslot reflects the C & C++ SONAMEs.
SLOT="0/10.4"
KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm doc cxx static-libs"
+IUSE="+asm doc cxx pic static-libs"
DEPEND="sys-devel/m4
app-arch/xz-utils"
@@ -77,12 +77,15 @@ multilib_src_configure() {
filter-flags -O?
fi
+ # --with-pic forces static libraries to be built as PIC
+ # and without TEXTRELs. musl does not support TEXTRELs: bug #707332
tc-export CC
ECONF_SOURCE="${S}" econf \
--localstatedir="${EPREFIX}"/var/state/gmp \
--enable-shared \
$(use_enable asm assembly) \
$(use_enable cxx) \
+ $(use pic && echo --with-pic) \
$(use_enable static-libs static)
}
diff --git a/dev-libs/gmp/gmp-6.1.2.ebuild b/dev-libs/gmp/gmp-6.1.2.ebuild
index d7e8b5b45d47..38497f189d2c 100644
--- a/dev-libs/gmp/gmp-6.1.2.ebuild
+++ b/dev-libs/gmp/gmp-6.1.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
@@ -19,7 +19,7 @@ LICENSE="|| ( LGPL-3+ GPL-2+ )"
# The subslot reflects the C & C++ SONAMEs.
SLOT="0/10.4"
KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm doc cxx static-libs"
+IUSE="+asm doc cxx pic static-libs"
DEPEND="sys-devel/m4
app-arch/xz-utils"
@@ -76,12 +76,15 @@ multilib_src_configure() {
filter-flags -O?
fi
+ # --with-pic forces static libraries to be built as PIC
+ # and without TEXTRELs. musl does not support TEXTRELs: bug #707332
tc-export CC
ECONF_SOURCE="${S}" econf \
--localstatedir="${EPREFIX}"/var/state/gmp \
--enable-shared \
$(use_enable asm assembly) \
$(use_enable cxx) \
+ $(use pic && echo --with-pic) \
$(use_enable static-libs static)
}
diff --git a/dev-libs/gmp/gmp-6.2.0-r1.ebuild b/dev-libs/gmp/gmp-6.2.0-r1.ebuild
index b5347356b32b..d5fd3a7c0fa2 100644
--- a/dev-libs/gmp/gmp-6.2.0-r1.ebuild
+++ b/dev-libs/gmp/gmp-6.2.0-r1.ebuild
@@ -19,7 +19,7 @@ LICENSE="|| ( LGPL-3+ GPL-2+ )"
# The subslot reflects the C & C++ SONAMEs.
SLOT="0/10.4"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm doc cxx static-libs"
+IUSE="+asm doc cxx pic static-libs"
DEPEND="sys-devel/m4
app-arch/xz-utils"
@@ -77,12 +77,15 @@ multilib_src_configure() {
filter-flags -O?
fi
+ # --with-pic forces static libraries to be built as PIC
+ # and without TEXTRELs. musl does not support TEXTRELs: bug #707332
tc-export CC
ECONF_SOURCE="${S}" econf \
--localstatedir="${EPREFIX}"/var/state/gmp \
--enable-shared \
$(use_enable asm assembly) \
$(use_enable cxx) \
+ $(use pic && echo --with-pic) \
$(use_enable static-libs static)
}
diff --git a/dev-libs/gmp/gmp-6.2.0.ebuild b/dev-libs/gmp/gmp-6.2.0.ebuild
index c5495e13aef5..e49ac021edd7 100644
--- a/dev-libs/gmp/gmp-6.2.0.ebuild
+++ b/dev-libs/gmp/gmp-6.2.0.ebuild
@@ -19,7 +19,7 @@ LICENSE="|| ( LGPL-3+ GPL-2+ )"
# The subslot reflects the C & C++ SONAMEs.
SLOT="0/10.4"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm doc cxx static-libs"
+IUSE="+asm doc cxx pic static-libs"
DEPEND="sys-devel/m4
app-arch/xz-utils"
@@ -77,12 +77,15 @@ multilib_src_configure() {
filter-flags -O?
fi
+ # --with-pic forces static libraries to be built as PIC
+ # and without TEXTRELs. musl does not support TEXTRELs: bug #707332
tc-export CC
ECONF_SOURCE="${S}" econf \
--localstatedir="${EPREFIX}"/var/state/gmp \
--enable-shared \
$(use_enable asm assembly) \
$(use_enable cxx) \
+ $(use pic && echo --with-pic) \
$(use_enable static-libs static)
}
diff --git a/dev-libs/gmp/metadata.xml b/dev-libs/gmp/metadata.xml
index 84e19205350d..2b4236a14c6c 100644
--- a/dev-libs/gmp/metadata.xml
+++ b/dev-libs/gmp/metadata.xml
@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="asm">Enable use of hand optimized assembly routines (faster execution)</flag>
+ <flag name="pic">Force static libraries to be built as PIC to avoid TEXTRELs.</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:gmplib:gmp</remote-id>