822 Commits

Author SHA1 Message Date
Ileana Dumitrescu
8ef98efc57
libtool: Update copyright year 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
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
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
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
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
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
Ileana Dumitrescu
46b9dbe50c
tests: Include check for __CYGWIN__ for crossbuilds
* tests/demo.at, tests/lt_dlexit.at: Add __CYGWIN__ to check for
crossbuilds of build cygwin with host mingw and the MSVC toolchain.
2025-05-26 17:18:49 +03:00
Ileana Dumitrescu
4013a646f0
tagdemo.at: Update for MSVC
* tests/tagdemo.at: Remove namespace support check, add iostream.h
support check, and make iostream the default include, not iostream.h.
2025-05-26 17:18:49 +03:00
Ileana Dumitrescu
e0c329ac0e
libtool: Alter expected line endings in testsuite
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.
2025-05-26 17:18:49 +03:00
Ileana Dumitrescu
b32b74827f
testsuite.at: Update testsuite config for MSVC
* tests/testsuite.at: Make symlink tool mlink for MSVC.
2025-05-26 17:18:48 +03:00
Ileana Dumitrescu
4ded381a6f
libtool: Fix mishandling compiler flags with MSVC tools
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.
2025-05-26 17:18:40 +03:00
Ileana Dumitrescu
6b306695ea
darwin.at: Avoid skipping macOS test
The test for 'darwin fat compile' is being skipped on 64-bit machines,
since the architecture option was specifying i386 (deprecated on macOS).

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

* tests/darwin.at: Update to use architecture arm64 instead of i386.
2025-02-25 22:17:59 +02:00
Ileana Dumitrescu
60f3f19ff1
Revert "libtool: Skip passing CXX flags test on NetBSD"
This reverts commit 2da3546a0de5c952a2ffd20db6ff310a32a6f373.
2025-02-10 21:57:19 +02:00
Ileana Dumitrescu
7b49ee14f9
ltmain.in: Increase revision limit to 19 digits
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.
2025-01-28 16:35:31 +02:00
Ileana Dumitrescu
c010d1e93f
libtool: Add tagging support for OBJC and OBJCXX
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.
2025-01-13 17:33:50 +02:00
Ileana Dumitrescu
723924e9f3
demo.at: Skip test if deplibs_check_method is not pass_all
The test 'deplibs_check_method' was designed to verify pass_all
works as expected. Many warnings occur for systems that do not
have deplibs_check_method set to pass_all, so this test is skipped
on those.

* tests/demo.at: Add check for deplibs_check_method=pass_all.
2025-01-07 20:58:15 +02:00
Ileana Dumitrescu
376411905b
ltmain.in: Update info supplied to user for --tag usage
* 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.
2025-01-07 20:56:37 +02:00
Ileana Dumitrescu
74e6c3a828
libtool: Update copyright year 2025-01-02 16:47:53 +02:00
Ileana Dumitrescu
5848f0aac5
libtool.at: Fix failures for 'test silencing warnings'
Replace 'g++' with variable '$CXX' and add version number for flag
'-version-info'.
2024-11-19 17:46:30 +02:00
Ileana Dumitrescu
f4345d86aa
libtool: Fix --no-warnings flag
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.
2024-11-18 20:19:57 +02:00
Ileana Dumitrescu
0a1e894220
libtool: Add option to reorder the shared library cache
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.
2024-11-12 20:17:11 +02:00
Ileana Dumitrescu
c7bfd6884c
libtool: Avoid test failure in OpenBSD
The following errors can be seen for the 'execute mode' test in OpenBSD:
  build/libtool: test: <: missing second argument
  build/libtool: test: >: missing second argument

The cwrapper in OpenBSD cannot parse these symbols as arguments in
execute mode if there are no other characters with them.

* tests/execute-mode.at: Escape '<' and '>' in OpenBSD.
2024-10-25 19:06:44 +03:00
Ileana Dumitrescu
0db5b4ae66
libtool: Use wrapper function for AUTORECONF
Update tests to skip if required autotools are not installed for
executing AUTORECONF and to have stdout saved for checks.

* tests/bug_42313.at: Use LT_AT_AUTORECONF instead of AT_CHECK.
* tests/testsuite.at: Save stdout for LT_AT_AUTORECONF.
2024-10-25 18:23:58 +03:00
Ileana Dumitrescu
3060c0adf3
libtool: Test trailing slash in destination
This test is added to ensure path comparisons pass when
installing to a destination, specifically when there is a
trailing slash in the destination.

* tests/destdir.at: Add test for trailing slash in destination.
2024-10-25 16:19:17 +03:00
Ileana Dumitrescu
951c0510a3
Update tests without aclocal to expect failure
Five tests use aclocal, but do not have a check for whether aclocal is
available to use. This causes reported tests failures in Linux From
Scratch and Darwin builds.

* tests/standalone.at: Add AT_XFAIL_IF check for aclocal for all tests.
* tests/subproject.at: Add AT_XFAIL_IF check for aclocal for last test.
2024-09-25 16:32:59 +03:00
Ileana Dumitrescu
e17ab6a5b5
Fix copyrights for recent test files
* tests/bug_62343.at: Remove years where test file did not exist.
* tests/bug_71489.at: Add missing copyright header.
2024-09-06 18:33:44 +03:00
Ileana Dumitrescu
b165ea8e0a
libtoolize: Fix conflicting warnings about AC_PROG_RANLIB
The macro _LT_CMD_OLD_ARCHIVE inlines the definition of AC_PROG_RANLIB,
which seems to be outdated functionality. Running autoscan in a
directory with ltmain.sh produces conflicting warnings with libtoolize
about AC_PROG_RANLIB. Autoconf warns that AC_PROG_RANLIB is missing,
but libtoolize warns that it is obsolete. The outdated warning should
no longer appear after replacing AC_CHECK_TOOL(RANLIB, ranlib, :) with
AC_REQUIRE([AC_PROG_RANLIB]).

* m4/libtool.m4: Use AC_REQUIRE([AC_PROG_RANLIB]).
* Makefile.am: Added in tests/bug_42313.at.
* tests/bug_42313.at: Contains test cases for bug 42313.
2024-09-06 18:26:18 +03:00
Bruno Haible
33cf00bb22
Rename option --with-pic to --enable-pic.
Reported at <https://savannah.gnu.org/support/index.php?110674>.

* doc/libtool.texi (LT_INIT): Talk about --enable-pic instead of
--with-pic, and about --disable-pic instead of --without-pic.
(Test descriptions): Likewise.
* m4/ltoptions.m4 (_LT_WITH_PIC): Use AC_ARG_ENABLE instead of
AC_ARG_WITH. In the default case, use _AC_ENABLE_IF, in order to still
recognize the old options --with-pic and --without-pic.
* tests/demo.at: Add a test for --enable-pic, keeping the test for
--with-pic. Test '--disable-pic' instead of '--with-pic=no'.
* tests/with-pic.at: Test --enable-pic instead of --with-pic.
* NEWS: Mention the change.
2024-09-03 20:19:20 +03:00
Ileana Dumitrescu
ac5768d1fc
libtool: FSF office address replaced by URL
* AUTHORS, HACKING, Makefile.am, bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/no-bogus-m4-defines, cfg.mk, configure.ac, libltdl/configure.ac,
libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__argz_.h,
libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h,
libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h,
libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h,
libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h,
libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c, libltdl/lt__alloc.c, libltdl/lt__argz.c,
libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c,
libltdl/lt_error.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/ltdl.mk,
libltdl/slist.c, tests/am-subdir.at, tests/archive-in-archive.at,
tests/bindir.at, tests/bug_62343.at, tests/cdemo.at, tests/cmdline_wrap.at,
tests/configure-funcs.at, tests/configure-iface.at, tests/convenience.at,
tests/ctor.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at,
tests/depdemo.at, tests/deplib-in-subdir.at, tests/deplibs-ident.at,
tests/deplibs-mingw.at, tests/destdir.at, tests/dlloader-api.at,
tests/dumpbin-symbols.at, tests/duplicate_conv.at, tests/duplicate_deps.at,
tests/duplicate_members.at, tests/early-libtool.at, tests/exceptions.at,
tests/execute-mode.at, tests/exeext.at, tests/export-def.at,
tests/export.at, tests/f77demo.at, tests/fail.at, tests/fcdemo.at,
tests/flags.at, tests/help.at, tests/indirect_deps.at, tests/infer-tag.at,
tests/inherited_flags.at, tests/install.at, tests/lalib-syntax.at,
tests/libtool.at, tests/libtoolize.at, tests/link-order.at,
tests/link-order2.at, tests/loadlibrary.at, tests/localization.at,
tests/lt_dladvise.at, tests/lt_dlexit.at, tests/lt_dlopen.at,
tests/lt_dlopen_a.at, tests/lt_dlopenext.at, tests/ltdl-api.at,
tests/ltdl-libdir.at, tests/mdemo.at, tests/need_lib_prefix.at,
tests/no-executables.at, tests/nocase.at, tests/nonrecursive.at,
tests/old-m4-iface.at, tests/pic_flag.at, tests/recursive.at,
tests/resident.at, tests/runpath-in-lalib.at, tests/search-path.at,
tests/shlibpath.at, tests/slist.at, tests/standalone.at, tests/static.at,
tests/stresstest.at, tests/subproject.at, tests/sysroot.at, tests/tagdemo.at,
tests/template.at, tests/testsuite.at, tests/versioning.at,
tests/with-pic.at: Replace FSF address in each file's license block with
a URL that points to licenses online hosted by GNU.
2024-09-03 19:40:25 +03:00
Ileana Dumitrescu
e3f762e59a
libtool: Fix test 170 in Cygwin/Mingw32
Test 170 in bug_62343.at is failing to link object files with a library
file. This is fixed by choosing the correct architecture version of a
compiler by using the 'CXX' macro.

tests/bug_62343.at: Replace 'g++' with 'CXX' macro
2024-08-09 18:39:45 +03:00
Sergey Poznyakoff
998a334762
ltmain: Use shared objects built in source tree
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.
2024-08-09 16:37:40 +03:00
Ileana Dumitrescu
3d1baeeef9
m4: Update disabling chained fixups for macOS
This is an update for commit 001d22d7d587e85a911c71c4d0c798ede8014b77.

* m4/libtool.m4: Replace version testing with a feature test for
  the '-no_fixup_chains' flag.
* tests/no-executables.at: Set cache variable for link test.
2024-06-26 21:14:33 +03:00
Ileana Dumitrescu
752e2f3329
libtool: Alter test to expect pass
* tests/duplicate_deps.at: Remove expected failure for testing
  with preserve-dup-deps flag, since it has been fixed.
2024-06-20 16:22:37 +03:00
Ileana Dumitrescu
2da3546a0d
libtool: Skip passing CXX flags test on NetBSD
When linking on NetBSD, the test fails to locate a shared version of
gcc, so a static version of the module is generated, which does not pass
the defined checks. A FIXME note has been added for future debugging.

* tests/flags.at: Skip passing CXX flags test on NetBSD.
2024-06-14 21:14:29 +03:00
Ileana Dumitrescu
ad8aeb7d26
libtool: Add no-undefined flag based on host OS
Without the no-undefined flag, the test will fail on Mingw and
Cygwin, so the flag will be appended for windows compilation.

* tests/bug_62343.at: Add no-undefined flag for windows-based
  compilation.
2024-06-11 21:14:31 +03:00
Ileana Dumitrescu
7854e41011
libtool: Remove no-undefined flag from test
The addition of the no-undefined flag was causing the test to fail on
NetBSD. Removing the flag fixed the test.

* tests/bug_62343.at: Removed the no-undefined flag from the compilation
  command.
2024-06-08 14:30:31 +03:00
Ileana Dumitrescu
e40ba04af7
libtool: Check if -no-canonical-prefixes supported
The compiler fails with the -no-canonical-prefixes flag in certain
environments. Check if the flag is supported in the current environment
and skip the test if it is not supported.

* tests/bug_62343.at: Skip test if -no-canonical-prefixes is unsupported
  in the current environment.
2024-06-08 11:16:10 +03:00
Ileana Dumitrescu
d5769d0d39
testsuite.at: Replaced $as_echo with AS_ECHO
* testsuite.at: $as_echo was deprecated in Autoconf commit 2b59b6f8a.
  AS_ECHO uses printf which has been well supported for 15 to 20
  years. Use of $as_echo was resulting in a warning message in the
  testsuite logs, and replacing the deprecated macro removes the
  warning messages.
2024-06-04 19:50:50 +03:00
Ileana Dumitrescu
d846b88d2f
Fixed failing test when program-prefix is used
* tests/libtoolize.at: When -program-prefix is used, stdout for the
  program changes from the expected output. As a result, the test
  fails. Replaced the transformed name to account for program-prefix.
2024-06-03 20:38:10 +03:00
Ileana Dumitrescu
46576dfaf4
tests: Skip Fortran/C demo tests
Using clang with fsanitize results in an incompatible ASan runtime.
It results in the warning message "linked against incompatible ASan
runtimes". This only occurs with the mixed Fortran/C demo.

* tests/f77demo.at: Skip tests for clang compiling with fsanitize.
* tests/fcdemo.at: Skip tests for clang compiling with fsanitize.
2024-05-27 16:14:50 +03:00
Bruno Haible
17fb010919
Support C++17 compilers in the C++ tests.
* tests/exceptions.at: For C++11 and newer, use the keyword 'noexcept'
instead of the keyword 'throw'.
2024-05-20 18:39:59 +03:00
Bruno Haible
67c5a06a46
libtoolize: Don't use uninitialized variable.
* libtoolize.in (func_serial_update): Initialize my_src_serial and
my_dest_serial before use.
* tests/libtoolize.at: Update expected test result.
2024-05-18 16:04:29 +03:00
Ileana Dumitrescu
c1afb230e1
resident: Fixed syntax error with g++ compilation
A function used in a test was not returning a value, while an int was
expected so the test would fail to compile.

tests/resident.at: Return the result of atexit().
2024-05-11 12:07:13 +03:00
Ileana Dumitrescu
d794bda49c
bug_62343: Skip test if not building libtool libs
When the configure option "--disable-shared" is used, this test will be
skipped since no libtool libs are built.

tests/bug_62343.at: Check if build_libtool_libs is set to no.
2024-05-11 11:19:28 +03:00
Ileana Dumitrescu
297b5cf19f
libtool: Pass the "-no-canonical-prefixes" linker flag
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.
2024-04-18 19:26:55 +03:00
Tijl Coosemans
e11fcf3b38 tests: Also check amd64 where we test for x86_64
It is used on FreeBSD.

* tests/demo.at: Also test for amd64 where we test for x86_64.
2024-01-22 20:09:04 -05:00