sys-devel/libtool: Revbump to add pthread patch.
authorLars Wendler <polynomial-c@gentoo.org>
Mon, 26 Mar 2018 08:37:26 +0000 (10:37 +0200)
committerLars Wendler <polynomial-c@gentoo.org>
Mon, 26 Mar 2018 08:38:31 +0000 (10:38 +0200)
Bug: https://bugs.gentoo.org/650876
Package-Manager: Portage-2.3.24, Repoman-2.3.6

sys-devel/libtool/files/libtool-2.4.6-libtoolize-slow.patch
sys-devel/libtool/files/libtool-2.4.6-pthread.patch [new file with mode: 0644]
sys-devel/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch [new file with mode: 0644]
sys-devel/libtool/libtool-2.4.6-r5.ebuild [new file with mode: 0644]
sys-devel/libtool/libtool-9999.ebuild

index abddee13dc3047d6563ea55c6a9b48c24a07b034..d27f976ccb40b47aee4515830647d10fa13e77e7 100644 (file)
@@ -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 (file)
index 0000000..49b81c1
--- /dev/null
@@ -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 (file)
index 0000000..54461cc
--- /dev/null
@@ -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 (file)
index 0000000..710968a
--- /dev/null
@@ -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)
+}
index db8bd168cfdc283779932a0a92ff1b3edce1523c..140bf7a5cb414589b22872ca6859403ca952b6c5 100644 (file)
@@ -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