summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Sun2019-09-15 12:49:23 -0400
committerAndrew Sun2019-09-15 12:49:23 -0400
commit86f90c3e0ab2b787f87acac05f6b455b251fa35f (patch)
treed10064c9c63beafa0c48e49d657cbf73e90271c7
parentfd0c9b58c5307856b113ca7d0fbfec6eb8783568 (diff)
downloadaur-86f90c3e0ab2b787f87acac05f6b455b251fa35f.tar.gz
mingw-w64-libtool: update to 2.4.6+42+gb88cebd5
-rw-r--r--.SRCINFO40
-rw-r--r--0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch99
-rw-r--r--0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch31
-rw-r--r--0005-Fix-seems-to-be-moved.patch24
-rw-r--r--0006-Fix-strict-ansi-vs-posix.patch22
-rw-r--r--0008-tests.patch132
-rw-r--r--0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch33
-rw-r--r--0012-Prefer-response-files-over-linker-scripts-for-mingw.patch83
-rw-r--r--PKGBUILD83
9 files changed, 510 insertions, 37 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9d913184d3cd..af521e3d8b55 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,20 +1,18 @@
-# Generated by mksrcinfo v8
-# Thu Mar 22 01:05:47 UTC 2018
pkgbase = mingw-w64-libtool
pkgdesc = A generic library support script (mingw-w64)
- pkgver = 2.4.6
- pkgrel = 2
- url = http://www.gnu.org/software/libtool
+ pkgver = 2.4.6+42+gb88cebd5
+ pkgrel = 1
+ url = https://www.gnu.org/software/libtool
arch = any
- groups = base-devel
license = GPL
- makedepends = mingw-w64-gcc=7.3.0
makedepends = mingw-w64-configure
+ makedepends = git
+ makedepends = help2man
depends = sh
depends = tar
depends = mingw-w64-crt
- provides = mingw-w64-libltdl=2.4.6
- provides = mingw-w64-libtool-multilib=2.4.6
+ provides = mingw-w64-libltdl=2.4.6+42+gb88cebd5
+ provides = mingw-w64-libtool-multilib=2.4.6+42+gb88cebd5
conflicts = mingw-w64-libltdl
conflicts = mingw-w64-libtool-multilib
replaces = mingw-w64-libltdl
@@ -22,10 +20,26 @@ pkgbase = mingw-w64-libtool
options = staticlibs
options = !strip
options = !buildflags
- source = ftp://ftp.gnu.org/pub/gnu/libtool/libtool-2.4.6.tar.xz
- source = ftp://ftp.gnu.org/pub/gnu/libtool/libtool-2.4.6.tar.xz.sig
- md5sums = 1bfb9b923f2c1339b4d2ce1807064aa5
- md5sums = SKIP
+ source = git+https://git.savannah.gnu.org/git/libtool.git#commit=b88cebd510add4420dd8f5367e3cc6e6e1f267cd
+ source = git+https://git.savannah.gnu.org/git/gnulib.git
+ source = gnulib-bootstrap::git+https://github.com/gnulib-modules/bootstrap.git
+ source = 0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch
+ source = 0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch
+ source = 0005-Fix-seems-to-be-moved.patch
+ source = 0006-Fix-strict-ansi-vs-posix.patch
+ source = 0008-tests.patch
+ source = 0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch
+ source = 0012-Prefer-response-files-over-linker-scripts-for-mingw.patch
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = fe8b80efd34f9385220ebc90aaec945e44de8c343c75719d6ac0d4e472a6eed5
+ sha256sums = 98265e84992e6242ead64bc3f9ec19be6c32a56e7a5b74d86047f9b548bcb1fe
+ sha256sums = dc39fbe066958178f96108f07db62b48b9339efddf2c21f800ff8d67110ca393
+ sha256sums = 6a94ada08b0a0aa36240efd9ccb826e22ab94ef0969270f2edb8be344dc8c62b
+ sha256sums = f00b44b49f83b20d4fbde89253666d0eb769172cfd711110f1be6a175294cb27
+ sha256sums = c727b2b017163cfdeca60820d3cff2dac8968c5630745602b150f92b159af313
+ sha256sums = c95a65e890b1ae6362807abc66809e72cf81aeea5f9f556e38f9752f974bf435
pkgname = mingw-w64-libtool
diff --git a/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch b/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch
new file mode 100644
index 000000000000..310002b8231f
--- /dev/null
+++ b/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch
@@ -0,0 +1,99 @@
+[PATCH 2/6] [cygwin|mingw] Create UAC manifest files.
+
+* build-aux/ltmain.in (func_emit_exe_manifest): New function.
+(func_mode_link) [cygwin|mingw]: Create manifest files for wrapper
+and target exe when target name matches heuristic that triggers
+UAC problems for newer win32 OSs. Clean up $cwrapper.manifest on
+error. Ensure manifest files have executable permission.
+(func_mode_uninstall): Clean up manifest files.
+Various reports by Eric Blake, Kai Tietz, and Cesar Strauss.
+---
+ build-auxltmain.in | 50 ++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 48 insertions(+), 2 deletions(-)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index 0418007..1821779 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -4277,6 +4277,41 @@ EOF
+ }
+ # end: func_emit_cwrapperexe_src
+
++# func_emit_exe_manifest
++# emit a Win32 UAC manifest for executable on stdout
++# Must ONLY be called from within func_mode_link because
++# it depends on a number of variable set therein.
++func_emit_exe_manifest ()
++{
++ cat <<EOF
++<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
++<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
++ <assemblyIdentity version="1.0.0.0"
++EOF
++
++ case $host in
++ i?86-*-* ) echo ' processorArchitecture="x86"' ;;
++ ia64-*-* ) echo ' processorArchitecture="ia64"' ;;
++ x86_64-*-* ) echo ' processorArchitecture="amd64"' ;;
++ *) echo ' processorArchitecture="*"' ;;
++ esac
++
++ cat <<EOF
++ name="$host_os.$PROGRAM.$outputname"
++ type="win32"/>
++
++ <!-- Identify the application security requirements. -->
++ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
++ <security>
++ <requestedPrivileges>
++ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
++ </requestedPrivileges>
++ </security>
++ </trustInfo>
++</assembly>
++EOF
++}
++
+ # func_win32_import_lib_p ARG
+ # True if ARG is an import lib, as indicated by $file_magic_cmd
+ func_win32_import_lib_p ()
+@@ -8237,7 +8272,7 @@ EOF
+ cwrappersource="$output_path/$objdir/lt-$output_name.c"
+ cwrapper="$output_path/$output_name.exe"
+ $RM $cwrappersource $cwrapper
+- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
++ trap "$RM $cwrappersource $cwrapper $cwrapper.manifest; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_cwrapperexe_src > $cwrappersource
+
+@@ -8257,6 +8292,16 @@ EOF
+ $opt_dry_run || {
+ # note: this script will not be executed, so do not chmod.
+ if test "x$build" = "x$host"; then
++ # Create the UAC manifests first if necessary (but the
++ # manifest files must have executable permission regardless).
++ case $output_name in
++ *instal*|*patch*|*setup*|*update*)
++ func_emit_exe_manifest > $cwrapper.manifest
++ func_emit_exe_manifest > $output_path/$objdir/$output_name.exe.manifest
++ chmod +x $cwrapper.manifest
++ chmod +x $output_path/$objdir/$output_name.exe.manifest
++ ;;
++ esac
+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+ else
+ func_emit_wrapper no > $func_ltwrapper_scriptname_result
+@@ -8777,8 +8822,9 @@ func_mode_uninstall ()
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ func_append rmfiles " $odir/$name $odir/${name}S.$objext"
++ func_append rmfiles " ${name}.manifest $objdir/${name}.manifest"
+ if test yes = "$fast_install" && test -n "$relink_command"; then
+- func_append rmfiles " $odir/lt-$name"
++ func_append rmfiles " $odir/lt-$name $objdir/lt-${name}.manifest"
+ fi
+ if test "X$noexename" != "X$name"; then
+ func_append rmfiles " $odir/lt-$noexename.c"
+--
+1.7.1
+
diff --git a/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch b/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch
new file mode 100644
index 000000000000..fd52f6ed49fb
--- /dev/null
+++ b/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch
@@ -0,0 +1,31 @@
+[PATCH 3/6] Pass various runtime library flags to GCC.
+* build-aux/ltmain.in (func_mode_link): Pass the
+-shared-libgcc and -static-lib* flags along to GCC.
+---
+ build-aux/ltmain.in | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index 1821779..eda7790 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -5378,12 +5378,15 @@ func_mode_link ()
+ # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
+ # -stdlib=* select c++ std lib with clang
++ # -{shared,static}-libgcc, -static-{libgfortran|libstdc++}
++ # link against specified runtime library
+ # -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+- -specs=*|-fsanitize=*|-fuse-ld=*)
++ -specs=*|-fsanitize=*|-fuse-ld=*|-shared-libgcc|-static-libgcc| \
++ -static-libgfortran|-static-libstdc++)
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
+ func_append compile_command " $arg"
+--
+1.7.1
+
diff --git a/0005-Fix-seems-to-be-moved.patch b/0005-Fix-seems-to-be-moved.patch
new file mode 100644
index 000000000000..73c249db391a
--- /dev/null
+++ b/0005-Fix-seems-to-be-moved.patch
@@ -0,0 +1,24 @@
+[PATCH 5/6] Fix "seems to be moved"
+* build-aux/ltmain.in (func_mode_link): Compare files by inode
+to fix "seems to be moved" warning.
+---
+ build-aux/ltmain.in | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index af46cb8..244bb5b 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -6283,7 +6283,9 @@ func_mode_link ()
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "'$deplib' is not a valid libtool archive"
+- test "$absdir" != "$libdir" && \
++ abs_inode=`ls -i "$deplib" | awk '{print $1}'`
++ lib_inode=`ls -i "$libdir/$(basename $deplib)" | awk '{print $1}'`
++ test "$abs_inode" != "$lib_inode" && \
+ func_warning "'$deplib' seems to be moved"
+
+ path=-L$absdir
+--
+1.7.0.2.msysgit.0 \ No newline at end of file
diff --git a/0006-Fix-strict-ansi-vs-posix.patch b/0006-Fix-strict-ansi-vs-posix.patch
new file mode 100644
index 000000000000..486ad76112e5
--- /dev/null
+++ b/0006-Fix-strict-ansi-vs-posix.patch
@@ -0,0 +1,22 @@
+[PATCH 6/6] Fix STRICT_ANSI vs POSIX
+* build-aux/ltmain.in (func_mode_link): Also check for _POSIX
+as well as __STRICT_ANSI__ to avoid re-definitions.
+---
+ build-aux/ltmain.in | 4 +++-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index af46cb8..244bb5b 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -3382,7 +3382,7 @@
+
+ /* declarations of non-ANSI functions */
+ #if defined __MINGW32__
+-# ifdef __STRICT_ANSI__
++# if defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR) || defined(_POSIX_)
+ int _putenv (const char *);
+ # endif
+ #elif defined __CYGWIN__
+--
+1.7.0.2.msysgit.0 \ No newline at end of file
diff --git a/0008-tests.patch b/0008-tests.patch
new file mode 100644
index 000000000000..a07b682fdbfc
--- /dev/null
+++ b/0008-tests.patch
@@ -0,0 +1,132 @@
+diff -Naur libtool-2.4.6-old/tests/demo.at libtool-2.4.6/tests/demo.at
+--- libtool-2.4.6-old/tests/demo.at 2015-01-17 03:52:04.000000000 +0900
++++ libtool-2.4.6/tests/demo.at 2015-07-14 13:39:52.802179800 +0900
+@@ -271,6 +271,13 @@
+
+ #define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols
+
++#if defined(__MINGW64__) && defined(__x86_64__) && \
++ !defined(LT_MINGW_STATIC_TESTSUITE_HACK)
++#define NOTHING "__nm_nothing"
++#else
++#define NOTHING "nothing"
++#endif
++
+ typedef struct
+ {
+ const char *name;
+@@ -301,7 +308,7 @@
+ phello = (int(*)())s->address;
+ else if (STREQ ("foo", name))
+ pfoo = (int(*)())s->address;
+- else if (STREQ ("nothing", name))
++ else if (STREQ (NOTHING, name))
+ #ifndef _WIN32
+ /* In an ideal world we could do this... */
+ pnothing = (int*)s->address;
+diff -Naur libtool-2.4.6-old/m4/ltoptions.m4 libtool-2.4.6/m4/ltoptions.m4
+--- libtool-2.4.6-old/m4/ltoptions.m4 2015-01-17 03:52:04.000000000 +0900
++++ libtool-2.4.6/m4/ltoptions.m4 2015-07-14 12:57:21.299381300 +0900
+@@ -170,7 +170,11 @@
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+- no) enable_shared=no ;;
++ no)
++ enable_shared=no
++ AC_DEFINE([LT_MINGW_STATIC_TESTSUITE_HACK], [1],
++ [Define if running the test suite so that test #27 works on MinGW.])
++ ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+diff -Naur libtool-2.4.6-old/tests/testsuite.at libtool-2.4.6/tests/testsuite.at
+--- libtool-2.4.6-old/tests/testsuite.at 2015-01-21 00:24:15.000000000 +0900
++++ libtool-2.4.6/tests/testsuite.at 2015-07-14 16:35:02.495236200 +0900
+@@ -320,6 +320,8 @@
+ # to unify different possible exit status values.
+ m4_define([LT_AT_EXEC_CHECK],
+ [lt_exe=$1; if test -f "$1$EXEEXT"; then lt_exe=$lt_exe$EXEEXT; fi
++m4_ifval([$3], [m4_if([$3], [ignore], [], [LT_AT_UNIFY_NL([$3])])])
++m4_ifval([$4], [m4_if([$4], [ignore], [], [LT_AT_UNIFY_NL([$4])])])
+ AT_CHECK([if "$lt_exe" $5; then :; else lt_status=$?; ]dnl
+ [ m4_ifval([$2], [test "$lt_status" != $2 && ])]dnl
+ [ test "X$host" != "X$build" && test -x "$lt_exe" && exit 77; ]dnl
+@@ -339,6 +341,8 @@
+ # to unify different possible exit status values.
+ m4_define([LT_AT_NOINST_EXEC_CHECK],
+ [lt_exe=$1; if test -f "$1$EXEEXT"; then lt_exe=$lt_exe$EXEEXT; fi
++m4_ifval([$4], [m4_if([$4], [ignore], [], [LT_AT_UNIFY_NL([$4])])])
++m4_ifval([$5], [m4_if([$5], [ignore], [], [LT_AT_UNIFY_NL([$5])])])
+ AT_CHECK([if $LIBTOOL --mode=execute $2 "$lt_exe" $6; then :; else lt_status=$?; ]dnl
+ [ m4_ifval([$3], [test "$lt_status" != $3 && ])]dnl
+ [ test "X$host" != "X$build" && test -x "$lt_exe" && exit 77; ]dnl
+diff -Naur libtool-2.4.6-old/build-aux/ltmain.in libtool-2.4.6/build-aux/ltmain.in
+--- libtool-2.4.6-old/build-aux/ltmain.in 2015-02-06 21:57:56.000000000 +0900
++++ libtool-2.4.6/build-aux/ltmain.in 2015-07-18 05:47:02.820124000 +0900
+@@ -3054,7 +3054,7 @@
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+- *MS\ Windows\ PE\ Intel*)
++ *PE32*Intel\ 80386,\ for\ MS\ Windows*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+diff -Naur libtool-2.4.6-old/tests/mdemo.at libtool-2.4.6/tests/mdemo.at
+--- libtool-2.4.6-old/tests/mdemo.at 2015-01-17 03:52:04.000000000 +0900
++++ libtool-2.4.6/tests/mdemo.at 2015-07-19 05:21:53.373111100 +0900
+@@ -342,6 +342,10 @@
+ [[#include <config.h>
+ #include <stdio.h>
+ #include <string.h>
++/* XXX needed for i386 crash-at-exit workaround on mingw-w64 */
++#ifdef __MINGW32__
++#include <process.h>
++#endif
+
+ #include "foo.h"
+ #include "ltdl.h"
+@@ -573,6 +577,12 @@
+ }
+
+ lt_dlexit();
++ /* XXX this test crashes at exit, but only on i386; should figure out why */
++#ifdef __MINGW32__
++ fflush(stdout);
++ fflush(stderr);
++ _exit(ret);
++#endif
+ return ret;
+ }
+ ]])
+diff -Naur libtool-2.4.6-old/tests/darwin.at libtool-2.4.6/tests/darwin.at
+--- libtool-2.4.6-old/tests/darwin.at 2015-07-19 06:01:21.670510000 +0900
++++ libtool-2.4.6/tests/darwin.at 2015-07-19 06:10:41.764128900 +0900
+@@ -101,7 +101,10 @@
+
+
+ AT_SETUP([darwin concurrent library extraction])
+-
++AT_CHECK([case $host_os in
++darwin*) ;;
++*) exit 77 ;;
++esac])
+ AT_DATA([foo.c], [[
+ int foo (void) { return 0; }
+ ]])
+diff -Naur libtool-2.4.6-old/tests/cmdline_wrap.at libtool-2.4.6/tests/cmdline_wrap.at
+--- libtool-2.4.6-old/tests/cmdline_wrap.at 2015-01-17 03:52:04.000000000 +0900
++++ libtool-2.4.6/tests/cmdline_wrap.at 2015-07-19 08:01:45.110423400 +0900
+@@ -27,6 +27,11 @@
+
+ AT_SETUP([Run tests with low max_cmd_len])
+ AT_KEYWORDS([recursive expensive])
++dnl XXX some of the tests run by this test fail on mingw-w64; how to fix?
++AT_CHECK([case $host_os in
++mingw*) exit 77 ;;
++*) ;;
++esac])
+ dnl If we already have failures, then reruns will fail too!
+ fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do test -f "$f" && echo "$f"; done`
+ echo "DEBUG: fail_list='$fail_list'"
diff --git a/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch b/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch
new file mode 100644
index 000000000000..49cc0706551c
--- /dev/null
+++ b/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch
@@ -0,0 +1,33 @@
+From a18473ed4e5574dab899db640b8efeff78939b54 Mon Sep 17 00:00:00 2001
+From: Manoj Gupta <manojgupta@chromium.org>
+Date: Wed, 10 Oct 2018 10:50:23 +0300
+Subject: [PATCH 1/2] Pick up clang_rt static archives compiler internal
+ libraries
+
+Libtool checks only for libraries linked as -l* when trying to
+find internal compiler libraries. Clang, however uses the absolute
+path to link its internal libraries e.g. compiler_rt. This patch
+handles clang's statically linked libraries when finding internal
+compiler libraries.
+https://crbug.com/749263
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
+---
+ m4/libtool.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index b55a6e5..d9322d0 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -7556,7 +7556,7 @@ if AC_TRY_EVAL(ac_compile); then
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $prev$p in
+
+- -L* | -R* | -l*)
++ -L* | -R* | -l* | */libclang_rt.*.a)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test x-L = "$p" ||
+--
+2.7.4
+
diff --git a/0012-Prefer-response-files-over-linker-scripts-for-mingw.patch b/0012-Prefer-response-files-over-linker-scripts-for-mingw.patch
new file mode 100644
index 000000000000..7bdb62dbfb86
--- /dev/null
+++ b/0012-Prefer-response-files-over-linker-scripts-for-mingw.patch
@@ -0,0 +1,83 @@
+From ec15841963ca3aab3bc88fb0932c014337284bfc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
+Date: Wed, 10 Oct 2018 10:47:21 +0300
+Subject: [PATCH 2/2] Prefer response files over linker scripts for mingw tools
+
+The GCC/binutils tools support response files just fine, while
+lld (impersonating GNU ld) only supports response files, not
+linker scripts. Using a linker script as input just to pass a
+list of files is overkill for cases when a response file is enough.
+---
+ build-aux/ltmain.in | 28 ++++++++++++++--------------
+ m4/libtool.m4 | 2 ++
+ 2 files changed, 16 insertions(+), 14 deletions(-)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index e2fb263..db5d590 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -7932,20 +7932,7 @@ EOF
+ last_robj=
+ k=1
+
+- if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+- output=$output_objdir/$output_la.lnkscript
+- func_verbose "creating GNU ld script: $output"
+- echo 'INPUT (' > $output
+- for obj in $save_libobjs
+- do
+- func_to_tool_file "$obj"
+- $ECHO "$func_to_tool_file_result" >> $output
+- done
+- echo ')' >> $output
+- func_append delfiles " $output"
+- func_to_tool_file "$output"
+- output=$func_to_tool_file_result
+- elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
++ if test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+ output=$output_objdir/$output_la.lnk
+ func_verbose "creating linker input file list: $output"
+ : > $output
+@@ -7964,6 +7951,19 @@ EOF
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
++ elif test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
++ output=$output_objdir/$output_la.lnkscript
++ func_verbose "creating GNU ld script: $output"
++ echo 'INPUT (' > $output
++ for obj in $save_libobjs
++ do
++ func_to_tool_file "$obj"
++ $ECHO "$func_to_tool_file_result" >> $output
++ done
++ echo ')' >> $output
++ func_append delfiles " $output"
++ func_to_tool_file "$output"
++ output=$func_to_tool_file_result
+ else
+ if test -n "$save_libobjs"; then
+ func_verbose "creating reloadable object files..."
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index d9322d0..9046a84 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -5130,6 +5130,7 @@ _LT_EOF
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
++ _LT_TAGVAR(file_list_spec, $1)='@'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -6706,6 +6707,7 @@ if test yes != "$_lt_caught_CXX_error"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
++ _LT_TAGVAR(file_list_spec, $1)='@'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+--
+2.7.4
+
diff --git a/PKGBUILD b/PKGBUILD
index dd2f6a8eaaaf..81a12e376cd7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,53 +1,88 @@
-# $Id$
-# Maintainer: Markus Kitsinger (SwooshyCueb) <root@swooshalicio.us>
+# Maintainer: Andrew Sun <adsun701 at gmail dot com>
+# Contributor: Markus Kitsinger (SwooshyCueb) <root at swooshalicio dot us>
# NOTE: requires rebuilt with each new gcc version
_pkgname=libtool
pkgname=mingw-w64-${_pkgname}
-pkgver=2.4.6
-pkgrel=2
-_gccver=7.3.0
+pkgver=2.4.6+42+gb88cebd5
+pkgrel=1
pkgdesc="A generic library support script (mingw-w64)"
arch=('any')
-url="http://www.gnu.org/software/libtool"
+url="https://www.gnu.org/software/libtool"
license=('GPL')
-groups=('base-devel')
depends=('sh' 'tar' 'mingw-w64-crt')
-makedepends=("mingw-w64-gcc=$_gccver" "mingw-w64-configure")
+makedepends=('mingw-w64-configure' 'git' 'help2man')
options=('staticlibs' '!strip' '!buildflags')
provides=("mingw-w64-libltdl=$pkgver" "mingw-w64-libtool-multilib=$pkgver")
conflicts=('mingw-w64-libltdl' 'mingw-w64-libtool-multilib')
replaces=('mingw-w64-libltdl' 'mingw-w64-libtool-multilib')
-source=(ftp://ftp.gnu.org/pub/gnu/libtool/${_pkgname}-${pkgver}.tar.xz{,.sig})
-md5sums=('1bfb9b923f2c1339b4d2ce1807064aa5'
- 'SKIP')
-validpgpkeys=('CFE2BE707B538E8B26757D84151308092983D606') # Gary Vaughan
+_commit=b88cebd510add4420dd8f5367e3cc6e6e1f267cd
+source=(git+https://git.savannah.gnu.org/git/libtool.git#commit=$_commit
+ git+https://git.savannah.gnu.org/git/gnulib.git
+ gnulib-bootstrap::git+https://github.com/gnulib-modules/bootstrap.git
+ 0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch
+ 0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch
+ 0005-Fix-seems-to-be-moved.patch
+ 0006-Fix-strict-ansi-vs-posix.patch
+ 0008-tests.patch
+ 0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch
+ 0012-Prefer-response-files-over-linker-scripts-for-mingw.patch)
+sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'fe8b80efd34f9385220ebc90aaec945e44de8c343c75719d6ac0d4e472a6eed5'
+ '98265e84992e6242ead64bc3f9ec19be6c32a56e7a5b74d86047f9b548bcb1fe'
+ 'dc39fbe066958178f96108f07db62b48b9339efddf2c21f800ff8d67110ca393'
+ '6a94ada08b0a0aa36240efd9ccb826e22ab94ef0969270f2edb8be344dc8c62b'
+ 'f00b44b49f83b20d4fbde89253666d0eb769172cfd711110f1be6a175294cb27'
+ 'c727b2b017163cfdeca60820d3cff2dac8968c5630745602b150f92b159af313'
+ 'c95a65e890b1ae6362807abc66809e72cf81aeea5f9f556e38f9752f974bf435')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
+pkgver() {
+ cd "${srcdir}/${_pkgname}"
+ git describe --tags | sed 's/-/+/g;s/^v//'
+}
+
+prepare() {
+ cd "${srcdir}/${_pkgname}"
+ patch -p1 -i ${srcdir}/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch
+ patch -p1 -i ${srcdir}/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch
+ patch -p1 -i ${srcdir}/0005-Fix-seems-to-be-moved.patch
+ patch -p1 -i ${srcdir}/0006-Fix-strict-ansi-vs-posix.patch
+ patch -p1 -i ${srcdir}/0008-tests.patch
+ patch -p1 -i ${srcdir}/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch
+ patch -p1 -i ${srcdir}/0012-Prefer-response-files-over-linker-scripts-for-mingw.patch
+
+ git submodule init
+ git config --local submodule.gnulib.url "$srcdir/gnulib"
+ git config --local submodule.gl-mod/bootstrap.url "$srcdir/gnulib-bootstrap"
+ git submodule update
+
+ ./bootstrap
+}
+
build() {
- unset LDFLAGS
+ cd "${srcdir}/${_pkgname}"
for _arch in ${_architectures}; do
- mkdir -p ${srcdir}/${_pkgname}-${pkgver}/${_arch}
- cd ${srcdir}/${_pkgname}-${pkgver}/${_arch}
- ${_arch}-configure --prefix=/usr/${_arch} lt_cv_sys_lib_dlsearch_path_spec="/usr/${_arch}/lib"
+ mkdir -p build-${_arch} && pushd build-${_arch}
+ ${_arch}-configure \
+ lt_cv_sys_lib_dlsearch_path_spec="/usr/${_arch}/lib"
make
+ popd
done
}
-#check() {
-# for _arch in ${_architectures}; do
-# cd ${srcdir}/${_pkgname}-${pkgver}/${_arch}
-# make check
-# done
-#}
-
package() {
for _arch in ${_architectures}; do
- cd ${srcdir}/${_pkgname}-${pkgver}/${_arch}
+ cd ${srcdir}/${_pkgname}/build-${_arch}
make DESTDIR=${pkgdir} install
${_arch}-strip --strip-unneeded ${pkgdir}/usr/${_arch}/bin/*.dll
${_arch}-strip -g ${pkgdir}/usr/${_arch}/lib/*.a
+
+ # remove dir file
+ rm -rf ${pkgdir}/usr/${_arch}/share/info/dir
done
}