Libtool silently discards options for install-sh that have not been
specified. Now the install directory and a suffix for backing up
files can be specified to be passed through libtool.
Reported: https://savannah.gnu.org/patch/index.php?10510
* build-aux/ltmain.in: Recognize -S and -t flags from install-sh.
find_executable() can return a directory of the same name as the target
executable if the directory is found earlier in the PATH, which causes
check_executable() to fail.
Reported: https://savannah.gnu.org/support/?111191
* build-aux/ltmain.in: Check if directory is found before executable
in the PATH.
Current, age, and revision values for a library seem to have been chosen
arbitrarily, which is limiting users to a 5 digit maximum. Now, users
can set revision to at most 19 digits, which is referencing Unix epoch
time in nanoseconds.
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75880
* build-aux/ltmain.in: Update revision check to allow up to 19 digits.
* tests/versioning.at: Add more version checks to test.
* NEWS: Update.
Removing duplicate compiler dependencies causes linking problems on
linux with GCC libraries. This deduplication optimization is no longer
used for linux hosts.
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75462
* build-aux/ltmain.in: Add linux to list of hosts that do not remove
duplicate compiler dependencies.
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67754
* Makefile.am: Set environment variables for tests.
* configure.ac: Add language support for Objective-C and Objective-C++.
* build-aux/ltmain.in: Update help message for tags available.
* m4/libtool.m4: Add tagging support for OBJC and OBJCXX.
* tests/flags.at: Add tests for passing OBJC and OBJCXX flags.
* tests/infer-tag.at: Add tests for inferring OBJC and OBJCXX tags.
* doc/libtool.texi: Update documentation.
* NEWS: Update.
* build-aux/ltmain.in: Make error message more explicit for users,
and add tag name information to help menu.
* tests/infer-tag.at: Add testcase for unsupported compiler use.
Without the ability to disable these old warnings individually, they
are migrating to the relevant section of the documentation to inform
new users that may not know. These warnings have been present for
two decades, so existing users should be aware of this functionality.
* build-aux/ltmain.in: Remove old warnings.
* doc/libtool.texi: Document contents of warning messages.
This patch adds support for emscripten compiler for shared compilation.
* build-aux/ltmain.in: clone link-mode handling for emscripten from
unixware7.
* m4/libtool.m4: translate emscripten specific flags for shared module
building.
Passing --no-warnings to libtool would not suppress warning messages.
* build-aux/ltmain.in: Add 'opt_warning' check before printing out
warning messages.
* tests/libtool.at: Add simple test for '--no-warnings'.
* NEWS: Update.
If an invalid argument is passed to options '--mode' or '--reorder-cache'
after a valid command, error messages will print infinitely:
$ libtool --help --mode=MODE
libtool: error: invalid argument 'MODE' for --mode
libtool: error: invalid argument 'MODE' for --mode
libtool: error: invalid argument 'MODE' for --mode
...
* build-aux/ltmain.in: Remove 'break' in case statement to fix infinite
loop, and add shift for option '--reorder-cache' to allow more options
to be processed.
'--test' and '--check' options caused confusion with the previous
naming, so it has been updated to '--no-finish' for skipping
finish_cmds.
* build-aux/ltmain.in: Replace option names.
* doc/libtool.texi: Update.
* NEWS: Update.
Add option to reorder the shared library cache in OpenBSD so that user
preferred directories for shared libraries can be used when linking
before directories previously listed in the shared library cache.
This allows for users in OpenBSD to easily switch between versions of
libraries with the same name during testing.
* NEWS: Update for new (OpenBSD) option.
* build-aux/ltmain.in: Add option --reorder-cache=DIRS.
* doc/libtool.texi: Update documentation for new option.
* test/bug_71489.at: Alter test for OpenBSD to utilize new option.
On OpenBSD 7.5, the shared library cache is updated with finish_cmds,
which causes the test for 'Use local version' to fail. Simply, installed
versions of shared libraries take precedence over those locally built.
To ensure local versions of shared libraries can be tested properly and
more easily, additional options have been added to libtool to skip
executing finish_cmds, like 'ldconfig -m $libdir' in OpenBSD.
* build-aux/ltmain.in: Add libtool options, '--test' and '--check'.
* doc/libtool.texi: Document new options in libtool.
* NEWS: Update for bug fix.
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: Move creation of ld script.
* m4/libtool.m4: Add new variable tag for file_list_spec.
A command like:
libtool --mode=install /usr/bin/install -c gck-roots-store-standalone.la
'/image/usr/lib/gnome-keyring/standalone/'
where the path ends with a trailing slash currently fails. This occurs in
software like gnome-keyring or pulseaudio and is because the comparision
code doesn't see the paths as equal. Strip both paths to ensure this works
reliably.
* build-aux/ltmain.in: Strip trailing slashes on install commands.
Avoid duplication of '(GNU @PACKAGE@) @VERSION@' in multiple
places by using '$scriptversion'.
* libtoolize.in, build-aux/ltmain.in: Change version from
'(GNU @PACKAGE@) @VERSION@' to '$scriptversion'.
* libtoolize.in: Overwrite function in bootstrap for printing version
information for libtoolize.
* build-aux/ltmain.in: Overwrite function in bootstrap for printing
version information for libtool.
* doc/libtool.texi: Fix typo and correct references for tests/demo
subdirectory to the tests/demo.at Autotest file.
* gl/top/README-release.diff: Add documentation for maintainers so
the CVS repository is properly updated following a stable release.
This fixes bug introduced by 0e1b333324.
* build-aux/ltmain.in: Don't omit paths that are not under $progdir
from the compiled_rpath. Append them to the end of it.
The file magic test fails to determine the file type of libraries when
cross-compiling with an aarch64 compiler without additional strings to
search for in an objdump.
* build-aux/ltmain.in: Append 'pe-aarch64' to file_magic in the
lt_cv_deplibs_check_method.
* m4/libtool.m4: Append 'pe-aarch64' to file format check.
The `cmd //c ...` is is an invocation of the Windows console command
line shell `cmd`. The slashes are Windows console shell command line
option switch characters '/', with `cmd /c ...` meant to be
equivalent to `sh -c ...`.
It results in the Windows `cmd` shell being invoked as an interactive
console shell, as if invoked with the '/k' switch, but ignoring any
provided command string, hanging builds!
* build-aux/ltmain.in: Remove additional forward slash for option.
It has been discovered that under certain conditions libtool creates
wrappers that prefer installed versions of the shared objects over
those built in the source tree. As a result, any tests run in the
source tree produce unreliable results.
* build-aux/ltmain.in: Alter to use shared objects in source tree
instead of installed.
* Makefile.am: Added in tests/bug_71489.at.
* tests/bug_71489.at: Contains test case for bug 71489.
Numerous test failures on windows/cygwin/mingw result with:
did not find the 'nothing' variable
A syntax fix resolves these test failures for 64-bit windows-
based systems.
* build-aux/ltmain.in: Alter syntax in sed command.
When using a sysroot we should append it to libdir, which is helpful in
cross builds as the system is staged in the sysroot. For normal builds,
i.e. when lt_sysroot is not set, it will still behave the same and add
-L/usr/lib to the relink command.
* build-aux/ltmain.in: Prepend sysroot to libdir.
Several warning messages have been updated to use func_warning rather
than echo. This will allow them to be disabled properly.
* build-aux/ltmain.in: Replace echo command with func_warning function.
When using the -no-canonical-prefixes flag in libtool, the flag is
removed from the linking command, causing linking to fail. This adds
the flag to the list of linker flags to be passed through to the
linker.
* build-aux/ltmain.in: Pass -no-canonical-prefixes to the linker.
* Makefile.am: Added in tests/bug_62343.at.
* tests/bug_62343.at: Contains test case for bug 62343.
This is cleanup for libtool. The option test_compile is not used in
libtool, and the documentation states that it would probably be dropped
in the future.
* build-aux/ltmain.in: Remove case statement for test_compile.
* doc/libtool.texi: Remove test_compile from documentation.
* m4/libtool.m4: Remove test_compile definition from macro file.
Multiple compilers on Windows besides the proprietary MSVC compiler
require process.h, and not unistd.h. The inclusion check is expanded
to include these alternative compilers which also require process.h.
* ltmain.in: Replace _MSV_VER with WIN32 and !__GNU_C check
clang uses -rtlib and -unwindlib to select proper compiler runtime in
some cases. Therefore pass these options to linker when found in
ldflags.
* build-aux/ltmain.in: Handle clang linker options.
If lto is enabled, we need the prefix-map variables to be passed to the
linker to correctly link the objects using correctly mapped paths.
Add these to the list of options libtool passes through.
* build-aux/ltmain.in: Handle prefix-map compiler options.
Here is a small patch to correct builds on svr5.
When the freebsd-elf target was changed, this got missed.
Symptoms were, building newer lib ended up with libfoo.nn a lower number
than the previous version. And building libpng-1.6.29 produced:
libtool: error: CURRENT '' must be a nonnegative integer
libtool: error: '16:29:0' is not valid version information
* build-aux/ltmain.in (func_mode_link): Add sco.
When building for a nios2 system, the $host tuple starts with "nios2-"
which is caught by the some of the greedy checks for OS/2 in libtool.
In particular, the *os2* branches of switch statements that only want
to match the OS setting end up matching all nios2 targets, which
results in incorrect behavior.
Switch to use $host_os instead of $host and tweak the patterns to
match to avoid this problem for nios2.
* build-aux/ltmain.in: Switch some $host checks to $host_os.