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.
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.
* 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
* 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.
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.
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.
When comparing expected output in LT_AT_CHECK_EXECUTE, several tests
fail with mismatched line endings. This patch should fix Windows
environments that have CRLF text line endings disabled and only use
the LF character for line endings.
* tests/testsuite.at: Removed '\r' from awk's printf command.
With MSVC, linker flags were not properly being linked in during a
compile command. A check has been added to verify if there are linker
flags set and then use a different command when linking.
Fixes applied for bug#74175.
* build-aux/ltmain.in: Fix command parser for '-Wl' option for MSVC.
* m4/libtool.m4: Fix MSVC compile commands.
* tests/flags.at: Use '$GREP --' instead of '$FGREP' when comparing with
stdout.
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/749263https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
For many GNU/Linux systems, the shared library cache is not updated
after a "make install". Some reasoning is outlined in the
documentation now for users with instruction for how to update
the shared library cache if desired.
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78321
* build-aux/ltmain.in: Add informational note during build.
* doc/notes.texi: Update.
This allows a *-linux-mlibc host to correctly match with the mlibc userland
rather than having the GNU/Linux (and similar) userland match override it.
NEWS: Update
Add configuration options to choose whether to use '-nostdlib' when
linking C++ shared libraries and modules.
* m4/libtool.m4: Replace '-nostdlib' with variable '$stdlibflag' and
set '$output_verbose_link_cmd' to be empty when enabling standard
library linking for C++ modules.
* m4/ltoptions.m4: Add new configuration options, --enable-cxx-stdlib
and --disable-cxx-stdlib, and add LT_INIT options, cxx-stdlib and
no-cxx-stdlib.
* doc/libtool.texi: Update for new configuration options.
* NEWS: Update.