4555 Commits

Author SHA1 Message Date
Ileana Dumitrescu
016405ab1e
libtool.texi: Update link mode documentation
* doc/libtool.texi: Specify a directory after the '-bindir' option
  when linking.
2026-01-24 19:13:32 +02:00
Ileana Dumitrescu
35c2e69211
ltmain.in: Recognise options for static linking with Clang
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78072

* build-aux/ltmain.in: Add --static and -Bstatic options.
* NEWS: Update.
2026-01-03 17:57:34 +02:00
Ileana Dumitrescu
ce3174cfb0
Update NEWS for commit 7430a961fa003c3dd69b9f7ab724f7ba74c876ed 2026-01-02 22:13:57 +02:00
Ileana Dumitrescu
e5a2f648e6
Update NEWS 2026-01-02 22:12:42 +02:00
Kirill Makurin
7430a961fa
ltmain.in: Fix file path conversions for MSYS2 and MSVC
The result of cygpath file path conversions are not stored correctly
causing the path conversions to fail on MSYS2 and MSVC.

Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79468

* build-aux/ltmain.in: Replace func_convert_core_msys_to_w32_result
  with func_convert_core_msys_to_w32_with_cygpath_result.
2026-01-02 20:22:57 +02:00
Ileana Dumitrescu
8ef98efc57
libtool: Update copyright year 2026-01-02 20:10:29 +02:00
Ileana Dumitrescu
c0bab28bb1
gnulib: Update submodule 2026-01-02 20:10:29 +02:00
Ileana Dumitrescu
74bc6f5229
Add testing for slimcc compiler
New compiler support testing for Slimcc, which is based on existing link
order testing.

See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79216
2025-12-04 16:57:24 +02:00
Arnold
9e33aadb8f
libtool.m4: Add support for slimcc
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79216
2025-12-01 22:30:53 +02:00
KO Myung-Hun
da026c4f23
libtool: Limit a length of DLL name to 8.3 correctly
If a length of $release and/or $versionsuffix is more than 8 bytes,
a length of DLL name may be more than 8.

Then, this corrupts a generated DLL on OS/2.

This patch assures 3 bytes for libname, 2 bytes for release, and 3 bytes
for version at least.

* m4/libtool.m4 (soname_spec) [os2*]: Limit a length of DLL name to 8.3
correctly.
2025-11-17 21:48:05 +02:00
Richard J. Mathar
09636566ee
ltmain.in: add parentheses to support values with spaces
The variable may contain a value with spaces that cause errors due
to the standard splitting of command line arguments by linux shells.
See https://github.com/autotools-mirror/libtool/pull/4/files.

Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79826

* build-aux/ltmain.in: Add missing quotes around darwin_orig_dir.
2025-11-14 20:36:26 +02:00
KO Myung-Hun
ca12ed428f
libtool: Remove old_archive_from_new_cmds on OS/2
old_archive_from_new_cmds is not used at all. In addition, if this is
defined static libs are not generated.

This is a regression of commit e60044.

* m4/libtool.m4: Remove old_archive_from_new_cmds on OS/2.
2025-10-27 17:04:23 +02:00
Patrice Dumas
2b78763026
libtool.texi: Update descriptions for command-line options
* doc/libtool.texi: Make descriptions for '--no-finish' and
  '--reorder-cache' clearer for users to understand.
2025-10-01 20:46:50 +03:00
Frederic Berat
53f8ca1d48
libtool.m4: Fix syntax error in LT_PROG_OBJC and LT_PROG_OBJCXX
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79468
2025-09-30 20:13:32 +03:00
Ileana Dumitrescu
bbcb9b23c6
libtool.m4: Fix Objective C++ check
The check for Objective C++ was combined with the check for
Objective C, which caused Objective C++ tests to fail if language
support was enabled for OBJC but not OBJCXX. Additionally, a syntax
error with macros LT_PROG_OBJC and LT_PROG_OBJCXX was observed on
Fedora, exhibiting differing behaviour than observed on other
GNU/Linux operating systems.

Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79468

* m4/libtool.m4: Add separate check for Objective C++.
* tests/flags.at, tests/infer-tag.at: Update to check cached variable
  for Objective C++, objcxx_compiles.
2025-09-29 21:39:31 +03:00
Ileana Dumitrescu
65b0515dc5
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2025-09-18 18:21:55 +03:00
Ileana Dumitrescu
c7b6fc4b84
version 2.6.0
* NEWS: Record release date.
2025-09-18 18:21:48 +03:00
Elizabeth Figura
0e41ccbc18
ltmain.in: Pass through all warning flags to the linker.
When link-time optimization (LTO) is used, some warnings are reported
while linking, and the flags must be passed to the linker to enable or
disable them.

-W* also catches -Wl,* and -Wa,*, but the former is already accounted
for in an earlier switch case, and the latter is already passed through.

* build-aux/ltmain.in: Pass through all warning flags to the linker.
2025-09-03 17:57:48 +03:00
Ileana Dumitrescu
a317aec072
Makefile.am: Reorder testsuite 2025-09-02 20:10:44 +03:00
Ileana Dumitrescu
912a36eab1
Add test file for libtool-next-version script
* Makefile.am: Add versioning_script.at to testsuite.
* doc/libtool.texi: Update to describe new test file.
* tests/versioning_script.at: Autotest file for testing the output of
  the libtool-next-version script.
2025-09-01 18:46:15 +03:00
Ileana Dumitrescu
41e81b7b96
Add support for ML64
The Microsoft Macro Assembler can be used to assemble and link one
or more assembly-language source files with libtool.

Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48993

* Makefile.am: Pass ML64 flags to tests.
* configure.ac: Add language support for the Microsoft Macro Assembler.
* doc/libtool.texi: Update documentation to include ML64.
* m4/libtool.m4: Enable macro support for ML64.
* tests/flags.at: Add test for ML64 flags.
* tests/infer-tag.at: Add test for ML64 tag.
* NEWS: Update.
2025-08-21 18:01:39 +03:00
Ileana Dumitrescu
64f31f45db
New Intel OneAPI compiler names
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78817

* libltdl/libltdl/lt__alloc.h: Change FREE and MEMREASSIGN macros for
  -Wcompound-token-split-by-macro.
* libltdl/libltdl/lt_system.h: Change LT_STMT_START and LT_STMT_END
  macros for -Wcompound-token-split-by-macro.
* libltdl/loaders/loadlibrary.c: Add support for icx, icpx, ifx.
* libltdl/ltdl.c: Fixes for Clang.
* m4/libtool.m4: Add support for icx, icpx, and ifx.
* NEWS: Update.
2025-08-13 19:44:19 +03:00
Ileana Dumitrescu
23f341eb38
gnulib: Update submodule 2025-08-06 17:53:35 +03:00
Ileana Dumitrescu
886dec311b
cfg.mk: Ignore sc_codespell checks 2025-08-06 17:11:13 +03:00
Ileana Dumitrescu
ff0fcd9a48
gnulib: Update submodule 2025-08-06 16:50:54 +03:00
Ileana Dumitrescu
d3073a69eb
libtool.m4: Bump serial 2025-08-05 19:39:47 +03:00
Ileana Dumitrescu
f52ed216f8
Update NEWS 2025-08-05 19:36:25 +03:00
Ileana Dumitrescu
2ba9a29e0d
tests: Remove CPPFLAGS from some compile commands
* tests/flags.at, tests/infer-tag.at: Remove unneeded CPPFLAGS from
  OBJC & OBJCXX compile commands.
2025-07-24 18:17:24 +03:00
Ileana Dumitrescu
0d274c66ec
tests/bug_71489.at: Split into two test cases 2025-07-24 17:50:49 +03:00
Pierre Ossman
f0694adce2
libltdl: Fix libltdl early failures for multi-arch
Since there could be multiple files for libltdl to try dlopening,
libltdl should not fail after the first attempted file.

Reported: https://savannah.gnu.org/support/?111214

* libltdl/ltdl.c: Change return if dlopen() fails.
* libltdl/ltdl.mk: Update serial.
2025-07-19 14:51:23 +03:00
Pierre Ossman
3fce3d4e8d
ltmain.in: Fix reordering --as-needed
Libtool was reordering flags like, --as-needed, which broke its usage,
since the relevant libraries were no longer following the flag.

Reported: https://savannah.gnu.org/support/?111213

* build-aux/ltmain.in: Add check for --as-needed and --no-as-needed
  flags.
2025-07-19 14:49:55 +03:00
Gleb Popov
504261db0e
m4: Fix flang -Wl flags on FreeBSD 2025-07-14 21:08:53 +03:00
Collin Funk
f776b1462d
maint: fix Automake warning
* Makefile.am (prologue): Remove macro.
(THANKS): Use the perl command directly.
2025-07-14 19:18:29 +03:00
Ileana Dumitrescu
58f12166a0
ltmain.in: Handle clang's target architecture flag
* build-aux/ltmain.in: Pass clang's '--target' flag for specifying
  architecture through libtool unchanged.
2025-07-14 18:39:21 +03:00
Ileana Dumitrescu
19dacdd9e1
libtool.m4: Replace '${COMSPEC-cmd}' with 'cmd' 2025-07-10 20:53:24 +03:00
Evgeny Grin
7efc189108
libtool: Forward slash escaping check on Windows
Without cygpath, Window's 'cmd' may hang with a single slash (when transforming)
and may hang with two slashes (when not transforming).

Reported: https://savannah.gnu.org/support/index.php?110901

* build-aux/ltmain.in: Use one or two slashes with Window's command
  prompt based on cached value in lt_cv_cmd_slashes.
* m4/libtool.m4: Cache whether one or two slashes are needed with
  Window's command prompt, when cygpath is not installed in path.
2025-07-09 17:02:59 +03:00
Ileana Dumitrescu
3dea730282
libtool.m4: Fix missing quotes for lt_ar_flags
lt_ar_flags are unquoted, which causes failures when additional options
are passed to ARFLAGS.

Reported: https://savannah.gnu.org/support/?111257

* m4/libtool.m4: Make lt_ar_flags declare as quoted.
2025-06-19 17:01:11 +03:00
Ileana Dumitrescu
9f4b6adea4
libtool: Support MSYS and MSYS2 file path conversions
MSYS does not have cygpath installed by default, so during configure,
a check for cygpath is cached. If cygpath is not found, Window's command
prompt will be used with a forward slash escape on the 'c' flag:
"cmd //c".

Reported: https://savannah.gnu.org/support/?110901

* build-aux/ltmain.in: Choose file path conversion for MSYS(2) by
  whether cygpath is installed.
* m4/libtool.m4: Cache whether cygpath is installed in user path.
2025-06-17 17:29:12 +03:00
Kirill Makurin
a26932a36e
libltdl: Undeclared reference to access on Windows
On native Windows (MSVC/mingw), access is declared in io.h, which is
not included.

* Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78701

* libltdl/ltdl.h: Include io.h on Windows platforms.
* libltdl/ltdl.mk: Update serial.
2025-06-06 17:44:58 +03:00
Ileana Dumitrescu
127d93b1f5
ltmain.in: Temporary comment update.
On MSYS2, file path conversion will no longer result in libtool hanging,
but the original MSYS will not be able to do file path conversions
without cygpath. Original MSYS support for file path conversions will be
re-added before commit 1377b68b4aed0d6ee3c390131eb763d26e5b642d migrates
to master.

Reported: https://savannah.gnu.org/support/index.php?110901

* build-aux/ltmain.in: Update comment from MSYS to MSYS2.
2025-06-06 16:45:06 +03:00
Ileana Dumitrescu
a9fb41ff73
notes.texi: Inform users about MSVC configuration
When building libltdl with the MSVC toolchain, Fortran checks can cause
issues with finding symbols, but users can avoid this by setting the
Fortran compiler environment variables to "no".

Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78682

* doc/notes.texi: Add item.
2025-06-06 16:37:57 +03:00
Ileana Dumitrescu
605bbd1a3b
tests: Skip failing tests on MSVC
Test 'deplibs without file command' fails on MSVC with a 'hard failure'.
Since this test was created for MinGW, skipping for now.

Test 'Libtool stress test.' fails on MSVC when the cl compiler cannot
open an expsym file, which appears to exist but is empty.

* tests/deplibs-mingw.at: Add check for MSVC build to skip test.
* tests/stresstest.at: Add check for MSVC build to skip test.
2025-05-26 17:18:52 +03:00
Ileana Dumitrescu
c57cf8fa75
inherited_flags.at: Fix test on MSVC
* tests/inherited_flags.at: Modify grep to limit search range.
2025-05-26 17:18:51 +03:00
Mitch
f49da6ca2a
libtool: Fix MSVC cl.exe .exp extension collision
MSVC's compiler uses the .exp entension for their own export format,
which causes a build failure when a subsequent build is run. The
MSVC compiler, cl.exe, errors for an invalid file format. This is fixed
by using a similar extension name to avoid the naming collision.

Reported: https://savannah.gnu.org/support/?111157

* build-aux/ltmain.in: Replace .exp extension with .expsym.
* m4/libtool.m4: Replace .exp extension with .expsym.
2025-05-26 17:18:51 +03:00
Ileana Dumitrescu
64b48f0bbd
ltmain.in: Add 'S_ISDIR' definition for MSVC
Several test failures occur from fix for sr #111191 with MSVC, which is
fixed by defining S_ISDIR with a different variable name, MSVC_ISDIR.

  error LNK2019: unresolved external symbol S_ISDIR referenced in func check_executable

* build-aux/ltmain.in: Define and use macro MSVC_ISDIR.
2025-05-26 17:18:51 +03:00
Ileana Dumitrescu
1377b68b4a
ltmain.in: Fix hang with cmd.exe in MSYS
Translating file paths from MSYS to W32 has been causing libtool to
indefinitely hang when 'cmd.exe //c' is called. Instead, 'cygpath' is
packaged on MSYS, so it will now handle the path conversion.

* build-aux/ltmain.in: Replace 'cmd.exe //c' with 'cygpath' usage.
2025-05-26 17:18:51 +03:00
Ileana Dumitrescu
021a79ba3e
libtoolize.at: Update checks based on linker used
If mklink is used for symlinking files, the expout will not match, so
stdout is used instead.

* tests/libtoolize.at: Use stdout for checks instead of expout on MSVC.
2025-05-26 17:18:50 +03:00
Michael Haubenwallner
5eb259c3ba
libtool.m4: preload valid C symbol names only
* m4/libtool.m4 (global_symbol_to_import, global_symbol_to_cdecl,
global_symbol_to_c_name_address,
global_symbol_to_c_name_address_lib_prefix): List valid C symbol names
only in lt_<modname>_LTX_preloaded_symbols array.
2025-05-26 17:18:50 +03:00
Michael Haubenwallner
240816b310
libtool.m4: For MS dumpbin drop CR first.
On Cygwin, gawk-4.1.4-3 and newer do not treat the input stream as text
any more, leaving us behind with carriage return in symbol names.
* m4/libtool.m4 (lt_cv_sys_global_symbol_pipe): In AWK script for MS
dumpbin drop CR first.
2025-05-26 17:18:50 +03:00
Ileana Dumitrescu
d27d17874b
libtoolize.in: Create symlinks with mklink for MSVC
Symlink files are not generated properly with 'ln -s' for MSVC to
process, so mklink is used, which swaps the argument order of target
and link_name. This also requires absolute paths, generated with the
use of cygpath.

* libtoolize.in: Check if linking with mklink and update processing.
2025-05-26 17:18:50 +03:00