summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2018-03-26 10:37:26 +0200
committerLars Wendler <polynomial-c@gentoo.org>2018-03-26 10:38:31 +0200
commit5690e822e589b92b4225c8c8b671ff8db5faf605 (patch)
tree01a78538fd3f5d352bf3c911c537dbadbc1ae14c /sys-devel/libtool
parentsys-devel/libtool: Bump live ebuild to EAPI-6. (diff)
downloadgentoo-5690e822e589b92b4225c8c8b671ff8db5faf605.tar.gz
gentoo-5690e822e589b92b4225c8c8b671ff8db5faf605.tar.bz2
gentoo-5690e822e589b92b4225c8c8b671ff8db5faf605.zip
sys-devel/libtool: Revbump to add pthread patch.
Bug: https://bugs.gentoo.org/650876 Package-Manager: Portage-2.3.24, Repoman-2.3.6
Diffstat (limited to 'sys-devel/libtool')
-rw-r--r--sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch6
-rw-r--r--sys-devel/libtool/files/libtool-2.4.6-pthread.patch43
-rw-r--r--sys-devel/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch21
-rw-r--r--sys-devel/libtool/libtool-2.4.6-r5.ebuild124
-rw-r--r--sys-devel/libtool/libtool-9999.ebuild5
5 files changed, 196 insertions, 3 deletions
diff --git a/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch b/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch
index abddee13dc30..d27f976ccb40 100644
--- a/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch
+++ b/sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch
@@ -37,13 +37,13 @@ Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
NEWS | 4 ++++
NO-THANKS | 1 +
bootstrap | 42 +++++++++++++++++++++++++++---------------
- gl/build-aux/extract-trace | 42 +++++++++++++++++++++++++++---------------
+ build-aux/extract-trace | 42 +++++++++++++++++++++++++++---------------
4 files changed, 59 insertions(+), 30 deletions(-)
diff --git a/gl/build-aux/extract-trace b/gl/build-aux/extract-trace
index 315a32a..c6abd21 100755
---- a/gl/build-aux/extract-trace
-+++ b/gl/build-aux/extract-trace
+--- a/build-aux/extract-trace
++++ b/build-aux/extract-trace
@@ -329,29 +329,41 @@ func_extract_trace ()
# arguments to Autocof functions, but without following
# 'm4_s?include' files.
diff --git a/sys-devel/libtool/files/libtool-2.4.6-pthread.patch b/sys-devel/libtool/files/libtool-2.4.6-pthread.patch
new file mode 100644
index 000000000000..49b81c1dcda6
--- /dev/null
+++ b/sys-devel/libtool/files/libtool-2.4.6-pthread.patch
@@ -0,0 +1,43 @@
+http://permalink.gmane.org/gmane.comp.gnu.libtool.patches/11704
+https://bugs.gentoo.org/650876
+
+From: Pavel Raiskup <praiskup <at> redhat.com>
+Subject: [PATCH] libtool: handle the -pthread{,s} options for g++
+Newsgroups: gmane.comp.gnu.libtool.patches
+Date: Thursday 28th November 2013 14:18:05 UTC (over 4 years ago)
+
+As we are forced to pass -nostdlib to g++ for linking, this option
+expectedly disables the effectiveness of passed -pthread flag - so
+add the -lpthread explicitly to $deplibs to link correctly.
+
+References:
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
+https://bugzilla.redhat.com/show_bug.cgi?id=661333
+http://lists.gnu.org/archive/html/bug-libtool/2013-01/msg00018.htm
+
+* build-aux/ltmain.in (func_mode_link): Explicitly add -lpthread
+flag into $deplibs when -pthread is passed (for g++ only).
+---
+ build-aux/ltmain.in | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index fba05c1..f202b80 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -5113,6 +5113,16 @@ func_mode_link ()
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
++
++ # As we are forced to pass -nostdlib to g++ during linking, the option
++ # -pthread{,s} is not in effect; add the -lpthread to $deplist
++ # explicitly to link correctly.
++ if test "$tagname" = CXX -a x"$with_gcc" = xyes; then
++ case "$arg" in
++ -pthread*) func_append deplibs " -lpthread" ;;
++ esac
++ fi
++
+ continue
+ ;;
diff --git a/sys-devel/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch b/sys-devel/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch
new file mode 100644
index 000000000000..54461ccc54ee
--- /dev/null
+++ b/sys-devel/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/650876
+
+--- libtool-2.4.6/build-aux/ltmain.sh
++++ libtool-2.4.6/build-aux/ltmain.sh
+@@ -7079,6 +7079,16 @@
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
++
++ # As we are forced to pass -nostdlib to g++ during linking, the option
++ # -pthread{,s} is not in effect; add the -lpthread to $deplist
++ # explicitly to link correctly.
++ if test "$tagname" = CXX -a x"$with_gcc" = xyes; then
++ case "$arg" in
++ -pthread*) func_append deplibs " -lpthread" ;;
++ esac
++ fi
++
+ continue
+ ;;
+
diff --git a/sys-devel/libtool/libtool-2.4.6-r5.ebuild b/sys-devel/libtool/libtool-2.4.6-r5.ebuild
new file mode 100644
index 000000000000..710968a99a5d
--- /dev/null
+++ b/sys-devel/libtool/libtool-2.4.6-r5.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+LIBTOOLIZE="true" #225559
+WANT_LIBTOOL="none"
+inherit autotools epatch epunt-cxx multilib unpacker prefix
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.savannah.gnu.org/${PN}.git
+ http://git.savannah.gnu.org/r/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+fi
+
+DESCRIPTION="A shared library tool for developers"
+HOMEPAGE="https://www.gnu.org/software/libtool/"
+
+LICENSE="GPL-2"
+SLOT="2"
+IUSE="vanilla"
+
+# Pull in libltdl directly until we convert packages to the new dep.
+RDEPEND="sys-devel/gnuconfig
+ >=sys-devel/autoconf-2.69
+ >=sys-devel/automake-1.13
+ dev-libs/libltdl:0
+ !<sys-apps/sandbox-2.10-r4"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils"
+[[ ${PV} == "9999" ]] && DEPEND+=" sys-apps/help2man"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch #109105
+ "${FILESDIR}"/${P}-link-specs.patch
+ "${FILESDIR}"/${P}-link-fsanitize.patch #573744
+ "${FILESDIR}"/${P}-link-fuse-ld.patch
+ "${FILESDIR}"/${P}-libtoolize-slow.patch
+ "${FILESDIR}"/${P}-libtoolize-delay-help.patch
+ "${FILESDIR}"/${P}-sed-quote-speedup.patch #542252
+ "${FILESDIR}"/${P}-ppc64le.patch #581314
+
+ "${FILESDIR}"/${PN}-2.4.6-mint.patch
+ "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
+ "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == "9999" ]] ; then
+ git-r3_src_unpack
+ else
+ unpacker_src_unpack
+ fi
+}
+
+src_prepare() {
+ if [[ "${PV}" = 9999 ]] ; then
+ eapply "${FILESDIR}"/${P}-pthread.patch #650876
+ ./bootstrap || die
+ else
+ PATCHES+=(
+ "${FILESDIR}"/${P}-pthread_bootstrapped.patch #650876
+ )
+ fi
+
+ use vanilla && return 0
+
+ default
+
+ if use prefix ; then
+ # seems that libtool has to know about EPREFIX a little bit
+ # better, since it fails to find prefix paths to search libs
+ # from, resulting in some packages building static only, since
+ # libtool is fooled into thinking that libraries are unavailable
+ # (argh...). This could also be fixed by making the gcc wrapper
+ # return the correct result for -print-search-dirs (doesn't
+ # include prefix dirs ...).
+ eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch
+ eprefixify m4/libtool.m4
+ fi
+
+ pushd libltdl >/dev/null
+ AT_NOELIBTOOLIZE=yes eautoreconf
+ popd >/dev/null
+ AT_NOELIBTOOLIZE=yes eautoreconf
+ epunt_cxx
+
+ # Make sure timestamps don't trigger a rebuild of man pages. #556512
+ if [[ ${PV} != "9999" ]] ; then
+ touch doc/*.1
+ export HELP2MAN=false
+ fi
+}
+
+src_configure() {
+ # the libtool script uses bash code in it and at configure time, tries
+ # to find a bash shell. if /bin/sh is bash, it uses that. this can
+ # cause problems for people who switch /bin/sh on the fly to other
+ # shells, so just force libtool to use /bin/bash all the time.
+ export CONFIG_SHELL="$(type -P bash)"
+
+ # Do not bother hardcoding the full path to sed. Just rely on $PATH. #574550
+ export ac_cv_path_SED="$(basename "$(type -P sed)")"
+
+ local myconf
+ [[ ${CHOST} == *-darwin* ]] && myconf="--program-prefix=g"
+ ECONF_SOURCE=${S} econf ${myconf} --disable-ltdl-install
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ default
+
+ local x
+ while read -d $'\0' -r x ; do
+ ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die
+ done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0)
+}
diff --git a/sys-devel/libtool/libtool-9999.ebuild b/sys-devel/libtool/libtool-9999.ebuild
index db8bd168cfdc..140bf7a5cb41 100644
--- a/sys-devel/libtool/libtool-9999.ebuild
+++ b/sys-devel/libtool/libtool-9999.ebuild
@@ -50,7 +50,12 @@ src_unpack() {
src_prepare() {
if [[ "${PV}" = 9999 ]] ; then
+ eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch #650876
./bootstrap || die
+ else
+ PATCHES+=(
+ "${FILESDIR}"/${P}-pthread_bootstrapped.patch #650876
+ )
fi
use vanilla && return 0