diff options
-rw-r--r-- | .SRCINFO | 40 | ||||
-rw-r--r-- | 0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch | 99 | ||||
-rw-r--r-- | 0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch | 31 | ||||
-rw-r--r-- | 0005-Fix-seems-to-be-moved.patch | 24 | ||||
-rw-r--r-- | 0006-Fix-strict-ansi-vs-posix.patch | 22 | ||||
-rw-r--r-- | 0008-tests.patch | 132 | ||||
-rw-r--r-- | 0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch | 33 | ||||
-rw-r--r-- | 0012-Prefer-response-files-over-linker-scripts-for-mingw.patch | 83 | ||||
-rw-r--r-- | PKGBUILD | 83 |
9 files changed, 510 insertions, 37 deletions
@@ -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 + @@ -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 } |