[vlc-commits] [Git][videolan/vlc][3.0.x] 17 commits: Makefile.am: dist missing libtool patch

Steve Lhomme (@robUx4) gitlab at videolan.org
Sat Aug 15 08:57:07 UTC 2026



Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC


Commits:
42492cc7 by Alexandre Janniaux at 2026-08-15T07:41:50+00:00
Makefile.am: dist missing libtool patch

The patches were not added to the list of patches to be supplied with a
make dist so were missing in the final archive.

(cherry picked from commit 5b4e2addae1184228c08807ad2593c0ea946bd47) (edited)
edited:
- VLC 3 doesn't have ragel anymore
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
7db4fb26 by Alexandre Janniaux at 2026-08-15T07:41:50+00:00
extras/tools: bump xz to 5.4.1

(cherry picked from commit 131683f6787beb63e607af4fdf993c2576e3d9d8) (rebased)
rebased:
- xz has not the same packages around
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
4c47d0c9 by Khalid Masum at 2026-08-15T07:41:50+00:00
extras/tools/libtool: Add sideloading info for emscripten-host

Currently libtool.m4 does not have information about
wasm32-unknown-emscripten in host_os. Which causes failure in
enabling shared libraries.

This patch will create a new host_os case named emscripten in
libtool.m4 to allow us to enable shared library compilation
and add emscripten specific shared library building flags.
This patch will also add some shared library configuration in
libtool for emscripten host.

(cherry picked from commit 9edd92ecd00dfa57b6ba384f8e1699a7b1dfcc5c)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
7321eccc by Khalid Masum at 2026-08-15T07:41:50+00:00
extras: tools/libtool: Implement exported functions for emscripten

Emscripten needs symbols to be exported with -s EXPORTED_FUNCTIONS
in case of building with -s SIDE_MODULE=2, otherwise the functions
are not "visible" from other modules or removed as optimization.

This patch will implement exported functions on libtool for
emscripten.

(cherry picked from commit c36ab16c4a908cb652caeb3a7ed9476da788b101)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
1ca5df71 by Khalid Masum at 2026-08-15T07:41:50+00:00
extras: libtool: Use directory to add shared modules to compile emcc executables

Emscripten has not implemented adding shared libraries directly
to main modules properly yet.

See: https://github.com/emscripten-core/emscripten/issues/21667

Therefore, instruct libtool to use directory instead of the shared
object file for linking, as suggested in the issue.

(cherry picked from commit f449db0bf0d5a8816dbf9952b269e8a55a66a0c8)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
e03ecffe by Alexandre Janniaux at 2026-08-15T07:41:50+00:00
extras/tools: bump libtool to 2.5.4

2.5.4 was released on Wed 20 Nov[^1].

A few patches have been merged:
- emscripten-dllinker merged as v2.5.3-41-gd8a93445
- response-files merged as v2.5.3-25-geed74d65

Then clang-libs and embed-bitcode were conflicting, so they were rebased
and their filename were bumped too.

[^1]: https://savannah.gnu.org/news/?id=10693

(cherry picked from commit d4931205fcd02be6d6f6329ed7986f8db0aca173) (rebased)
rebased:
- the packages around are different in VLC 3
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
c18e9499 by Steve Lhomme at 2026-08-15T07:41:50+00:00
tools: fix build when iconv is not detected+working on the system

- the signature of iconv_ostream__flush() doesn't match the header
- iconv_ostream_create() is missing

(cherry picked from commit 7f23d9fa21d4f353a10fec666423ec23c5477807) (rebased)
rebased:
- gettext is handled differently below
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
2d982550 by Steve Lhomme at 2026-08-15T07:41:50+00:00
tools: add missing patches from EXTRA_DIST

(cherry picked from commit 709ce38af78dd47496d26dd9921aaed1a6b116b6)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
18ecf4a4 by Khalid Masum at 2026-08-15T07:41:50+00:00
extras: tools: pkgconfig port for gcc15 build

(cherry picked from commit 5c3e2c7b1b61e5dd0352a364df8efc1933b00e91)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
e03a6780 by Alexandre Janniaux at 2026-08-15T07:41:50+00:00
tools: patch libtool for old libraries

When libtool builds a static archive that depends on another static
archive, ie. an "old library" in libtool terminology, it archives the
dependency as a nested .a inside the target .a. Linkers cannot handle
nested archives and fail with errors such as:

    /usr/bin/ld: .libs/libfoo.a: member .libs/libfoo.a(libbar.a)
    in archive is not an object

The patch defers old_deplibs until the final executable or shared-library
link, recording them in dependency_libs so they propagate correctly
through the .la dependency chain.

This is required for VLC partial-linking support: we will read
old_library= from each plugin .la, resolves transitive static
dependencies via buildsystem/dependencies.sh, and partially links them
with `ld -r`. Without this patch the dependency_libs field is wrong and
nested archives break the partial linker.

The patch was sent to libtool-patches at gnu.org on 2021-04-06 but but was
not upstreamed yet. It was re-sent on 2026-04-28.

(cherry picked from commit 221101121888a9c2a31dace5d1265ba8fc3e5534)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
0f2f2df9 by Steve Lhomme at 2026-08-15T07:41:50+00:00
extras: tools: rename pkgconfig variables

So they match the name of the target.

(cherry picked from commit 18bd3b0166505e75f7c1d2b217700b7ec81672eb) (rebased)
rebased:
- the packages around are handled differently in VLC 3
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
e3311162 by Steve Lhomme at 2026-08-15T07:41:50+00:00
extras: tools: separate package dependencies from tarball dependencies

(cherry picked from commit 4b1d6d74be3a63d745f49f0b1cb3704166d8745e) (edited)
edited:
- VLC 3 doesn't have the local config.guess
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
5d41f37a by Steve Lhomme at 2026-08-15T07:41:50+00:00
extras/tools: libtool: reference MAGIC_EXE in the main

It fixes .exe detection with LLVM-mingw when -flto is used.

"__attribute__((externally_visible)) volatile" doesn't seem to be enough.
The symbol is stripped anyway.
It's also stripped during linking when __attribute__((visibility("default"))) is used.

Referencing the string in the main() seems to do the trick, even when compiled
with -O2 or -Os.

Fixes #29922

(cherry picked from commit 3c4953e746e19df5df04e4af36ebd17b2b73ce94)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
3298b375 by Steve Lhomme at 2026-08-15T07:41:50+00:00
extras/tools: libtool: respect the provided LTCFLAGS LTCC

Otherwise calling "LTCFLAGS=-Dtoto LTCC=gcc configure" doesn't use these values.

(cherry picked from commit 69c16b3897a44253cfcf9bd6e3f8758308e76232)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
41364aa8 by Steve Lhomme at 2026-08-15T07:41:50+00:00
extras/tools: libtool: add missing libtool patch to make dist

(cherry picked from commit b50450b8deb0c1c3c78fc70c2c10c68c61ff2635)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
d5ec32c2 by Alexandre Janniaux at 2026-08-15T07:41:50+00:00
extras/tools: bump libtool to 2.6.2

libtool 2.6.2 upstreamed two of our patches, which are dropped here. The
bump notably allows to remove the unarchive-old-libraries patch that was
fixed in a follow-up version upstream to ensure we have the same version
everywhere.

libtool-2.5.4-embed-bitcode.patch is rebased onto 2.6.2 and renamed
accordingly.

(cherry picked from commit 568f13dbe0deac0c6004b8a6118710f10ed2800d) (rebased)
rebased:
- the packages around are handled a bit differently in VLC 3
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
450ac69c by Steve Lhomme at 2026-08-15T07:41:50+00:00
extras/tools: move gettext section to match VLC 4

No functional changes

- - - - -


12 changed files:

- Makefile.am
- extras/tools/SHA512SUMS
- extras/tools/bootstrap
- + extras/tools/gettext-no-iconv.patch
- − extras/tools/libtool-2.4.7-clang-libs.patch
- − extras/tools/libtool-2.4.7-response-files.patch
- + extras/tools/libtool-2.5.4-libtool.m4-respect-the-provided-LTCFLAGS-LTCC-during.patch
- + extras/tools/libtool-2.5.4-ltmain.in-reference-MAGIC_EXE-in-the-main.patch
- extras/tools/libtool-2.4.7-embed-bitcode.patch → extras/tools/libtool-2.6.2-embed-bitcode.patch
- extras/tools/packages.mak
- + extras/tools/pkg-config-stdc23-port.patch
- extras/tools/tools.mak


Changes:

=====================================
Makefile.am
=====================================
@@ -60,9 +60,16 @@ EXTRA_DIST += \
 	extras/tools/tools.mak \
 	extras/tools/SHA512SUMS \
 	extras/tools/automake-clang.patch \
+	extras/tools/automake-disable-documentation.patch \
 	extras/tools/libtool-2.4.7-bitcode.patch \
-	extras/tools/libtool-2.4.7-clang-libs.patch \
-	extras/tools/libtool-2.4.7-response-files.patch
+	extras/tools/libtool-2.4.7-lpthread.patch \
+	extras/tools/libtool-2.6.2-embed-bitcode.patch \
+	extras/tools/libtool-2.5.4-ltmain.in-reference-MAGIC_EXE-in-the-main.patch \
+	extras/tools/libtool-2.5.4-libtool.m4-respect-the-provided-LTCFLAGS-LTCC-during.patch \
+	extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch \
+	extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch \
+	extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch \
+	extras/tools/pkg-config-stdc23-port.patch
 
 ###############################################################################
 # Various utilities ( editor syntax files, D-Bus controller ... )
@@ -223,4 +230,3 @@ dist-hook:
 		"$(distdir)/configure" "$(distdir)/configure.ac"
 	touch -r "$mtime_ref" "$(distdir)/configure.ac"
 	rm "$mtime_ref"
-


=====================================
extras/tools/SHA512SUMS
=====================================
@@ -8,13 +8,13 @@ f5dd0f02fcae65a176a16af9a8e1747c26e9440c6c224003ba458d3298b777a75ffb189aee9051fb
 6189e23c7e381f62e971bd0e35ad9c3ed8effe584755357013887c6a582cb5a9a654c39affa2a073b658854138f31bfb70f89fa1df494e9386f1d64fd73d07d2  protobuf-3.4.1.tar.gz
 dbbb0bb348fac54612d29182c09c88bda7096dea03bd94f03c580c24146e65a06db12808c6a1a9adc94548fa3843511e3e80b251cb07142110cf149eab23f573  sed-4.2.2.tar.bz2
 3bc12441bebfc388017ad0632fb3e777ceaf62be82fb19ce771df8bbb765eb094dad336110189f49f5eaaebd4d6ced586098e1e3c8b9f7f775dc483d5513f209  tar-1.26.tar.bz2
-83c50b8949b7215ab650fc9bf335e684d4bb2738357e1d002f31cfe4c77f96072e45767a0126016363e0272db880c4a5bd35b280e6f5074a466882137a477c79  xz-5.2.2.tar.bz2
+5a98d40c94ce496047f4dae7844252e91018c5259e7d3bd4bab0f7c8772c82ff137b0a8a263b9a6038bab893af4500009a6f14787aa1f969156fcdceb365203e  xz-5.4.1.tar.bz2
 d4d23af6671406e97257892f90651b67f2ab95219831372be032190b7156c10a3435d457857e677445df8b2327aacccc15344acbbc3808a6f332a93cce23b444  bison-3.8.2.tar.xz
 e9785f3d620a204b7d20222888917dc065c2036cae28667065bf7862dfa1b25235095a12fd04efdbd09bfd17d3452e6b9ef953a8c1137862ff671c97132a082e  flex-2.6.4.tar.gz
 ef6c3b9edc7d69c3847324134630a4fb4316e394fa3e38effb8ef3d0c03e48574d43cadf06a774355d7e43a4d7a70e4760c5242807cf4e67331af70d205b9cb0  nasm-2.16.03.tar.gz
+e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04  gettext-0.22.tar.gz
 d24849b93de58b20f518c071687e7bfa653a96600382f36c4cf7fc1047656458f75f093b911b786b18b6931b2453cb60868ecbe07cc7d2984e5981a874b34942  help2man-1.47.6.tar.xz
 37b3a421419b16930e53181c431fe3b4afd55ac54733a5df08376641fd2fb88eeb73ee7abe3788f3e491e7c1b215c7f35aefa66f44b09008ad22b76ab2998830  ninja-1.11.1.tar.gz
 4e6ad56e18c7d5b244b94b99c7e42489b8d4e79634abb97607c3f277f74b0c3c1cb043ba48816f444d2960fe96dc38459c404207e415a1401f5fad7c6f5d60e5  meson-1.10.0.tar.gz
-27acef46d9eb67203d708b57d80b853f76fa4b9c2720ff36ec161e6cdf702249e7982214ddf60bae75511aa79bc7d92aa27e3eab7ef9c0f5c040e8e42e76a385  libtool-2.4.7.tar.gz
-e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04  gettext-0.22.tar.gz
+e4e4df9f191152241c813e3f79f6afdc4b8a0a6d9e94d76f2b9fbea6ab98a9f5280376ec34325b5a08bc93e5b702fb2e7183488294457ee8bed33e1ec8aa4a35  libtool-2.6.2.tar.gz
 b4de208f179b68d4c6454139ca60d66ed3ef3893a560d6159a056640f83d3ee67cdf6ffb88971cdba35449dba4b597eaa8b4ae908127ef7fd58c89f40bf9a705  zstd-1.5.7.tar.gz


=====================================
extras/tools/bootstrap
=====================================
@@ -233,10 +233,10 @@ check xz
 check bison $MIN_BISON
 check flex
 check_nasm $MIN_NASM
+check gettext
 check help2man
 check meson $MIN_MESON
 check_ninja $MIN_NINJA
-check gettext
 check zstd $MIN_ZSTD
 
 DEPS_ONLY="help2man"


=====================================
extras/tools/gettext-no-iconv.patch
=====================================
@@ -0,0 +1,25 @@
+--- gettext/libtextstyle/lib/iconv-ostream.c.orig	2025-10-22 13:15:49
++++ gettext/libtextstyle/lib/iconv-ostream.c	2025-10-22 13:15:54
+@@ -245,7 +245,7 @@ static void
+ }
+ 
+ static void
+-iconv_ostream__flush (iconv_ostream_t stream)
++iconv_ostream__flush (iconv_ostream_t stream, ostream_flush_scope_t scope)
+ {
+   abort ();
+ }
+@@ -256,6 +256,13 @@ iconv_ostream__free (iconv_ostream_t stream)
+   abort ();
+ }
+ 
++iconv_ostream_t
++iconv_ostream_create (const char *from_encoding, const char *to_encoding,
++                      ostream_t destination)
++{
++  return NULL;
++}
++
+ /* Accessors.  */
+ 
+ static const char *


=====================================
extras/tools/libtool-2.4.7-clang-libs.patch deleted
=====================================
@@ -1,19 +0,0 @@
-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
-
---- libtool-2.4.6/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
-+++ libtool-2.4.6/m4/libtool.m4.clang	2019-03-06 17:27:40.620395700 +0100
-@@ -7531,7 +7531,7 @@
-   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" ||


=====================================
extras/tools/libtool-2.4.7-response-files.patch deleted
=====================================
@@ -1,83 +0,0 @@
-From 5fe8ae738927cd2c7e6d786b359e39876c84630c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin at martin.st>
-Date: Wed, 10 Oct 2018 10:47:21 +0300
-Subject: [PATCH] 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.
----
- libtool-2.4.6/build-aux/ltmain.in | 28 ++++++++++++++--------------
- libtool-2.4.6/m4/libtool.m4      |  2 ++
- 2 files changed, 16 insertions(+), 14 deletions(-)
-
-diff --git libtool-2.4.6/build-aux/ltmain.in.orig libtool-2.4.6/build-aux/ltmain.in
-index 2641327..f6b4217 100644
---- libtool-2.4.6/build-aux/ltmain.in.orig	2019-05-14 15:41:21.977391100 +0200
-+++ libtool-2.4.6/build-aux/ltmain.in	2019-05-14 15:43:07.767697900 +0200
-@@ -9852,20 +9852,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
-@@ -9884,6 +9871,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 libtool-2.4.6/m4/libtool.m4.orig libtool-2.4.6/m4/libtool.m4
-index 6f93d32..2c5c2f0 100644
---- libtool-2.4.6/m4/libtool.m4.orig
-+++ libtool-2.4.6/m4/libtool.m4
-@@ -4750,6 +4750,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'
-@@ -6166,6 +6167,7 @@ if test "$_lt_caught_CXX_error" != yes; 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
-


=====================================
extras/tools/libtool-2.5.4-libtool.m4-respect-the-provided-LTCFLAGS-LTCC-during.patch
=====================================
@@ -0,0 +1,38 @@
+From 98399f0b0ad7a848b198ce77d84b042d5aed4192 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Fri, 19 Jun 2026 11:51:11 +0200
+Subject: [PATCH] libtool.m4: respect the provided LTCFLAGS/LTCC during
+ configure
+
+Otherwise calling "LTCFLAGS=-Dtoto LTCC=gcc configure" doesn't use these values.
+It always hardcoded to use CC/CFLAGS.
+---
+ m4/libtool.m4 | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index 8bc4bfde..cabe58a8 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -931,8 +931,6 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+ m4_defun([_LT_TAG_COMPILER],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+ 
+-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+ _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+ _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+ 
+@@ -942,6 +940,9 @@ LTCC=${LTCC-"$CC"}
+ # If no C compiler flags were specified, use CFLAGS.
+ LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+ 
++_LT_DECL([LTCC], [LTCC], [1], [A C compiler])dnl
++_LT_DECL([LTCFLAGS], [LTCFLAGS], [1], [LTCC compiler flags])dnl
++
+ # Allow CC to be a program name with arguments.
+ compiler=$CC
+ ])# _LT_TAG_COMPILER
+-- 
+2.52.0.windows.1
+


=====================================
extras/tools/libtool-2.5.4-ltmain.in-reference-MAGIC_EXE-in-the-main.patch
=====================================
@@ -0,0 +1,32 @@
+From a7108558f5c05ae7fb4ac0d49f68d03ee43446f2 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Mon, 15 Jun 2026 09:03:12 +0200
+Subject: [PATCH] ltmain.in: reference MAGIC_EXE in the main
+
+It fixes .exe detection with LLVM-mingw when -flto is used.
+
+"__attribute__((externally_visible)) volatile" doesn't seem to be enough.
+The symbol is stripped anyway.
+It's also stripped during linking when __attribute__((visibility("default"))) is used.
+
+Referencing the string in the main() seems to do the trick, even when compiled with -O2 or -Os.
+---
+ build-aux/ltmain.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index ffd4c716..bf927f0c 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -3994,6 +3994,8 @@ main (int argc, char *argv[])
+ 
+   int i;
+ 
++  (void) MAGIC_EXE;
++
+   program_name = (char *) xstrdup (base_name (argv[0]));
+   newargz = XMALLOC (char *, (size_t) argc + 1);
+ 
+-- 
+2.52.0.windows.1
+


=====================================
extras/tools/libtool-2.4.7-embed-bitcode.patch → extras/tools/libtool-2.6.2-embed-bitcode.patch
=====================================
@@ -1,4 +1,4 @@
-From 019e9ec253a972fd5b0e3675140256b0982ec6f4 Mon Sep 17 00:00:00 2001
+From b673e6bd5a4d211e7bb05051656b5acd738fbe4d Mon Sep 17 00:00:00 2001
 From: Alexandre Janniaux <ajanni at videolabs.io>
 Date: Mon, 31 May 2021 10:28:54 +0200
 Subject: [PATCH] ltmain: add support for -fembed-bitcode
@@ -9,22 +9,22 @@ Subject: [PATCH] ltmain: add support for -fembed-bitcode
  2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
-index 8ef537c1..d8131598 100644
+index af2f756..c514010 100644
 --- a/build-aux/ltmain.in
 +++ b/build-aux/ltmain.in
-@@ -5197,6 +5197,7 @@ func_mode_link ()
+@@ -5451,6 +5451,7 @@ func_mode_link ()
  	continue
  	;;
        -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
 +      |-fembed-bitcode|-fembed-bitcode-marker \
-       |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+       |-threads|$fopenmp_match|fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
  	func_append compiler_flags " $arg"
  	func_append compile_command " $arg"
 diff --git a/m4/libtool.m4 b/m4/libtool.m4
-index 69cd577d..da0eec54 100644
+index 96e6c7d..ebb993a 100644
 --- a/m4/libtool.m4
 +++ b/m4/libtool.m4
-@@ -1122,9 +1122,9 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
+@@ -1275,9 +1275,9 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
    if test yes = "$_lt_dar_can_shared"; then
      output_verbose_link_cmd=func_echo_all
      _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
@@ -34,8 +34,8 @@ index 69cd577d..da0eec54 100644
 -    _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
 +    _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -dynamiclib \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
      m4_if([$1], [CXX],
- [   if test yes != "$lt_cv_apple_cc_single_mod"; then
-       _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+ [   if test yes = "$_lt_dar_needs_single_mod" -a yes != "$lt_cv_apple_cc_single_mod"; then
+       _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs $stdlibflag -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
 -- 
-2.36.0
+2.54.0
 


=====================================
extras/tools/packages.mak
=====================================
@@ -10,7 +10,7 @@ CMAKE_VERSION_MAJ=4.1
 CMAKE_VERSION=$(CMAKE_VERSION_MAJ).2
 CMAKE_URL=https://www.cmake.org/files/v$(CMAKE_VERSION_MAJ)/cmake-$(CMAKE_VERSION).tar.gz
 
-LIBTOOL_VERSION=2.4.7
+LIBTOOL_VERSION=2.6.2
 LIBTOOL_URL=$(GNU)/libtool/libtool-$(LIBTOOL_VERSION).tar.gz
 
 AUTOCONF_VERSION=2.71
@@ -22,13 +22,13 @@ AUTOMAKE_URL=$(GNU)/automake/automake-$(AUTOMAKE_VERSION).tar.gz
 M4_VERSION=1.4.19
 M4_URL=$(GNU)/m4/m4-$(M4_VERSION).tar.gz
 
-PKGCFG_VERSION=0.28-1
-PKGCFG_URL=$(SF)/pkgconfiglite/$(PKGCFG_VERSION)/pkg-config-lite-$(PKGCFG_VERSION).tar.gz
+PKGCONFIG_VERSION=0.28-1
+PKGCONFIG_URL=$(SF)/pkgconfiglite/$(PKGCONFIG_VERSION)/pkg-config-lite-$(PKGCONFIG_VERSION).tar.gz
 
 TAR_VERSION=1.26
 TAR_URL=$(GNU)/tar/tar-$(TAR_VERSION).tar.bz2
 
-XZ_VERSION=5.2.2
+XZ_VERSION=5.4.1
 XZ_URL=https://tukaani.org/xz/xz-$(XZ_VERSION).tar.bz2
 
 GAS_VERSION=72887b9


=====================================
extras/tools/pkg-config-stdc23-port.patch
=====================================
@@ -0,0 +1,29 @@
+From: Khalid Masum <khalid.masum.92 at gmail.com>
+Subject: glib-snippet: port to stdc23
+
+stdc=23 has a new keyword "bool" l. Therefore, it cannot
+be used as any other symbol name. Therefore, compilers that
+default to stdc23 or later, like gcc-15 fail to compile it.
+
+This patch fixes it.
+
+--- b/glib-snippet.c	2025-12-02 09:55:25.595319484 +0600
++++ a/glib-snippet.c	2013-01-27 02:21:06.000000000 +0600
+@@ -1187,7 +1187,7 @@
+   gpointer arg_data;
+   union
+   {
+-    gboolean bool;
++    gboolean boolean;
+     gint integer;
+     gchar *str;
+     gchar **array;
+@@ -2454,7 +2454,7 @@
+           switch (change->arg_type)
+             {
+             case G_OPTION_ARG_NONE:
+-              *(gboolean *)change->arg_data = change->prev.bool;
++              *(gboolean *)change->arg_data = change->prev.boolean;
+               break;
+             case G_OPTION_ARG_INT:
+               *(gint *)change->arg_data = change->prev.integer;


=====================================
extras/tools/tools.mak
=====================================
@@ -102,8 +102,9 @@ DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
 help2man-$(HELP2MAN_VERSION).tar.xz:
 	$(call download_pkg,$(HELP2MAN_URL),help2man)
 
+help2man: .tar
 .gethelp2man: help2man-$(HELP2MAN_VERSION).tar.xz
-help2man: help2man-$(HELP2MAN_VERSION).tar.xz .tar
+help2man: help2man-$(HELP2MAN_VERSION).tar.xz
 	$(UNPACK)
 	$(MOVE)
 
@@ -127,10 +128,11 @@ libtool: libtool-$(LIBTOOL_VERSION).tar.gz
 	$(UNPACK)
 	(cd $(UNPACK_DIR) && chmod u+w build-aux/ltmain.sh)
 	$(APPLY) $(TOOLS)/libtool-2.4.7-bitcode.patch
-	$(APPLY) $(TOOLS)/libtool-2.4.7-clang-libs.patch
-	$(APPLY) $(TOOLS)/libtool-2.4.7-response-files.patch
 	$(APPLY) $(TOOLS)/libtool-2.4.7-lpthread.patch
-	$(APPLY) $(TOOLS)/libtool-2.4.7-embed-bitcode.patch
+	$(APPLY) $(TOOLS)/libtool-2.6.2-embed-bitcode.patch
+
+	$(APPLY) $(TOOLS)/libtool-2.5.4-ltmain.in-reference-MAGIC_EXE-in-the-main.patch
+	$(APPLY) $(TOOLS)/libtool-2.5.4-libtool.m4-respect-the-provided-LTCFLAGS-LTCC-during.patch
 	$(MOVE)
 
 .buildlibtool: libtool .automake .help2man
@@ -271,13 +273,14 @@ DISTCLEAN_PKG += m4-$(M4_VERSION).tar.gz
 
 # pkg-config
 
-pkg-config-$(PKGCFG_VERSION).tar.gz:
-	$(call download_pkg,$(PKGCFG_URL),pkgconfiglite)
+pkg-config-$(PKGCONFIG_VERSION).tar.gz:
+	$(call download_pkg,$(PKGCONFIG_URL),pkgconfiglite)
 
 .getpkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
-pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
+pkgconfig: pkg-config-$(PKGCONFIG_VERSION).tar.gz
 	$(UNPACK)
-	mv pkg-config-lite-$(PKGCFG_VERSION) pkg-config-$(PKGCFG_VERSION)
+	mv pkg-config-lite-$(PKGCONFIG_VERSION) pkg-config-$(PKGCONFIG_VERSION)
+	$(APPLY) $(TOOLS)/pkg-config-stdc23-port.patch
 	$(MOVE)
 
 .buildpkg-config: pkgconfig
@@ -288,7 +291,7 @@ pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
 
 CLEAN_FILE += .buildpkg-config
 CLEAN_PKG += pkgconfig
-DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
+DISTCLEAN_PKG += pkg-config-$(PKGCONFIG_VERSION).tar.gz
 
 # gas-preprocessor
 gas-preprocessor-$(GAS_VERSION).tar.gz:
@@ -378,8 +381,9 @@ CLEAN_FILE += .buildprotoc
 bison-$(BISON_VERSION).tar.xz:
 	$(call download_pkg,$(BISON_URL),bison)
 
+bison: .tar
 .getbison: bison-$(BISON_VERSION).tar.xz
-bison: bison-$(BISON_VERSION).tar.xz .tar
+bison: bison-$(BISON_VERSION).tar.xz
 	$(UNPACK)
 	$(MOVE)
 
@@ -415,6 +419,45 @@ CLEAN_PKG += flex
 DISTCLEAN_PKG += flex-$(FLEX_VERSION).tar.gz
 CLEAN_FILE += .buildflex
 
+
+
+#
+# GNU gettext
+#
+
+GETTEXT_CONF = \
+	--disable-relocatable \
+	--disable-java \
+	--disable-native-java \
+	--disable-csharp \
+	--disable-d \
+	--disable-go \
+	--disable-modula2 \
+	--disable-openmp \
+	--without-emacs \
+	--without-included-libxml \
+	--without-git \
+	--without-cvs
+
+gettext-$(GETTEXT_VERSION).tar.gz:
+	$(call download_pkg,$(GETTEXT_URL),gettext)
+
+.getgettext: gettext-$(GETTEXT_VERSION).tar.gz
+gettext: gettext-$(GETTEXT_VERSION).tar.gz
+	$(UNPACK)
+	$(APPLY) $(TOOLS)/gettext-no-iconv.patch
+	$(MOVE)
+
+.buildgettext: gettext
+	cd $<; ./configure --prefix=$(PREFIX) $(GETTEXT_CONF)
+	+$(MAKE) -C $< EXAMPLESFILES= EXAMPLESDIRS= TESTS=
+	+$(MAKE) -C $< EXAMPLESFILES= EXAMPLESDIRS= TESTS= install
+	touch $@
+
+CLEAN_PKG += gettext
+DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
+CLEAN_FILE += .buildgettext
+
 #
 # meson build
 #
@@ -461,44 +504,6 @@ CLEAN_PKG += ninja
 DISTCLEAN_PKG += ninja-$(NINJA_VERSION).tar.gz
 CLEAN_FILE += .buildninja
 
-
-#
-# GNU gettext
-#
-
-GETTEXT_CONF = \
-	--disable-relocatable \
-	--disable-java \
-	--disable-native-java \
-	--disable-csharp \
-	--disable-d \
-	--disable-go \
-	--disable-modula2 \
-	--disable-openmp \
-	--without-emacs \
-	--without-included-libxml \
-	--without-git \
-	--without-cvs
-
-gettext-$(GETTEXT_VERSION).tar.gz:
-	$(call download_pkg,$(GETTEXT_URL),gettext)
-
-.getgettext: gettext-$(GETTEXT_VERSION).tar.gz
-gettext: gettext-$(GETTEXT_VERSION).tar.gz
-	$(UNPACK)
-	$(MOVE)
-
-.buildgettext: gettext
-	cd $<; ./configure --prefix=$(PREFIX) $(GETTEXT_CONF)
-	+$(MAKE) -C $< EXAMPLESFILES= EXAMPLESDIRS= TESTS=
-	+$(MAKE) -C $< EXAMPLESFILES= EXAMPLESDIRS= TESTS= install
-	touch $@
-
-CLEAN_PKG += gettext
-DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
-CLEAN_FILE += .buildgettext
-
-
 #
 #
 #



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/7bbeddd4da3defa32cfbebfa3a0e5e312fda64c0...450ac69ca734b4fa24b42241e1aad13eeb0fb7be

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/7bbeddd4da3defa32cfbebfa3a0e5e312fda64c0...450ac69ca734b4fa24b42241e1aad13eeb0fb7be
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list