libtool: rebase to 2.4.6

Per upstream release notes:
http://lists.gnu.org/archive/html/autotools-announce/2015-02/msg00000.html

Resolves: #1159497
Version: 2.4.6-1
This commit is contained in:
Pavel Raiskup 2015-02-17 13:45:58 +01:00
parent ee981597d8
commit d0c7297e4c
5 changed files with 5 additions and 188 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
/libtool-2.4.4.tar.xz
/libtool-2.4.6.tar.xz

View File

@ -1,33 +0,0 @@
From 2ad0598f0d8cd8c8532a2c34ea1b06c71901047d Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Mon, 15 Dec 2014 13:42:25 +0100
Subject: [PATCH] tests: fix race in aclocal/autoheader calls
Put the sleep 1 after aclocal run, same as autoreconf does. This
guarantees that 'aclocal.m4' will have smaller timestamp than
'config.h.in' and avoids re-running autoheader later on.
* tests/testsuite.at (LT_AT_ACLOCAL): Sleep sec after aclocal run.
---
tests/testsuite.at | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 76ed722..2a359a3 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -123,6 +123,11 @@ AT_DATA([acinclude.m4],
[m4_define([AC_CONFIG_MACRO_DIRS], m4_defn([AC_CONFIG_MACRO_DIR]))])
]])
LT_AT_CHECK([$ACLOCAL $1$macro_dir], [0], [ignore], [ignore])
+# After the 'aclocal' run sleep 1 second to guarantee that aclocal.m4 is going
+# to have older timestamp than other autotools later-generated files (concretely
+# for libtool case, we speak about config.h.in generated autoheader).
+# Autoreconf does the same (after the first aclocal run).
+sleep 1
AT_XFAIL_IF([test no = "$ACLOCAL"])
AT_KEYWORDS([automake])
])
--
1.9.3

View File

@ -1,140 +0,0 @@
From d901235239e11d34453147c7ebf109546caca8bc Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Sat, 13 Dec 2014 10:59:37 +0100
Subject: [PATCH] libtool.m4: typofix, subst last '$' with quadrigraph
* m4/libtool.m4 (_LT_LIBTOOL_TAG_VARS): Encase the
configure/libtool shared function into parseable borders; for
testing purposes.
(func_munge_path_list): Typo s/$/@S|@/.
* tests/configure-funcs.at: New testcase.
* Makefile.am (TESTSUITE_AT): Mention new testcase.
---
Makefile.am | 1 +
m4/libtool.m4 | 9 ++++---
tests/configure-funcs.at | 70 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 76 insertions(+), 4 deletions(-)
create mode 100644 tests/configure-funcs.at
diff --git a/Makefile.am b/Makefile.am
index 888f5cb..13dfc63 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -652,6 +652,7 @@ testsuite = $(tests_dir)/testsuite
# that it can check for previous failures and skip if necessary.
TESTSUITE = tests/testsuite
TESTSUITE_AT = tests/testsuite.at \
+ tests/configure-funcs.at \
tests/libtoolize.at \
tests/libtool.at \
tests/demo.at \
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 41dd20a..2b33082 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -748,13 +748,14 @@ _LT_LIBTOOL_TAG_VARS
_LT_EOF
cat <<'_LT_EOF' >> "$cfgfile"
-## -------------------------------------- ##
-## Shell functions shared with configure. ##
-## -------------------------------------- ##
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
_LT_PREPARE_MUNGE_PATH_LIST
_LT_PREPARE_CC_BASENAME
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
_LT_EOF
case $host_os in
@@ -2256,7 +2257,7 @@ func_munge_path_list ()
x)
;;
*:)
- eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \$@S|@1\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
;;
x:*)
eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
diff --git a/tests/configure-funcs.at b/tests/configure-funcs.at
new file mode 100644
index 0000000..eab84a0
--- /dev/null
+++ b/tests/configure-funcs.at
@@ -0,0 +1,70 @@
+# configure-functions.at -- Linking and loading. -*- Autotest -*-
+#
+# Copyright (C) 2014 Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+####
+
+AT_BANNER([Functions shared with configure and libtool.])
+
+m4_define([_AT_FUNC_SETUP], [dnl
+AT_SETUP($1)dnl
+_lt_bin="$abs_top_builddir/libtool"
+re_begincf='^# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE'
+re_endcf='^# ### END FUNCTIONS SHARED WITH CONFIGURE'
+
+$ECHO '#!/bin/sh' > "$1"
+$ECHO '#: ${SED=sed}' >> "$1"
+$ECHO '#: ${ECHO=echo}' >> "$1"
+
+sed "1,/$re_begincf/d;/$re_endcf/,\$d" < "$_lt_bin" >> "$1"
+])
+
+_AT_FUNC_SETUP([func_munge_path_list])
+
+cat <<\EOF >> func_munge_path_list
+for orig in "/usr/lib" " /lib /usr/lib "; do
+ $ECHO "'$orig':"
+ for path in "/p1:" "/p3:/p2:" ":/a1" ":/a2:/a3" "/p4::/a4" "/p6:/p5::/a5:/a6"; do
+ old="$orig"
+ func_munge_path_list orig "$path" || exit 1
+ $ECHO "munge ($path) = $orig"
+ done
+done
+EOF
+chmod +x func_munge_path_list
+
+AT_CHECK([ECHO="$ECHO" SED="$SED" ./func_munge_path_list], [0],
+['/usr/lib':
+munge (/p1:) = /p1 /usr/lib
+munge (/p3:/p2:) = /p3 /p2 /p1 /usr/lib
+munge (:/a1) = /p3 /p2 /p1 /usr/lib /a1
+munge (:/a2:/a3) = /p3 /p2 /p1 /usr/lib /a1 /a2 /a3
+munge (/p4::/a4) = /p4 /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 /a4
+munge (/p6:/p5::/a5:/a6) = /p6 /p5 /p4 /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 /a4 /a5 /a6
+' /lib /usr/lib ':
+munge (/p1:) = /p1 /lib /usr/lib @&t@
+munge (/p3:/p2:) = /p3 /p2 /p1 /lib /usr/lib @&t@
+munge (:/a1) = /p3 /p2 /p1 /lib /usr/lib /a1
+munge (:/a2:/a3) = /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3
+munge (/p4::/a4) = /p4 /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 /a4
+munge (/p6:/p5::/a5:/a6) = /p6 /p5 /p4 /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 /a4 /a5 /a6
+], [])
+
+AT_CLEANUP
--
2.1.0

View File

@ -5,7 +5,7 @@
Summary: The GNU Portable Library Tool
Name: libtool
Version: 2.4.5
Version: 2.4.6
Release: 1%{?dist}
License: GPLv2+ and LGPLv2+ and GFDL
URL: http://www.gnu.org/software/libtool/
@ -17,14 +17,6 @@ Source: http://ftp.gnu.org/gnu/libtool/libtool-%{version}.tar.xz
# ~> remove possibly once #1158915 gets fixed somehow
Patch0: libtool-2.4.5-rpath.patch
# ~> downstream (proposed)
# ~> http://permalink.gmane.org/gmane.comp.gnu.libtool.patches/11808
Patch1: libtool-2.4.4-race-in-aclocal-autoheader-calls.patch
# ~> downstream (proposed)
# ~> https://lists.gnu.org/archive/html/libtool/2014-12/msg00025.html
Patch2: libtool-2.4.5-fix-path-munging.patch
# /usr/bin/libtool includes paths within gcc's versioned directories
# Libtool must be rebuilt whenever a new upstream gcc is built
Requires: gcc = %{gcc_version}
@ -91,8 +83,6 @@ Static libraries and header files for development with ltdl.
%prep
%setup -n libtool-%{version} -q
%patch0 -p1 -b .rpath
%patch1 -p1 -b .racy-testsuite
%patch2 -p1 -b .munge-quadrigraph
autoreconf -v
@ -177,8 +167,8 @@ fi
%changelog
* Tue Feb 17 2015 Pavel Raiskup <praiskup@redhat.com> - 2.4.5-1
- rebase to 2.4.5
* Tue Feb 17 2015 Pavel Raiskup <praiskup@redhat.com> - 2.4.6-1
- rebase to most recent upstream release 2.4.6 (#1159497)
* Fri Feb 06 2015 Jakub Jelinek <jakub@redhat.com> - 2.4.2-32
- rebuilt for gcc 5.0.0

View File

@ -1 +1 @@
51bf400de3354687d68dfa2392506b7e libtool-2.4.4.tar.xz
1bfb9b923f2c1339b4d2ce1807064aa5 libtool-2.4.6.tar.xz