Commit Graph

4400 Commits

Author SHA1 Message Date
Bruno Haible
f91f7bc3ab
libtool.m4: Avoid word splitting on untrusted inputs
If $multilib is set to more than one word, the following error can be
seen during configuration:

	test: too many arguments

* m4/libtool.m4: Wrap variable in quotes.
2024-10-22 20:02:15 +03:00
Ileana Dumitrescu
4e96fb2a47
libtool.m4: Increment serial and typo/spacing fix 2024-10-22 20:02:15 +03:00
Markus Mützel
68fbecc49b
libtool: Handle unset $multilib for Windows targets.
If `multilib` is unset (which it apparently is by default), the output
from running a `configure` script contains lines like the following:
```
checking dynamic linker characteristics... ../configure: line 26791: test: yes: unary operator expected
Win32 ld.exe
```

The additional output is not a fatal error. But it could be irritating.

Avoid the unexpected output from `test` by making sure `=` is used as a
binary operator.

* m4/libtool.m4: Prepend "x" on both sides of a comparison with `test`
and the operator `=`.
* NEWS: Update for bug fix.

See also: https://github.com/msys2/MINGW-packages/pull/21905
2024-10-22 20:00:47 +03:00
Ileana Dumitrescu
3226abb870
Update documentation and version output
* 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.
2024-10-22 20:00:47 +03:00
Sergey Poznyakoff
b6c8850a43
Don't omit directories from the constructed rpath.
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.
* NEWS: Update for bug fix.
2024-10-22 20:00:02 +03:00
Ileana Dumitrescu
d405ede870
Fix errors in distclean and maintainer-clean
The variable, LT_ARGZ_H, can be empty, which causes distclean and
maintainer-clean to error as a directory is attempted to be removed
instead of a file.

When running maintainer-clean for gnulib-tests, the .version file is
missing, which is needed by config.status, so the command will error.

* configure.ac: Update CONFIG_STATUS_DEPENDENCIES to use dotversion so
  that the .version file can be generated if needed.
* libltdl/ltdl.mk: Add conditional with LTARGZH_EXISTS to append path for
  LT_ARGZ_H file to BUILT_SOURCES.
* m4/ltdl.m4: Add AM_CONDITIONAL for LTARGZH_EXISTS that is set to
  true if LT_ARGZ_H is non-empty.
* NO-THANKS: Add 'Michael Pratt' for bug#73672 contribution.
* NEWS: List additional bug fix.
2024-10-22 19:55:50 +03:00
Joshua Root
82f7f52123
libtool.m4: Update '-single_module' detection
'-single_module' detection is broken with Xcode 15, where a message to
stderr indicates the flag is deprecated, not unsupported.

* m4/libtool.m4: Check macOS versions to see if '-single_module' flag is
  unnecessary.
2024-10-22 19:45:25 +03:00
Ileana Dumitrescu
dd2c8f9411
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2024-09-25 18:20:25 +03:00
Ileana Dumitrescu
94dd1a2094
version 2.5.3
* NEWS: Record release date.
2024-09-25 17:51:57 +03:00
Ileana Dumitrescu
3ab1239727
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:34:50 +03:00
Ileana Dumitrescu
138cf5b271
Update NEWS for recent changes 2024-09-18 17:15:57 +03:00
Ileana Dumitrescu
a36e1d8d1e
libtool: Update documentation
* Makefile.am: Fix typo.
* doc/libtool.texi: Add missing test case descriptions and specify
  option and command where missing in test case descriptions.
2024-09-18 17:15:57 +03:00
Ileana Dumitrescu
182c7b3e25
Add 'aarch64' support to the file magic test
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.
2024-09-18 17:15:27 +03:00
Ileana Dumitrescu
0483b0d83d
Update NEWS for recent changes 2024-09-13 20:21:20 +03:00
Ileana Dumitrescu
5c8a2d1ce0
gnulib: Update submodule to recent commit 2024-09-13 20:21:19 +03:00
Ileana Dumitrescu
ad45988cc6
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-13 20:19:34 +03:00
Ileana Dumitrescu
3e6c6284a7
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-13 20:19:34 +03:00
Bruno Haible
6c8203d2ae
Rename option --with-aix-soname to --enable-aix-soname.
Reported at <https://savannah.gnu.org/support/index.php?110674>.

* doc/libtool.texi (LT_INIT): Talk about --enable-aix-soname instead of --with-aix-soname.
* m4/ltoptions.m4 (_LT_WITH_AIX_SONAME): Use AC_ARG_ENABLE instead of
AC_ARG_WITH. In the default case, use _AC_ENABLE_IF, in order to still
recognize the old option --with-aix-soname.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Update comment.
* configure.ac: Update comment.
* NEWS: Mention the change.
2024-09-13 20:19:33 +03:00
Bruno Haible
9a8535f4e9
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-13 20:19:33 +03:00
Ileana Dumitrescu
ec703fac9e
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-13 20:19:33 +03:00
Bruno Haible
001ca1d070
Document situations where -export-symbols does not work.
* doc/libtool.texi (Link mode): Document that -export-symbols does not work on
static libraries. Document the most important platforms where it does not work
on shared libraries.
2024-09-13 20:19:32 +03:00
Ileana Dumitrescu
2fe3a3e2a9
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2024-08-29 17:26:50 +03:00
Ileana Dumitrescu
d8d346ef7e
version 2.5.2
* NEWS: Record release date.
2024-08-29 16:58:22 +03:00
Ileana Dumitrescu
32d46d5daa
Update NEWS for recent changes 2024-08-27 18:19:02 +03:00
Ileana Dumitrescu
07ef1f34ee
README-release: Update compiler environment variable
When compiling C++ code, CXX should be used to set the compiler
to g++ instead of CC, which is for setting a C compiler.
2024-08-27 18:19:02 +03:00
Tobias Stoeckmann
d6d4397dff
libtool: Fix typos
Typos found with codespell.

* doc/libtool.texi: Change 'incompatabile' to 'incompatible'.
* doc/notes.texi: Change 'neccesary' to 'necessary'.
2024-08-27 18:17:46 +03:00
Ileana Dumitrescu
fcaa75e5dc
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-27 18:17:46 +03:00
Sergey Poznyakoff
0e1b333324
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-27 18:17:45 +03:00
Ileana Dumitrescu
2b510980a7
Update NEWS for 32-bit mode on FreeBSD/powerpc64 support 2024-08-27 17:10:17 +03:00
Bruno Haible
552d1db3fb
Fix libtool wrapper programs in 32-bit mode on FreeBSD/powerpc64.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): On FreeBSD/powerpc64, in 32-bit mode,
set shlibpath_var to LD_32_LIBRARY_PATH instead of LD_LIBRARY_PATH.
2024-08-27 17:07:29 +03:00
Ileana Dumitrescu
22a7e547e9
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2024-07-25 17:32:28 +03:00
Ileana Dumitrescu
1354176bbb
version 2.5.1
* NEWS: Record release date.
2024-07-25 17:05:28 +03:00
Ileana Dumitrescu
e019cb5e77
bootstrap: Update submodule to recent commit 2024-07-24 17:50:15 +03:00
Ileana Dumitrescu
7ff6b33deb
gnulib: Update submodule to recent commit 2024-07-24 17:49:46 +03:00
Ileana Dumitrescu
42229835ff
m4: Increment serial for recent changes
* m4/libtool.m4: Incremented serial to 62.
* m4/ltdl.m4: Incremented serial to 23.
2024-07-24 17:20:54 +03:00
Ileana Dumitrescu
383c97a850
NEWS: Update for recent changes 2024-07-19 19:32:52 +03:00
Ileana Dumitrescu
2a25604bcf
m4: Support additional flang-based compilers
* m4/libtool.m4: Alter regex to support 'flang-new' and 'ftn'.
* NO-THANKS: Add thanks for Anton Shterenlikht.
2024-07-19 19:32:36 +03:00
Ileana Dumitrescu
3b78504a0c
ltmain: Error message improvement
* build-aux/ltmain.in: Append argument to error message to make it
  easier to understand, and edit message of each instance where
  run-paths are not absolute to better reflect the issue occurring
  to the user.
2024-07-19 19:31:12 +03:00
Ileana Dumitrescu
f0507df8a7
m4: Disable chained fixups for macOS
Append '-no_fixup_chains' flag to disable chained fixups since it
is not compatible with '-undefined dynamic_lookup'.

* m4/libtool.m4: AC_VAR_APPEND will handle appending the option to
  the variable, which allows the '+=' extension to be used by shells
  that provide this capability for more efficient scaling. Also, bump
  minimum required version of autoconf from 2.62 to 2.64.
* tests/no-executables.at: Set cache variable for link test.
* NO-THANKS: Add thanks for Carlo Cabrera and Dave Allured.
2024-07-19 19:26:09 +03:00
Ileana Dumitrescu
81dda9b5c7
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-07-19 19:26:07 +03:00
Julien ÉLIE
7f86baed1a
ltmain.in: Fix --preserve-dup-deps stripping duplicates
Building INN with libtool otherwise failed with unresolved circular
dependencies, even with the use of --preserve-dup-deps.
2024-07-19 19:25:52 +03:00
trcrsired
ab89ebbcc2
libtool: Correct DLL Installation Path for mingw
When building native GCC for the x86_64-w64-mingw32 host, the
compiler copies its library DLLs to the `bin` directory. However,
in the case of a multilib configuration, both 32-bit and 64-bit
libraries end up in the same `bin` directory, leading to conflicts
where 64-bit DLLs are overridden by their 32-bit counterparts.

This patch addresses the issue by adjusting the installation path
for the libraries. Specifically, it installs the libraries to
separate directories: `lib` for 64-bit and `lib32` for 32-bit. This
behavior aligns with how libraries are installed when creating an
x86_64-w64-mingw32 cross-compiler without copying them to the `bin`
directory if it is a multilib build.

* m4/libtool.m4: Install DLL to $(libdir), not $(libdir)/bin, if
  multilib build.
2024-07-19 19:20:46 +03:00
Peter Kokot
434a308f46
m4: Fix Wstrict-prototypes warnings
This changes the C function prototypes to use void where needed. When
building with CFLAGS=-Werror=strict-prototypes or similar, the libtool's
tests can cause false reports and errors in the log files:

    error: function declaration isn't a prototype

* m4/libtool.m4: Specify void for main function prototypes.
* m4/ltdl.m4: Specify void for main and fnord function prototypes.
2024-07-19 19:20:46 +03:00
Ileana Dumitrescu
cc511550bb
NEWS: Add news entries for recent changes 2024-06-18 20:37:17 +03:00
Ileana Dumitrescu
98e83597c0
ltmain: Fix testsuite errors for windows
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.
2024-06-18 20:37:17 +03:00
Ileana Dumitrescu
e22141c0c5
libtool: Update pxref to remove texinfo warning
Building the documentation contains this warning:
  libtool.texi:1333: warning: @pxref node name should not contain `.'

Now, users will be linked to the top of the autoconf manual and need
to manually scroll to the section specified.

* doc/libtool.texi: Specify section header instead of duplicating
  autoconf manual name.
2024-06-18 20:37:17 +03:00
Ileana Dumitrescu
138ae9c4f1
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-18 20:37:16 +03:00
Ileana Dumitrescu
03220dd7ec
libtool: Add remaining test case descriptions
* doc/libtool.texi: Add missing test case descriptions.
2024-06-18 20:37:16 +03:00
Ileana Dumitrescu
eeee0216ed
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. With
the flag, the test will fail on NetBSD, so the flag is removed.

* tests/bug_62343.at: Add no-undefined flag for windows-based
  compilation and remove otherwise.
2024-06-18 20:35:05 +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