From 6b63c561f9f50269b3b32e1bcbac82aa025288b9 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Wed, 15 Dec 2021 18:17:13 +0100 Subject: [PATCH 1/2] libtool: remove and add libltdl instead --- mingw-w64-libltdl/PKGBUILD | 49 +++++++ ...ingw-Create-UAC-manifest-files.mingw.patch | 99 ------------- ...s-runtime-library-flags-to-GCC.mingw.patch | 28 ---- .../0005-Fix-seems-to-be-moved.patch | 24 ---- .../0006-Fix-strict-ansi-vs-posix.patch | 22 --- ...0007-fix-cr-for-awk-in-configure.all.patch | 22 --- mingw-w64-libtool/0008-tests.patch | 132 ------------------ ...-static-archives-compiler-internal-l.patch | 33 ----- ...files-over-linker-scripts-for-mingw-.patch | 83 ----------- ...-linking-compiler-support-libraries-.patch | 38 ----- .../0014-Support-llvm-objdump-f-output.patch | 39 ------ mingw-w64-libtool/PKGBUILD | 80 ----------- 12 files changed, 49 insertions(+), 600 deletions(-) create mode 100644 mingw-w64-libltdl/PKGBUILD delete mode 100644 mingw-w64-libtool/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch delete mode 100644 mingw-w64-libtool/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch delete mode 100644 mingw-w64-libtool/0005-Fix-seems-to-be-moved.patch delete mode 100644 mingw-w64-libtool/0006-Fix-strict-ansi-vs-posix.patch delete mode 100644 mingw-w64-libtool/0007-fix-cr-for-awk-in-configure.all.patch delete mode 100644 mingw-w64-libtool/0008-tests.patch delete mode 100644 mingw-w64-libtool/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch delete mode 100644 mingw-w64-libtool/0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch delete mode 100644 mingw-w64-libtool/0013-Allow-statically-linking-compiler-support-libraries-.patch delete mode 100644 mingw-w64-libtool/0014-Support-llvm-objdump-f-output.patch delete mode 100644 mingw-w64-libtool/PKGBUILD diff --git a/mingw-w64-libltdl/PKGBUILD b/mingw-w64-libltdl/PKGBUILD new file mode 100644 index 0000000000..62df146970 --- /dev/null +++ b/mingw-w64-libltdl/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Alexey Pavlov +# Contributor: Ray Donnelly + +_realname=libltdl +_parentname=libtool +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2.4.6 +pkgrel=21 +pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" +arch=('any') +mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') +url="https://www.gnu.org/software/libtool" +license=("GPL") +makedepends=("${MINGW_PACKAGE_PREFIX}-autotools" "${MINGW_PACKAGE_PREFIX}-gcc") +provides=("${MINGW_PACKAGE_PREFIX}-libtool") +conflicts=("${MINGW_PACKAGE_PREFIX}-libtool") +replaces=("${MINGW_PACKAGE_PREFIX}-libtool") +source=("https://ftp.gnu.org/pub/gnu/libtool/${_parentname}-${pkgver}.tar.xz"{,.sig}) +sha256sums=('7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f' + 'SKIP') +validpgpkeys=('CFE2BE707B538E8B26757D84151308092983D606') #Gary Vaughan (Free Software Developer) + +prepare() { + cd ${srcdir}/${_parentname}-${pkgver}/libltdl + + autoreconf -fvi +} + +build() { + mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} + + export lt_cv_deplibs_check_method='pass_all' + + ../${_parentname}-${pkgver}/libltdl/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} \ + --enable-ltdl-install + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + + make DESTDIR="${pkgdir}" install +} diff --git a/mingw-w64-libtool/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch b/mingw-w64-libtool/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch deleted file mode 100644 index 310002b823..0000000000 --- a/mingw-w64-libtool/0002-cygwin-mingw-Create-UAC-manifest-files.mingw.patch +++ /dev/null @@ -1,99 +0,0 @@ -[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 -+} -+ - # 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/mingw-w64-libtool/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch b/mingw-w64-libtool/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch deleted file mode 100644 index 99b0ed24da..0000000000 --- a/mingw-w64-libtool/0003-Pass-various-runtime-library-flags-to-GCC.mingw.patch +++ /dev/null @@ -1,28 +0,0 @@ -[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 -@@ -5084,9 +5084,12 @@ func_mode_link () - # --sysroot=* for sysroot support - # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - # -stdlib=* select c++ std lib with clang -+ # -{shared,static}-libgcc, -static-{libgfortran|libstdc++} -+ # link against specified runtime library - -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=*) -+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -+ -shared-libgcc|-static-libgcc|-static-libgfortran|-static-libstdc++) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - func_append compile_command " $arg" --- -1.7.1 - diff --git a/mingw-w64-libtool/0005-Fix-seems-to-be-moved.patch b/mingw-w64-libtool/0005-Fix-seems-to-be-moved.patch deleted file mode 100644 index 73c249db39..0000000000 --- a/mingw-w64-libtool/0005-Fix-seems-to-be-moved.patch +++ /dev/null @@ -1,24 +0,0 @@ -[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/mingw-w64-libtool/0006-Fix-strict-ansi-vs-posix.patch b/mingw-w64-libtool/0006-Fix-strict-ansi-vs-posix.patch deleted file mode 100644 index 486ad76112..0000000000 --- a/mingw-w64-libtool/0006-Fix-strict-ansi-vs-posix.patch +++ /dev/null @@ -1,22 +0,0 @@ -[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/mingw-w64-libtool/0007-fix-cr-for-awk-in-configure.all.patch b/mingw-w64-libtool/0007-fix-cr-for-awk-in-configure.all.patch deleted file mode 100644 index 65d5185a36..0000000000 --- a/mingw-w64-libtool/0007-fix-cr-for-awk-in-configure.all.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- libtool-2.4.2/configure.orig 2011-10-17 10:18:58.000000000 +0000 -+++ libtool-2.4.2/configure 2013-08-04 19:01:30.220494400 +0000 -@@ -28825,7 +28825,7 @@ - fi - ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` - if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then -- ac_cs_awk_cr='\\r' -+ ac_cs_awk_cr='\r' - else - ac_cs_awk_cr=$ac_cr - fi ---- libtool-2.4.2/libltdl/configure.orig 2011-10-17 10:19:47.000000000 +0000 -+++ libtool-2.4.2/libltdl/configure 2013-08-05 11:49:24.990792500 +0000 -@@ -13574,7 +13574,7 @@ - fi - ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` - if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then -- ac_cs_awk_cr='\\r' -+ ac_cs_awk_cr='\r' - else - ac_cs_awk_cr=$ac_cr - fi diff --git a/mingw-w64-libtool/0008-tests.patch b/mingw-w64-libtool/0008-tests.patch deleted file mode 100644 index a07b682fdb..0000000000 --- a/mingw-w64-libtool/0008-tests.patch +++ /dev/null @@ -1,132 +0,0 @@ -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 - #include - #include -+/* XXX needed for i386 crash-at-exit workaround on mingw-w64 */ -+#ifdef __MINGW32__ -+#include -+#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/mingw-w64-libtool/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch b/mingw-w64-libtool/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch deleted file mode 100644 index 49cc070655..0000000000 --- a/mingw-w64-libtool/0011-Pick-up-clang_rt-static-archives-compiler-internal-l.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a18473ed4e5574dab899db640b8efeff78939b54 Mon Sep 17 00:00:00 2001 -From: Manoj Gupta -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/mingw-w64-libtool/0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch b/mingw-w64-libtool/0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch deleted file mode 100644 index 7bdb62dbfb..0000000000 --- a/mingw-w64-libtool/0012-Prefer-response-files-over-linker-scripts-for-mingw-.patch +++ /dev/null @@ -1,83 +0,0 @@ -From ec15841963ca3aab3bc88fb0932c014337284bfc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= -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/mingw-w64-libtool/0013-Allow-statically-linking-compiler-support-libraries-.patch b/mingw-w64-libtool/0013-Allow-statically-linking-compiler-support-libraries-.patch deleted file mode 100644 index b75b191a7c..0000000000 --- a/mingw-w64-libtool/0013-Allow-statically-linking-compiler-support-libraries-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From b9f77cae8cfbe850e58cac686fcb4d246b5bfc51 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= -Date: Mon, 19 Aug 2019 13:34:51 +0300 -Subject: [PATCH] Allow statically linking compiler support libraries when - linking a library - -For cases with deplibs_check_method="file_magic ..." (as it is for mingw), -there were previously no way that a static library could be accepted -here. ---- - build-aux/ltmain.in | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in -index e2fb2633..db4d775c 100644 ---- a/build-aux/ltmain.in -+++ b/build-aux/ltmain.in -@@ -5870,8 +5870,15 @@ func_mode_link () - fi - case $linkmode in - lib) -- # Linking convenience modules into shared libraries is allowed, -- # but linking other static libraries is non-portable. -+ # Linking convenience modules and compiler provided static libraries -+ # into shared libraries is allowed, but linking other static -+ # libraries is non-portable. -+ case $deplib in -+ */libgcc*.$libext | */libclang_rt*.$libext) -+ deplibs="$deplib $deplibs" -+ continue -+ ;; -+ esac - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) --- -2.17.1 - diff --git a/mingw-w64-libtool/0014-Support-llvm-objdump-f-output.patch b/mingw-w64-libtool/0014-Support-llvm-objdump-f-output.patch deleted file mode 100644 index d6570502d9..0000000000 --- a/mingw-w64-libtool/0014-Support-llvm-objdump-f-output.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 03dabb6a70847761e65572a2a7b770a3b1b9f123 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= -Date: Mon, 12 Apr 2021 23:44:10 +0200 -Subject: [PATCH] Support llvm-objdump -f output - ---- - build-aux/ltmain.in | 2 +- - m4/libtool.m4 | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in -index a9f070a..4a434cc 100644 ---- a/build-aux/ltmain.in -+++ b/build-aux/ltmain.in -@@ -3019,7 +3019,7 @@ func_win32_libid () - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|coff-arm|coff-arm64|coff-i386|coff-x86-64)' >/dev/null; then - case $nm_interface in - "MS dumpbin") - if func_cygming_ms_implib_p "$1" || -diff --git a/m4/libtool.m4 b/m4/libtool.m4 -index 21a7d60..594be9c 100644 ---- a/m4/libtool.m4 -+++ b/m4/libtool.m4 -@@ -3473,7 +3473,7 @@ mingw* | pw32*) - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. -- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|coff-arm|coff-arm64|coff-i386|coff-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; --- -2.31.1 - diff --git a/mingw-w64-libtool/PKGBUILD b/mingw-w64-libtool/PKGBUILD deleted file mode 100644 index db445a7a81..0000000000 --- a/mingw-w64-libtool/PKGBUILD +++ /dev/null @@ -1,80 +0,0 @@ -# Maintainer: Alexey Pavlov -# Contributor: Ray Donnelly - -_realname=libtool -pkgbase=mingw-w64-${_realname} -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.4.6 -pkgrel=20 -pkgdesc="A system independent dlopen wrapper for GNU libtool (mingw-w64)" -arch=('any') -mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') -url="https://www.gnu.org/software/libtool" -license=("GPL") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=('staticlibs' 'strip') -source=("https://ftp.gnu.org/pub/gnu/libtool/${_realname}-${pkgver}.tar.xz"{,.sig} - #https://alpha.gnu.org/gnu/libtool/${_realname}-${pkgver}.tar.xz{,.sig} - 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 - 0007-fix-cr-for-awk-in-configure.all.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 - 0013-Allow-statically-linking-compiler-support-libraries-.patch - 0014-Support-llvm-objdump-f-output.patch) -sha256sums=('7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f' - 'SKIP' - 'fe8b80efd34f9385220ebc90aaec945e44de8c343c75719d6ac0d4e472a6eed5' - '4f452cc104d110b4745d70e9bfc72617183ef97b25595b2675ab681d6c9517c2' - 'dc39fbe066958178f96108f07db62b48b9339efddf2c21f800ff8d67110ca393' - '6a94ada08b0a0aa36240efd9ccb826e22ab94ef0969270f2edb8be344dc8c62b' - 'd96beecfc5d15f94ce46bbe0e89d6e6fdb973a25ad6be98c30504b58453792c1' - 'f00b44b49f83b20d4fbde89253666d0eb769172cfd711110f1be6a175294cb27' - 'c727b2b017163cfdeca60820d3cff2dac8968c5630745602b150f92b159af313' - 'c95a65e890b1ae6362807abc66809e72cf81aeea5f9f556e38f9752f974bf435' - '8069e887aeeab7491f15e00547fa66d9b9e86407f5a23f37a6d8c7d165de752e' - 'db16cd322e0ebc578c906e94b0788810af17ce617c700a50db2e3c598dbbed7e') - -validpgpkeys=('CFE2BE707B538E8B26757D84151308092983D606') #Gary Vaughan (Free Software Developer) - -prepare() { - cd ${srcdir}/${_realname}-${pkgver} - 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}/0007-fix-cr-for-awk-in-configure.all.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 - patch -p1 -i ${srcdir}/0013-Allow-statically-linking-compiler-support-libraries-.patch - patch -p1 -i ${srcdir}/0014-Support-llvm-objdump-f-output.patch -} - -build() { - [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST} - ../${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${MINGW_CHOST} - make -} - -#check() { -# cd ${srcdir}/build-${MINGW_CHOST} -# make check -#} - -package() { - cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="${pkgdir}" install - # Because libtool will have queried native compilers, - # it'll contain native paths, so sed them back again. - local MINGW_PREFIX_W=$(cygpath -m "${MINGW_PREFIX}") - sed -i "s#${MINGW_PREFIX_W}#${MINGW_PREFIX}#g" "${pkgdir}${MINGW_PREFIX}"/bin/libtool -} From 70de954e2324219d467d05874132cbf30cbbd529 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Wed, 15 Dec 2021 18:42:05 +0100 Subject: [PATCH 2/2] autotools: depend on msys libtool instead mingw one is gone --- mingw-w64-autotools/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-autotools/PKGBUILD b/mingw-w64-autotools/PKGBUILD index 0454002024..9a3f386207 100644 --- a/mingw-w64-autotools/PKGBUILD +++ b/mingw-w64-autotools/PKGBUILD @@ -3,7 +3,7 @@ _realname=autotools pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2021.12.14 +pkgver=2021.12.15 pkgrel=1 pkgdesc="A meta package for the GNU autotools build system (mingw-w64)" arch=('any') @@ -14,8 +14,8 @@ depends=( 'autoconf' 'automake-wrapper' 'make' + 'libtool' "${MINGW_PACKAGE_PREFIX}-gettext" - "${MINGW_PACKAGE_PREFIX}-libtool" "${MINGW_PACKAGE_PREFIX}-pkg-config" ) source=(README.md)