Compare commits

...

372 Commits

Author SHA1 Message Date
Ileana Dumitrescu
1b6fc1940b
libtool.texi: Update link mode documentation
* doc/libtool.texi: Specify a directory after the '-bindir' option
  when linking.
2026-01-24 19:13:22 +02:00
Kirill Makurin
97998eb82a
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.
* NEWS: Update.
2026-01-07 20:16:06 +02:00
Ileana Dumitrescu
7c3fb80adc
Update NEWS 2026-01-02 22:11:31 +02:00
Ileana Dumitrescu
e6f9ae8f18
libtool: Update copyright year 2026-01-02 20:09:41 +02:00
Ileana Dumitrescu
64d71e8b7b
gnulib: Update submodule 2026-01-02 20:03:00 +02:00
Ileana Dumitrescu
3eb06f0b5a
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
2026-01-02 19:59:24 +02:00
Arnold
600c61dd79
libtool.m4: Add support for slimcc
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79216
2026-01-02 19:59:24 +02:00
KO Myung-Hun
2228b4d0dc
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.
2026-01-02 19:59:24 +02:00
Richard J. Mathar
9808ff1860
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.
2026-01-02 19:59:23 +02:00
KO Myung-Hun
6c5f27371d
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.
2026-01-02 19:59:23 +02:00
Patrice Dumas
f6aaa6f55d
libtool.texi: Update descriptions for command-line options
* doc/libtool.texi: Make descriptions for '--no-finish' and
  '--reorder-cache' clearer for users to understand.
2026-01-02 19:59:23 +02:00
Frederic Berat
c18d2d9514
libtool.m4: Fix syntax error in LT_PROG_OBJC and LT_PROG_OBJCXX
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79468
2026-01-02 19:59:22 +02:00
Ileana Dumitrescu
f8078854f7
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.
2026-01-02 19:59:15 +02:00
Ileana Dumitrescu
c4abf359f8
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 17:16:22 +03:00
Ileana Dumitrescu
e40fdc22cf
version 2.6.0
* NEWS: Record release date.
2025-09-18 16:43:33 +03:00
Elizabeth Figura
69736cd828
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-06 14:25:43 +03:00
Ileana Dumitrescu
19c0fcc0d1
Makefile.am: Reorder testsuite 2025-09-06 14:25:42 +03:00
Ileana Dumitrescu
92d62dcb09
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-06 14:25:42 +03:00
Ileana Dumitrescu
2a4cc31b66
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-09-06 14:25:42 +03:00
Ileana Dumitrescu
4d00c3624d
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-09-06 14:25:42 +03:00
Ileana Dumitrescu
6389dce814
gnulib: Update submodule 2025-08-07 20:20:21 +03:00
Ileana Dumitrescu
d6ea50ce1e
cfg.mk: Ignore sc_codespell checks 2025-08-07 20:20:20 +03:00
Ileana Dumitrescu
96da510e10
gnulib: Update submodule 2025-08-07 20:20:20 +03:00
Ileana Dumitrescu
632ab1d68b
libtool.m4: Bump serial 2025-08-07 20:20:20 +03:00
Ileana Dumitrescu
86ce8b277c
Update NEWS 2025-08-07 20:20:20 +03:00
Ileana Dumitrescu
d222649f34
tests: Remove CPPFLAGS from some compile commands
* tests/flags.at, tests/infer-tag.at: Remove unneeded CPPFLAGS from
  OBJC & OBJCXX compile commands.
2025-08-07 20:20:19 +03:00
Ileana Dumitrescu
22a73e7a59
tests/bug_71489.at: Split into two test cases 2025-08-07 20:20:19 +03:00
Pierre Ossman
661d5573ea
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-08-07 20:20:19 +03:00
Pierre Ossman
c69efe983d
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-08-07 20:20:19 +03:00
Gleb Popov
b9156729ab
m4: Fix flang -Wl flags on FreeBSD 2025-08-07 20:20:18 +03:00
Collin Funk
c6016699f1
maint: fix Automake warning
* Makefile.am (prologue): Remove macro.
(THANKS): Use the perl command directly.
2025-08-07 20:20:18 +03:00
Ileana Dumitrescu
9c7772f8a6
ltmain.in: Handle clang's target architecture flag
* build-aux/ltmain.in: Pass clang's '--target' flag for specifying
  architecture through libtool unchanged.
2025-08-07 20:20:18 +03:00
Evgeny Grin
0af7b12403
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-08-07 20:20:06 +03:00
Ileana Dumitrescu
fd8ea4ccfa
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-08-07 20:20:06 +03:00
Ileana Dumitrescu
9c1a42a6bb
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-08-07 20:20:05 +03:00
Kirill Makurin
08ebc17358
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-08-07 20:20:05 +03:00
Ileana Dumitrescu
7f5871de3b
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-08-07 20:20:05 +03:00
Ileana Dumitrescu
d575748b83
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-08-07 20:20:04 +03:00
Ileana Dumitrescu
d78a0a0d6b
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-08-07 20:20:04 +03:00
Ileana Dumitrescu
06e491d0fe
inherited_flags.at: Fix test on MSVC
* tests/inherited_flags.at: Modify grep to limit search range.
2025-08-07 20:20:04 +03:00
Mitch
4d7d7ca45c
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-08-07 20:20:04 +03:00
Ileana Dumitrescu
371624cffe
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-08-07 20:20:03 +03:00
Ileana Dumitrescu
df361d02a6
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-08-07 20:20:03 +03:00
Ileana Dumitrescu
57e1dc94d3
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-08-07 20:20:03 +03:00
Michael Haubenwallner
388d0995d4
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-08-07 20:20:03 +03:00
Michael Haubenwallner
b4b96dfa95
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-08-07 20:20:02 +03:00
Ileana Dumitrescu
5d79c9525d
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-08-07 20:20:02 +03:00
Ileana Dumitrescu
4a5acaa7a4
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-08-07 20:20:02 +03:00
Ileana Dumitrescu
be0630f555
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-08-07 20:20:02 +03:00
Ileana Dumitrescu
ca61f85261
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-08-07 20:20:01 +03:00
Ileana Dumitrescu
7ba38e8eac
testsuite.at: Update testsuite config for MSVC
* tests/testsuite.at: Make symlink tool mlink for MSVC.
2025-08-07 20:20:01 +03:00
Ileana Dumitrescu
43068986b0
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-08-07 20:20:01 +03:00
Ileana Dumitrescu
af7df02434
NEWS: Update for previous commits 2025-08-07 20:20:00 +03:00
Martin Storsjö
d12a1929db
Allow statically linking compiler support libraries when linking a library
For cases with deplibs_check_method="file_magic ..." (as it is for mingw),
there were previously no way that a static library could be accepted
here.
2025-08-07 20:20:00 +03:00
Manoj Gupta
52f78952b9
Pick up clang_rt static archives compiler internal libraries
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/749263
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
2025-08-07 20:20:00 +03:00
Ileana Dumitrescu
fee0464231
libtool: Update documentation
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.
2025-08-07 20:20:00 +03:00
Bruno Haible
6abc943479
doc: Explain how to specify library dependencies.
* doc/libtool.texi (Link mode): Explain how to specify dependencies to
already installed libraries.
2025-08-07 20:19:59 +03:00
Mintsuki
9eb292deb1
Move mlibc case matches above GNU/Linux (and similar) ones.
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
2025-08-07 20:19:24 +03:00
Ileana Dumitrescu
e6dd1eb7cf
NEWS: Update for bugs fixed 2025-04-15 17:32:50 +03:00
Ileana Dumitrescu
5b582aed25
m4: Update serials for modified files 2025-04-11 20:57:53 +03:00
Ileana Dumitrescu
9bc7536bd8
libtool: Add configuration options for CXX linking
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.
2025-04-11 20:45:14 +03:00
Anthony Mallet
7945cf75f8
libtool.m4: Fix postdeps in NetBSD
commit:c7be1f229 addresses an issue with building C++ modules on NetBSD, by
removing -lgcc_s and -lgcc. This may sometimes not work correctly, depending
on the architecture, as libgcc_s.so and libgcc.a may contain required code to
properly link the shared object. On NetBSD, libgcc.a is compiled with -fPIC
and can be linked to a shared object without any issue.

Reported: https://savannah.gnu.org/support/index.php?111210
2025-04-11 20:45:14 +03:00
Julien ÉLIE
8b9ce14af0
ltmain.in: Supporting -S and -t flags from install-sh
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.
2025-04-11 20:45:14 +03:00
Christian Feld
2a5c170471
libtool.m4: Fix for invalid postdeps
Omitting lines starting with 'Driving:' fixes the invalid postdeps
observed with FC.

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

* m4/libtool.m4: Omit lines that start with 'Driving:' when setting
  output_verbose_link_cmd.
2025-04-11 20:45:13 +03:00
Bruno Haible
b31819c723
New program libtool-next-version.
* libtool-next-version.in: New file, based on
gnulib/build-aux/libtool-next-version.
* doc/libtool.texi (Updating version info): Add sub-nodes
'Manual version info update', 'Guided version info update',
'Invoking libtool-next-version'. Note, line breaks use
partial semantic newlines.
* Makefile.am (BUILT_SOURCES): Add libtool-next-version.
(libtoolnextv_in): New variable.
(EXTRA_DIST): Add it.
(bin_SCRIPTS): Add libtool-next-version.
(libtool-next-version): New target.
(libtoolnextv_1): New variable. New target.
(dist_man1_MANS): Add it.
* NEWS: Update.
2025-04-11 20:41:51 +03:00
Ileana Dumitrescu
da70d4ca79
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-04-11 20:38:24 +03:00
Takashi Yano
961aa57f14
ltmain.in: Fix mistaking a directory as an executable
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.
2025-04-11 20:38:16 +03:00
Ileana Dumitrescu
13926861aa
m4: Update serials for modified files 2025-02-13 17:27:45 +02:00
Ileana Dumitrescu
c7be1f229c
libtool.m4: Update NetBSD postdeps for shared libraries
Reported: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70978

* m4/libtool.m4: Linking a shared version of 'gcc' is not possible on
  NetBSD, since the shared version of the library is 'gcc_s'. postdeps
  have been updated to remove gcc.
* NEWS: Update.
2025-02-13 17:02:16 +02:00
Ileana Dumitrescu
3bd36a0ff4
Revert "libtool: Skip passing CXX flags test on NetBSD"
This reverts commit 2da3546a0de5c952a2ffd20db6ff310a32a6f373.
2025-02-13 17:02:16 +02:00
Ileana Dumitrescu
1fc54e815f
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-02-13 17:02:15 +02:00
Ileana Dumitrescu
64ecee50f5
ltoptions.m4: Make aix-soname assignment more clear
The option --with-aix-soname=svr4 does not work the same as using
LT_INIT([aix-soname=svr4]), since the configure script is reordered
depending on which is used. The reordering causes 'enable_shared'
to not be set before processing for 'aix-soname' when using LT_INIT.

For LT_INIT([aix-soname=svr4]) to be set as intended, 'shared' must
be set before 'aix-soname=svr4', like LT_INIT([shared aix-soname=svr4]).

* m4/ltoptions.m4: Warn user if 'enable_shared' has not been set when
  setting 'aix-soname' and add configuration messages to show which
  variant of shared library versioning has been set for 'aix-soname'.
* doc/libtool.texi: Update to specify need for 'shared' to be used
  before 'aix-soname' for LT_INIT.
2025-02-13 17:02:15 +02:00
Karl Berry
7dc108c324
libtool.texi: Update tagging documentation
* doc/libtool.texi: Failure to infer a tag results in a fatal error,
  not in defaulting to tag CC.
2025-02-13 17:02:15 +02:00
Frédéric Bérat
bc61f9756f
ltmain.in: Compiler dependencies wrongly deduplicated
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.
* NEWS: Update.
2025-02-13 17:01:38 +02:00
Ileana Dumitrescu
1d871cc45b
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-02-13 16:57:05 +02:00
Ileana Dumitrescu
37c07d2ed0
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-02-13 16:57:05 +02:00
Ileana Dumitrescu
ea921da846
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-02-13 16:57:05 +02:00
Ileana Dumitrescu
e24d6ec92b
ltmain.in: Replace old warnings with documentation
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.
2025-02-13 16:56:40 +02:00
Ileana Dumitrescu
e66abb28cf
libtool.texi: Document '--no-warnings' in manual 2025-02-13 16:56:39 +02:00
Ileana Dumitrescu
b341c9f8d0
libtool: Update copyright year 2025-01-02 16:30:23 +02:00
Ileana Dumitrescu
1211b4cb76
gnulib: Update submodule 2025-01-02 16:26:27 +02:00
Ileana Dumitrescu
baa1fe41f9
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2024-11-20 22:08:47 +02:00
Ileana Dumitrescu
db22f7fce7
version 2.5.4
* NEWS: Record release date.
2024-11-20 21:40:14 +02:00
Ileana Dumitrescu
e5b946a581
bootstrap: Reflect changes from submodule update 2024-11-20 20:39:32 +02:00
Ileana Dumitrescu
7c45f3b350
NEWS: Update for previous commit 2024-11-20 20:29:04 +02:00
mintsuki
a2c84d14aa
libtool: Replace support for ironclad* with *-mlibc
The main Ironclad kernel-based distribution (Gloire) uses the mlibc
C library for its userland, and that is what commit
bd15931e57f5171732a1a911cbbad9b5e03d0308 was intended to support.
There is no reason this support should be Ironclad-specific, as there
are many other OSes that use mlibc, most prominently "Managarm",
which is already supported by gnu-config.
2024-11-20 20:25:45 +02:00
Ileana Dumitrescu
27662ec027
libltdl: Bump version for minor bugfix during cleaning 2024-11-20 17:36:32 +02:00
Ileana Dumitrescu
f5a020ffa1
bootstrap: Update submodule to recent commit 2024-11-20 17:36:32 +02:00
Ileana Dumitrescu
cc7c98dc89
gnulib: Update submodule to recent commit 2024-11-20 17:36:32 +02:00
Ileana Dumitrescu
f13692cc20
NEWS: Update for recent commits 2024-11-20 17:36:32 +02:00
Khalid Masum
d8a934458b
libtool: add support for wasm32-emscripten
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.
2024-11-20 17:36:31 +02:00
Tim Schumacher
23519121db
libtool: Add support for SerenityOS
This hobbyist OS has already been added to `config.sub` (and
`config.guess` respectively) some time ago, but was still lacking
upstream support for building libraries using libtool.

Since it is a relatively up-to-date system with ports of modern
software, "adding support" mostly just means adding empty cases to avoid
falling though to the most basic behavior (that guarantees compatibility
at the expense of disabling everything that might be critical).

* m4/libtool.m4: Add support for SerenityOS.
2024-11-20 17:36:31 +02:00
streaksu
bd15931e57
libtool: add support for Ironclad 2024-11-20 17:36:31 +02:00
Adrien Destugues
4e5a12014b
Do not explicitly link dependencies on Haiku.
This is not needed, the runtime_loader can figure them out.
2024-11-20 17:36:30 +02:00
Jerome Duval
e6c7986fc8
Adjust haiku configuration 2024-11-20 17:36:30 +02:00
Ileana Dumitrescu
1a9f976d1c
ltmain.in: Fix handling xlc(1)-specific options
Patch supplied on Savannah by user, whr:
  https://savannah.gnu.org/patch/index.php?10126
2024-11-20 17:36:30 +02:00
Ileana Dumitrescu
bbc5fa9456
libtool.at: Fix failures for 'test silencing warnings'
Replace 'g++' with variable '$CXX' and add version number for flag
'-version-info'.
2024-11-20 17:36:30 +02:00
Ileana Dumitrescu
5335d4cfbf
libtool.texi: Remove section 'References'
The section 'References' only contained old broken links.

* doc/libtool.texi: Remove broken links from documentation.
2024-11-20 17:36:29 +02:00
Ileana Dumitrescu
e5dfb39aab
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-20 17:36:29 +02:00
Ileana Dumitrescu
270b7bb2db
ltmain.in: Fix infinite loop for error messages
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.
2024-11-20 17:36:29 +02:00
Ileana Dumitrescu
0a8c7b00ed
ltmain.in: Upgrade warnings to errors 2024-11-20 17:36:29 +02:00
Ileana Dumitrescu
98bcb0ba98
ltmain.in: Update libtool usage for missing options
Some options were not listed in the usage output of libtool: --finish,
--no-quiet, and --no-silent.
2024-11-20 17:36:28 +02:00
Ileana Dumitrescu
6bc5e177b6
libtool.m4: Fix '-Fe' usage with linking in MSVC
A space after '-Fe' treats a file name as an input file instead of
as the intended output file.

* m4/libtool.m4: Remove space after '-Fe'.
* NO-THANKS: Add Kirill Makurin for bug report 74175.
* NEWS: Update.
2024-11-20 17:36:28 +02:00
Ileana Dumitrescu
4ba29e983c
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-20 17:36:21 +02:00
Ileana Dumitrescu
1bda2465d7
libtool: Fix local testing of shared libraries on OpenBSD
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 option, '--no-finish.
* doc/libtool.texi: Document new option in libtool.
* NEWS: Update.
2024-11-20 17:03:12 +02:00
Ileana Dumitrescu
323d8a5dfd
libtool.m4: Update hardcode_shlibpath_var for OpenBSD
When generating an executable in OpenBSD, the executable fails to
generate when shlibpath_var, LD_LIBRARY_PATH, is used solely to
locate dependent libraries.

For hardcoding library paths in OpenBSD, see documentation for
hardcode_direct and hardcode_libdir_flag_spec.

* m4/libtool.m4: Update hardcode_shlibpath_var from 'no' to 'unsupported'
  by removing 'with_gnu_ld=no' for OpenBSD.
2024-11-20 16:42:38 +02:00
Martin Storsjö
eed74d650a
libtool: Prefer response files over linker scripts for mingw tools
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.
* NEWS: Update.
2024-11-20 16:42:15 +02:00
Ileana Dumitrescu
ab43d096d1
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-11-20 16:42:14 +02:00
Ileana Dumitrescu
6b119a1c79
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-11-20 16:42:14 +02:00
Ileana Dumitrescu
ad4b513fca
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-11-20 16:42:13 +02:00
Richard Purdie
65026af3bc
ltmain.in: Handle trailing slashes on install commands
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.
* NEWS: Update.
2024-11-20 16:41:17 +02:00
Ileana Dumitrescu
5586070a71
gnulib: Update submodule to recent commit 2024-10-22 20:02:18 +03:00
Ileana Dumitrescu
09aff4a6bc
Update NEWS for recent commits 2024-10-22 20:02:18 +03:00
Alastair McKinstry
506283c381
libtool.m4: Support for more flang compilers 2024-10-22 20:02:18 +03:00
Alastair McKinstry
43c5983836
ltmain.in: Add error message for unknown version type 2024-10-22 20:02:17 +03:00
Alastair McKinstry
4e6ccefb94
libtool: Change how version is derived
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'.
2024-10-22 20:02:17 +03:00
Alastair McKinstry
8342fed94a
libtool: Add support for netbsdelf
* m4/libtool.m4: Add support for netbsdelf*-gnu.
* m4/ltdl.m4: Append netbsdelf*-gnu to netbsd* occurrences in case
  statements.
2024-10-22 20:02:17 +03:00
Alastair McKinstry
257113789c
Makefile.am: Generate description for 'whatis' command
Add '-n' to 'help2man' for documentation and manpage.
2024-10-22 20:02:17 +03:00
Alastair McKinstry
0bad1a6edf
libtool.m4: Add spaces before -L in grep searches
Current searching for "-L" in link paths is over-greedy and
incorrectly handles paths with -L in them.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896861
2024-10-22 20:02:16 +03:00
Vincent Lefevre
5139403de6
libtool.m4: Avoid a broken AC_TRY_EVAL macro
As said in the Autoconf source, the AC_TRY_EVAL macro is dangerous and
undocumented, and should not be used.
In particular, the one related to nm yields binary data in the config.log
file with dash, where "echo \\1" (echo with the argument \1) produces the
control character ^A instead of the usual \1 with most shells (POSIX says
that the result is implementation-defined). See:
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910076
This patch attempts to replace this AC_TRY_EVAL occurrence by code with
similar behavior, but using $ECHO instead of echo in order to avoid the
backslash issue.

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21309
2024-10-22 20:02:16 +03:00
Vincent Lefevre
7a27cb1bcd
libtool.m4: Add run path when linking with tcc
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20622
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=814091
2024-10-22 20:02:16 +03:00
Jonathan Nieder
3217b3840c
libtool.texi: Wrong names for structure members
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=304400
2024-10-22 20:02:15 +03:00
Jonathan Nieder
c7e99b6b74
libtool.texi: Documentation inconsitent with libltdl3
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=253904
2024-10-22 20:02:15 +03:00
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
Richard Purdie
9a4a02615c
m4/libtool.m4: Fixed AC_CHECK_PROG call
AC_CHECK_TOOL was changed to AC_CHECK_PROG however the arguments are
different and this result is a value of ":". Change this to match the
original intent.

The lack of FILECMD was causing failures for mips64 builds as -m elf was
being passed to LD which isn't supported on our targets.
2024-06-05 20:25:58 +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
a2ccbfea44
cfg.mk: Update old_NEWS_hash
Fixed spacing of latest alpha release 2.5.0.
2024-06-03 17:32:07 +03:00
Ileana Dumitrescu
b8cad780da
ltmain.in: Additional sysroot to prepend to libdir
Addition to commit 3221f9f0fb98d5740ab5d0e8db6a731302520644.
2024-05-31 17:56:09 +03:00
Ileana Dumitrescu
dc3f87dd8e
NEWS: Add news entries for recent changes 2024-05-31 17:32:39 +03:00
Vincent Lefevre
40b73c116e
libtool: pass more flags to the linker
Resolves bug 17750.

* build-aux/ltmain.in (func_mode_link): In the flags to be passed
through unchanged, also pass -static-* and -fcilkplus.
2024-05-31 16:18:34 +03:00
Khem Raj
3221f9f0fb
ltmain.in: Add missing sysroot to library path
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.
2024-05-30 17:43:15 +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
2048edd2cb
Document how to debug failing or skipped tests.
* HACKING (Test Suite): Explain how to debug a range of tests.
2024-05-20 18:41:16 +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
3eb91c266a
README.md: Update for additional git branch
A supplementary branch for development and testing has been added. Some
CI checks for different architectures will be done via Github:
 -  https://github.com/gnu-libtool/ci-check

This will be used to help expedite testing and ensure the source code is
ready to be released.
2024-05-17 20:34:06 +03:00
Ileana Dumitrescu
38c166c89b
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2024-05-13 21:04:21 +03:00
Ileana Dumitrescu
c44bbc3489
version 2.5.0
* NEWS: Record release date.
2024-05-13 20:36:50 +03:00
Ileana Dumitrescu
61e5fd8d45
NEWS: Update news for upcoming alpha release 2024-05-13 16:49:36 +03:00
Ileana Dumitrescu
b860f621d9
AUTHORS: Update current maintainership of libtool 2024-05-11 18:41:19 +03:00
Ileana Dumitrescu
65742fda68
NO-THANKS: Added helpful contributers 2024-05-11 18:37:04 +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
90710b139b
libtool: Minor syntax and typo fixes
doc/notes.texi: Duplicate "to" removed.
build-aux/ltmain.in: Useless parentheses in cpp directive removed.
2024-05-11 10:52:47 +03:00
Ileana Dumitrescu
3280f27cda
libtool.m4: Incremented serial
* m4/libtool.m4: Incremented serial for previous changes.
2024-05-11 10:29:07 +03:00
Ileana Dumitrescu
7b09183107
ltmain.in: Use func_warning for all warnings
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.
2024-04-20 13:04:33 +03:00
Ileana Dumitrescu
baab057261
libtool: Document warning output options
By default, CATEGORY is set to "all" for all of the warning messages to
be output to standard error. CATEGORY can be set to "none" to disable
warnings.

* doc/libtool.texi: Document "W" or "--warnings=CATEGORY" option.
2024-04-20 12:23:17 +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
Ileana Dumitrescu
88fc2b892c
libtool: Remove test_compile
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.
2024-04-08 22:34:19 +03:00
Ileana Dumitrescu
2eddb6004b
libtool: HACKING file list of files not to edit updated
The HACKING file lists some files not to edit that are part of gnulib.
The contents for this list has been expanded to include various files,
including some m4 files.

* HACKING: Added other symbolic links to list of files not to edit.
2024-04-05 21:45:26 +03:00
Ileana Dumitrescu
3a82c4aa8c
libtool: Add more test case descriptions
The libtool documentation is still lacking several test case
descriptions for tests/*demo.at Autotest files.

* doc/libtool.texi: Add missing test case descriptions.
2024-03-28 19:30:26 +02:00
Ileana Dumitrescu
deba4f81d2
libtool: Fix and remove TODO for improperly sized symbol in TOC
A comment in the libtool manual specifies a TODO for fixing the font
size of the ++ symbol in the TOC. This is fixed by wrapping the
symbol in a @code command, and this TODO can be removed.

* doc/libtool.texi: Wrap ++ in a @code command to fix font in TOC.
2024-03-26 20:02:19 +02:00
Sam James
888bd7ad44
Clang uses -fopenmp=* to allow choosing between libgomp and libomp.
* build-aux/ltmain.in: Pass through -fopenmp=*.
2024-03-25 20:32:30 +02:00
Stephen Webb
a956f5ce7d
ltmain.in: update QNX version_type handling
QNX handles ELF SONAME versioning just like most other targets.
2024-03-25 19:09:08 +02:00
Ileana Dumitrescu
98ed9b7b51
libtool: Fix documentation for demo compile mode commands
The demo compile mode commands in Chapter 3 fail to compile since
the source files include a header file that is not in the header search
list. The config.h file is in the local folder. Before this fix, the
compile mode commands would return errors like below:

main.c:1:10: fatal error: config.h: No such file or directory
    1 | #include <config.h>
      |          ^~~~~~~~~~
compilation terminated.

The '-I' option has been added to the gcc commands to specify that the
local folder should be searched for header files.

* doc/libtool.texi: Add option to demo compile mode commands
2024-03-20 17:48:51 +02:00
Ileana Dumitrescu
498bad82f6
libtool: Some outdated documentation warnings removed
Documentation for dlopen(3) states that it is thread safe, and it is
defined this way by POSIX.

* doc/libtool.texi: Remove old dlopen multi-threaded support warnings.
2024-03-15 17:53:22 +02:00
Ileana Dumitrescu
3561199667
notes.texi: Specify -lasan with -fsanitize=address in g++
When using the flag -fsanitize=address with g++, the user should also
specify -lasan to ensure linking occurs correctly. libtool uses
-nostdlib, and gcc implicitly includes -lasan when -fsanitize=address
is used. However, g++ does not implicitly include -lasan. The
documentation has been updated to reflect this information rather than
adding the -lasan flag to libtool.

* doc/notes.texi: Document that the user should pass -lasan.
2024-03-13 19:08:54 +02:00
Ileana Dumitrescu
b07d71b36d
libtool: Add test case descriptions
The libtool documentation is lacking several test case descriptions
for tests/*demo.at Autotest files.

* doc/libtool.texi: Add missing test case descriptions.
2024-03-07 20:49:16 +02:00
Ileana Dumitrescu
7f254d9682
libtool: Documentation refers to demo directory that no longer exists
The libtool documentation included mention of an old test framework.
The documentation has been reworked to indicate the current test
framework used by libtool, where the tests/*demo directories have been
replaced with tests/*demo.at Autotest files.

* doc/libtool.texi: Clarifies where the example files originate.
* TODO: Remove TODO item related to tests/*demo directories.
2024-03-06 22:03:17 +02:00
Ozkan Sezer
3afd415a90
ltmain.in: correct windows compiler preprocessor checks
Commit f54924fa5d8d5959038e58adab7c552c3ca495ae seems to have been
wrongly applied.
2024-03-01 19:51:32 +02:00
Ileana Dumitrescu
f54924fa5d
ltmain.in: Expand process.h inclusion on Windows
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
2024-02-29 16:25:35 +02:00
Ileana Dumitrescu
fb617e2ba0
libtool.m4: Check for space after -l flag
The -R and -L flags are currently checked if they have a space behind
them. -l should be added to the list of cases checked.

* m4/libtool.m4: Check for a space after the -l flag.
2024-02-17 18:40:46 +02:00
Mike Frysinger
57dae03b04 m4: update serial numbers in modified files
These should have been included in the commits that updated these
files, but too late now to rewrite git history.

* m4/libtool.m4: Update serial number.
* m4/ltdl.m4, m4/ltoptions.m4: Likewise.
2024-02-01 00:02:23 -05: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
Mike Frysinger
8d188608ca libtoolize: always copy config-h.in like aclocal.m4
When running `libtoolize --ltdl`, a symlink to the source config-h.in
is used rather than a copy of the file.  This causes the build system
to look at its old timestamp relative to the other generated files
that are copied in, and then try to regenerate things, and update the
config-h.in timestamp by touching the symlink (which will dereference
things).  This breaks `make distcheck` because when a few tests run
that invoke `libtoolize --ltdl --install` w/out --copy, and then try
to build the project, automake's rules trigger autoheader regen, and
then update the timestamp, which updates the underlying file, and then
causes libtool's own files to get out of sync.  So the next time make
is run in the tree, it tries to regenerate the source files, and fails
as the source tree is read-only.

Change libtoolize to always copying the header over during install.
It's not clear to me whether this is 100% the right answer, but it
shouldn't make things worse beyond missing a case to use a symlink.
We probably can't avoid this as long as aclocal.m4 itself is copied
in instead of symlinked.  This changed between v2.4.2 and v2.4.3 in
commit 4e671d6ba69c889b1f9aee12de6c504d26dc6514 ("libtoolize:
simplify file-copying and -linking call-graph.").

Example failure log:

$ make distcheck
...
make[3]: Entering directory '.../libtool-2.4.7.62-3e11/_build/sub'
  GEN      ../../libltdl/Makefile.in
  GEN      ../../libltdl/configure
autom4te-2.72: error: cannot create autom4te.cache in .../libtool-2.4.7.62-3e11/libltdl: Permission denied
make[3]: *** [Makefile:2411: ../../libltdl/configure] Error 1
make[3]: *** Waiting for unfinished jobs....
autom4te-2.72: error: cannot create autom4te.cache in .../libtool-2.4.7.62-3e11/libltdl: Permission denied
automake-1.16: error: autoconf failed with exit status: 1
make[3]: *** [Makefile:2387: ../../libltdl/Makefile.in] Error 1

We can see this in old-m4-iface.at:AC_WITH_LTDL which doesn't use
--copy with libtoolize:

$ stat libltdl/config-h.in | grep Modify
Modify: 2024-01-18 01:18:52.998059970 -0500
$ make check-local TESTSUITEFLAGS=100
...
100: AC_WITH_LTDL                                    ok
...
$ stat libltdl/config-h.in | grep Modify
Modify: 2024-01-18 01:19:19.254727020 -0500

And in the test log we can see:

100. old-m4-iface.at:113: testing AC_WITH_LTDL ...
...
libtoolize: linking file 'libltdl/config-h.in'
...
./old-m4-iface.at:161: : ${CONFIG_SHELL=/bin/sh}; export CONFIG_SHELL;    $CONFIG_SHELL ./configure $configure_options           --prefix="$prefix" --exec-prefix="$prefix" --bindir="$prefix/bin" --libdir="$prefix/lib" --with-included-ltdl
...
./old-m4-iface.at:161: $as_unset LIBTOOL; $as_unset LIBTOOLIZE; $MAKE $target
stderr:
stdout:
cd libltdl && make
make[1]: Entering directory '/usr/local/src/gnu/libtool/tests/testsuite.dir/100/libltdl'
CDPATH="${ZSH_VERSION+.}:" && cd . && aclocal -I m4
 cd . && automake --foreign
CDPATH="${ZSH_VERSION+.}:" && cd . && autoconf
/bin/sh ./config.status --recheck
...
(CDPATH="${ZSH_VERSION+.}:" && cd . && autoheader)
rm -f stamp-h1
touch config-h.in
...

* libtoolize.in: Copy config-h.in.
* tests/libtoolize.at: Change "linking" to "copying".
2024-01-22 08:09:47 -05:00
Mike Frysinger
10a04bafef
Fix some style & minor grammar.
* doc/libtool.texi: Fix some style & minor grammar.
2024-01-21 17:38:13 +02:00
Ileana Dumitrescu
7e4b026690
* doc/libtool.texi: Minor grammatical fixes. 2024-01-21 17:25:54 +02:00
Mike Frysinger
e602d877f6 bootstrap: don't reset config-h.in timestamp newer than configure
Various autotools rules will compare the timestamps of config-h.in
and configure, and if config-h.in is newer than configure, attempt
to regenerate it.  This breaks `make distcheck` which we need to
produce new releases.  So update config-h.in timestamp, but only
up to the configure file.

The breakage is caught because distcheck makes source dirs read-only
before running.

$ make distcheck
...
make[3]: Entering directory '.../libtool-2.4.7.62-7132f/_build/sub'
  GEN      ../../libltdl/configure
autom4te-2.72: error: cannot create autom4te.cache in .../libtool-2.4.7.62-7132f/libltdl: Permission denied
make[3]: *** [Makefile:2411: ../../libltdl/configure] Error 1

* bootstrap.conf (libtool_fudge_timestamps): Set config-h.in timestamp
to configure.
2024-01-18 01:38:08 -05:00
Mike Frysinger
23eacf882e HACKING: add more test related tips
* HACKING: Document syntax-check & distcheck & parallel testing.
2024-01-18 01:38:08 -05:00
Richard Purdie
725646bf09 ltmain.in: Parse additional clang options
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.
2024-01-17 17:05:12 -05:00
Richard Purdie
365805327c libtool.m4: Cleanup sysroot trailing "/"
If $CC has --sysroot=/, it is a valid configuration however libtool will
then set lt_sysroot to "/".

This means references like $lt_sysroot$libdir become //usr/lib instead
of the more normally expected /usr/lib. This may or may not break something
but certainly is confusing to the user and gives confusing output. Making
"/" simply unset lt_sysroot is much cleaner.

Whilst here, trim any trailing '/' from sysroot paths to drop the duplication
and result in cleaner/consistent output.

* m4/libtool.m4: Cleanup sysroot trailing '/' handling.
2024-01-17 17:01:45 -05:00
Richard Purdie
cdf4bf702f ltmain.in: Handle prefix-map compiler options correctly
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.
2024-01-17 14:49:08 -05:00
Tim Rice
31d9133b4c ltmain: correct fallout from freebsd-elf changes
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.
2024-01-17 14:45:30 -05:00
Ozkan Sezer
97859bda6a
libtool: add mingw to systems not requiring libm
mingw uses msvcrt as it's standard library and does not use libm.
So in LT_LIB_M it can be added to the list of systems which do not
require libm.

* libtool.m4: Add mingw to the list of systems not requiring libm
2024-01-17 20:34:58 +02:00
Paul Green
e60044908e libtool.m4: fix old_archive_from_new_cmds variable name typo
The "From" should be "from" in the variable name.

Fixes libtool bug https://bugs.gnu.org/38305

* m4/libtool.m4: Change F to f in old_archive_from_new_cmds.
2024-01-17 02:45:49 -05:00
Mike Frysinger
9665e2f25e libtool.m4: drop AC_PROG_SED fallback
We require autoconf 2.62 which includes this macro so we don't need
this fallback logic anymore.

* m4/libtool.m4 (AC_PROG_SED): Delete.
2024-01-17 02:31:22 -05:00
Albert Chu
bfcbcc2dce libtool.m4: fix "manifest" typos
* m4/libtool.m4: Rename lt_cv_path_mainfest_tool to lt_cv_path_manifest_tool.

Signed-off-by: Albert Chu <chu11@llnl.gov>
2024-01-17 01:52:43 -05:00
Oliver Kiddle
b67d1a2db8 libtool: fix Solaris 11 builds
Trying to build clamav on Solaris 11.3 with the Oracle C compiler,
I got the following error:

libtool: error: not configured to extract global symbols from dlpreopened files

I would have expected a build to use dlopen rather than the preopen
fallback so looked for related configure tests that were perhaps
returning the wrong answer.

The global_symbol_pipe being empty seemed a likely culprit.
the last three lines of nm -p on the conftest.o in this test are:

0000000032 T main
0000000016 T nm_test_func
0000000001 C nm_test_var

On Solaris 10, I'd get a D instead of a C. Adding C to the list of
characters in the symcode variable and building again resulted in a
successful build. I've attached a patch to add this C.

Url: https://savannah.gnu.org/patch/?9086

* m4/libtool.m4 (symcode): Add C for solaris.
2024-01-17 01:32:06 -05:00
Mike Frysinger
3ebfdce755 HACKING: minor formatting tweaks
* HACKING: Tweak style.
2024-01-16 23:42:04 -05:00
Brad Smith
1ae386ba78 libtool: remove OpenBSD specific performance hack for ranlib
The -t flag was used as a performance hack for ranlib. The flag was
supported by the GNU toolchain, but is a no-op with the LLVM toolchain.

* m4/libtool.m4: Remove use of -t flag with ranlib.
2024-01-16 20:52:26 -05:00
Richard Purdie
49e6cb0d4d libtool: Fix support for NIOS2 processor
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.
2024-01-16 20:48:27 -05:00
Mike Frysinger
51ac68a24e bootstrap: sync to latest version
* gl-mod/bootstrap: Update.
* bootstrap: Likewise.
2024-01-16 20:01:41 -05:00
Mike Frysinger
306c759bed bootstrap: revert typo fixes
This is maintained elsewhere, so we don't want to fork it locally.

* bootstrap: Restore upstream typos.
2024-01-16 20:01:00 -05:00
Antonin Décimo
fd8ab0cbd3 Fix various typos
* NEWS: Fix various typos.
* NO-THANKS, README.md, TODO, bootstrap, bootstrap.conf,
build-aux/edit-readme-alpha, build-aux/git-log-fix, build-aux/ltmain.in,
doc/libtool.texi, libltdl/libltdl/lt_error.h, libltdl/lt__argz.c,
libltdl/ltdl.c, libtoolize.in, tests/depdemo.at, tests/link-order.at: Likewise.
* cfg.mk (old_NEWS_hash): Update.

Copyright-paperwork-exempt: Yes
2024-01-16 17:54:26 -05:00
Mike Frysinger
8c3678bb28 cfg.mk: update old NEWS hash
The recent change to change http:// to https:// updated old NEWS
entries.  This isn't exactly against the spirit of the "don't
change old NEWS", so update the hash to match.

* cfg.mk (old_NEWS_hash): Update.
2024-01-16 17:50:44 -05:00
Antonin Décimo
8fa76f168e ChangeLog.old: Convert ISO-8859-1 to UTF-8
This file is mostly UTF-8 already, but some old entries were using
ISO-8859-1.  Change them to UTF-8 entirely.

* ChangeLog.old: Change ISO-8859-1 to UTF-8.

Copyright-paperwork-exempt: Yes
2024-01-16 17:46:15 -05:00
Mike Frysinger
003520d346 use https:// with more gnu.org sites
* NEWS: Change http:// to https:// for some URIs.
* bootstrap.conf, build-aux/ltmain.in, configure.ac, libtoolize.in: Likewise.
2024-01-16 15:46:12 -05:00
Raul E Rangel
f81f36e4e9 libtool: Use $LD when checking for --whole-archive
Using `$CC -print-prog-name=ld` will always use the `ld` linker. We
should instead be using the $LD variable so that we use the proper
linker.

There is already another part of the code that does this same check,
so I just copy/pasted the if line.

* m4/libtool.m4: Change `$CC -print-prog-name=ld` to $LD.

Url: https://savannah.gnu.org/support/?110978
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
2024-01-16 15:28:57 -05:00
Brad Smith
5a7193dbfb libtool: remove bitrig support.
Bitrig has been defunct for 7 years.

* build-aux/ltmain.in (func_mode_link): Remove bitrig support.
* m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE, LT_CMD_MAX_LEN)
(_LT_SYS_DYNAMIC_LINKER, _LT_CHECK_MAGIC_METHOD)
(_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Ditto.
* m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS): Ditto.
* NEWS: Updated.
2024-01-16 15:11:38 -05:00
Olly Betts
81e8abf3dd
libtool: use -Fe with MSVC to specify filename
This avoids a deprecation warning with current versions of MSVC, by
replacing the -o flag with -Fe. -Fe is documented as supported at
least as far back as Visual C 6.0 which was released in 1998.

* m4/libtool.m4: Use -Fe instead of -o to specify DLL output filename
for MSVC.

Signed-off-by: Olly Betts <olly@survex.com>
2024-01-16 20:43:00 +02:00
Xiang.Lin
4da5b57531
libtool: fix empty "-L" in compiler_lib_search_path
If the compiler places a space between "-L" and the path, the path will
be skipped and only an empty "-L" will appear in the final
compiler_lib_search_path. This will cause the first library in postdeps
following compiler_lib_search_path to be accidentally skipped.

* libtool.m4: Fixed string comparison by adding missing 'x's.
2024-01-16 19:47:20 +02:00
Bruno Haible
47c71f61df
Fix shared library support on Android.
This patch fixes two problems:
1) A libtool library created with the -release option and no -version-info
   option was, when built with --enable-shared, installed without the
   symlink libNAME.so -> libNAME-RELEASE.so. This led to subsequent failures
   during "make install" of shared libraries that depend on it.
2) Executables were created without a RUNPATH property. These executables
   then did not find their shared libraries when run.

* m4/libtool.m4: On Android, fix library_names_spec and
hardcode_libdir_flag_spec.
2024-01-15 22:58:56 +02:00
Mike Frysinger
544675d6b5 gnulib: update submodule to current versions
* gl/build-aux/do-release-commit-and-tag.diff: Rebase.
* gnulib: Update submodule.
2024-01-14 23:10:53 -05:00
Mike Frysinger
55e703a96b maint: disable syntax checks on local gnulib patches
The syntax checks might trip over problems in the gnulib code itself
when scanning the local patches.  Since it's unlikely these checks
will find anything useful, just disable them for the gl/ patches.

* cfg.mk (VC_LIST_ALWAYS_EXCLUDE_REGEX): Ignore ^gl/.
2024-01-14 23:09:49 -05:00
Mike Frysinger
3c19bfd4fb maint: tweak update-release-year for syntax checks
`make syntax-check` complains about redundant variable braces.

* cfg.mk (update-release-year): Delete $${year} braces.
2024-01-14 23:09:49 -05:00
Mike Frysinger
f03b64dc62 maint: disable GNU indent checks for now
GNU indent will reformat a bunch of files in a way that's broken or
incorrect, so disable the check until we can find a way to workaround
this.  Unfortunately, the indent check is enforced at `make distcheck`
time if GNU indent is installed, so it can't simply be ignored.

* cfg.mk (local-checks-to-skip): Add sc_indent.
2024-01-14 22:36:07 -05:00
Mike Frysinger
1879a0e6db libltdl: delete use of ^L
GNU indent does not process this well, and nothing else in the tree
uses this convention, so drop it.

(GNU indent is enforced by gnulib when running `make distcheck`.)

* libltdl/ltdl.c: Delete ^L.
* libltdl/ltdl.h: Likewise.
2024-01-14 21:48:38 -05:00
Mike Frysinger
a38b178625 generalize genders
* HACKING: Change "his" to "their".
* tests/old-m4-iface.at: Change "she" to "they".
2024-01-14 21:35:02 -05:00
Sam James
b80646b7b8 .gitmodules: use HTTPS for cloning gnulib
* .gitmodules: Use https://.
2024-01-14 17:42:55 -05:00
Richard Purdie
bd826173c4 libtool.m4: For reproducibility stop encoding hostname in libtool script
For reproducibility, stop encoding the hostname into the libtool script,
this isn't really adding much to debugging and most distros are carrying
such a patch now as reproducibility is important.

* m4/libtool.m4: Delete call to hostname & uname.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-01-14 02:11:35 -05:00
Gilles Gouaillardet
33d4b69fcc libtool: Add support for flang (Fortran LLVM-based) compilers
This patch adds support for flang compilers.  Some specific flags
are needed so these compilers must be handled in a specific way.
By default, the compiler is called 'flang', but ARM releases their
own flang-based compiler called 'armflang'.

Because of the current lack of flang support in libtool, the
generated 'libtool' must be manually modified after 'configure' is
invoked.  Such a process is for example described on ARM web site
(it involves the Open MPI library).

Url: https://savannah.gnu.org/patch/?9442

* m4/libtool.m4: Handle *flang.
2024-01-14 02:07:38 -05:00
Sam James
533d816dea ltmain.in: Pass through -fdiagnostics-color, -frecord-gcc-switches
* -fdiagnostics-color: who doesn't like color? No reason to strip it. This
  makes the link phase stick out like a sore thumb if there's warnings emitted.

* -frecord-gcc-switches: we use it in Gentoo to check if a package respects
  *FLAGS. Note that we do not need to include -grecord-gcc-switches explicitly
  here as -g* is already whitelisted.

* build-aux/ltmain.in: Handle -fdiagnostics-color* & -frecord-gcc-switches.
2024-01-14 01:51:06 -05:00
Mingli Yu
e01c0bfe5e build: make sure autoheader run before automake
When use automake to generate Makefile.in from Makefile.am, there
comes below race:
 | configure.ac:45: error: required file 'config-h.in' not found

It is because the file config-h.in in updating process by autoheader,
so make automake run after autoheader to avoid the above race.

* Makefile.am: Have $(lt_Makefile_in) depend on $(lt_config_h_in).

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
2024-01-14 01:24:15 -05:00
Mingli Yu
e7dc729dd2 build: make sure autoheader run before autoconf
autoheader will update ../libtool-2.4.6/libltdl/config-h.in which
autoconf needs, so there comes a race sometimes as below:
 | configure.ac:45: error: required file 'config-h.in' not found
 | touch '../libtool-2.4.6/libltdl/config-h.in'

So make sure autoheader run before autoconf to avoid this race.

* Makefile.am: Have $(lt_configure) depend on $(lt_config_h_in).

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
2024-01-14 01:23:38 -05:00
Jonathan Wakely
efbb2e77df docs: Use @file for .libs directory
* doc/libtool.texi: Use @file format for directory name.
2024-01-14 01:21:12 -05:00
Jonathan Wakely
26bbdd6fbe docs: Fix typo in 'Linking Libraries' section
* doc/libtool.texi: Fix typo.
2024-01-14 01:20:44 -05:00
Manoj Gupta
8878355f1d libtool: Support "-fno-sanitize*" options.
"-fno-sanitize*" options e.g. -fno-sanitize=alignment
or -fno-sanitize-recover=all are used to tune the behvior of
sanitizers in GCC/clang. Let libtool pass these options
to compiler similar to fsanitize=*.

* build-aux/ltmain.in: Handle -fno-sanitize*.

Signed-off-by: Manoj Gupta <manojgupta@google.com>
2024-01-14 01:14:29 -05:00
Mike Frysinger
22406ebb83 maint: extend release version hook to cover config.lt
* cfg.mk: Extend rule to cover config.lt.
* m4/libtool.m4: Update copyright year.
2024-01-14 01:10:32 -05:00
Jakub Wilk
9ced107b8c libtool.m4: fix typos
* m4/libtool.m4: Fix various typos.
2024-01-14 01:03:54 -05:00
Vadim Zeitlin
383a3807b7 libtool: Include _CRTIMP in _putenv() declaration in EXE wrapper sources.
Re-declaring _putenv() without _CRTIMP in strict ANSI mode when using
MinGW resulted in a warning because of a conflict with the previous
declaration that did use _CRTIMP.

Simply add _CRTIMP to our declaration to avoid it.

* build-aux/ltmain.in (func_emit_cwrapperexe_src): Add _CRTIMP to
_putenv() declaration.

Signed-off-by: Vadim Zeitlin <vz-libtool@zeitlins.org>
2024-01-14 00:58:07 -05:00
Samuel Thibault
7464f1db29 libtool: hurd-amd64 support
This adds support for passing -m elf32_x86_64 vs -m elf_x86_64 to the
linker on hurd-amd64.

Url: https://savannah.gnu.org/patch/?10398

* m4/libtool.m4: dd x86_64-gnu* case to pass -m elf32_x86_64 vs
-m elf_x86_64 to linker.
2024-01-14 00:48:00 -05:00
Bruno Haible
9e7b9631ec Recognize *-*-windows* config triplets
The gnuconfig project recognizes windows* as a host OS to denote native
Windows environments.  The commit message makes it sound like LLVM and
Crablang communities will use the 'windows' value, whereas GNU will
continue to use 'mingw'. But I think it's only a matter of time until
people start to pass the option --host=x86_64-pc-windows to configure
scripts. We should be prepared for that.

Url: https://savannah.gnu.org/patch/?10387

* build-aux/ltmain.in: Treat windows* as equivalent to mingw*.
* m4/libtool.m4: Likewise.
* m4/ltdl.m4: Likewise.
* m4/ltoptions.m4: Likewise.
* tests/bindir.at: Likewise.
* tests/deplibs-mingw.at: Likewise.
* tests/lt_dladvise.at: Likewise.
* tests/testsuite.at: Likewise.
2024-01-14 00:41:20 -05:00
Antonin Décimo
5576d862c4 docs: Update links to FlexDLL and edll
* doc/libtool.texi: Update website URIs.

Copyright-paperwork-exempt: Yes
2024-01-14 00:35:12 -05:00
Dmitry Antipov
429d905115 libtool: passthru '-shared-libsan' and '-static-libsan' flags
This is intented to link against shared and static sanitizer
runtimes with Clang.

* build-aux/ltmain.in: Pass '-shared-libsan' and '-static-libsan'
flags when linking.

Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
2024-01-13 23:49:08 -05:00
Florian Weimer
477e484f19 tests: Fix C99 compatibility issue in lt_dlopen_a.at
Include <string.h> for the strcmp function.  This improves C99
compiler compatibility because it avoids an implicit function
declaration.

* tests/lt_dlopen_a.at: Include string.h.
2024-01-13 23:47:35 -05:00
Paul Eggert
80d05c3483 libtool: port better to POSIX grep
This fixes some other regular expressions that GNU grep 3.8 does not
warn about (I found them with an even-pickier 'grep').

I did not look systematically for all portability bugs of this form.

Url: https://savannah.gnu.org/patch/index.php?10282

* tests/cdemo.at (allow_undefined_flag):
Prefer } to \} in EREs, as \} is not portable.
* tests/libtool.at (quote shell meta-characters in filenames):
Prefer ] to \] in BREs, as \] is not portable.
2024-01-13 22:59:34 -05:00
Paul Eggert
eb2a21cf2e libtool: port to GNU grep 3.8
GNU grep 3.8 warns about some regular expressions that POSIX says have
undefined effect, e.g., '\-'.  Unfortunately Libtool uses regular
expressions of this form.  Some unittests now fail, e.g. link-order.at:

--- /dev/null
+++ .../libtool/tests/testsuite.dir/at-groups/66/stderr
@@ -0,0 +1,4 @@
+/bin/grep: warning: stray \ before /
+/bin/grep: warning: stray \ before /
+/bin/grep: warning: stray \ before /
+/bin/grep: warning: stray \ before /

Url: https://savannah.gnu.org/patch/index.php?10282

* m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Do not use \- in a BRE or ERE,
as this produces undefined results that GNU grep 3.8 warns about.
Use [-] instead.
* tests/link-order.at (Link order test): Similarly, do not use
\/ in an ERE; use / instead.
2024-01-13 22:56:10 -05:00
Ileana Dumitrescu
ad06c50b00
libtool: removed stale intro in document
Fixes libtool bug https://bugs.gnu.org/64157

* libtool.texi: Removed old and stale introduction from documentation.
2024-01-13 19:09:47 +02:00
Mike Frysinger
1ee43a97fe README: change http to https in all URIs
* README.md: Change http:// to https:// everywhere.
2024-01-12 02:31:20 -05:00
Mike Frysinger
e9ec894d92 README: fix path to INSTALL in git
Fixes libtool bug https://bugs.gnu.org/42787.

The file lives in automake's git, not libtool.

* README.md: Change INSTALL URL to automake.git.
2024-01-12 02:26:43 -05:00
Mike Frysinger
27b101add7 maint: fix git hooks logic error
`test set = set = set` is invalid, as is `test set = = set`.
Tweak the code to what was probably intended.

* build-aux/git-hooks/commit-msg: Fix $ECHO test call.
2024-01-12 02:14:47 -05:00
Mike Frysinger
96dafbda93 maint: add hook to automate release version updates
Fixes libtool bug https://bugs.gnu.org/67588.

Automate the process to avoid it falling stale again in the future,
and then refresh here to get in sync.

* cfg.mk: Add rule to update libtool.m4 release version.
* m4/libtool.m4: Update release year.
2024-01-12 02:09:28 -05:00
Uwe Kleine-König
64bef5ba65 libtool: Use AC_CHECK_PROG instead of AC_CHECK_TOOL to find "file"
This fixes a warning when cross-building:

	checking for arm-v7a-linux-gnueabihf-file... no
	checking for file... file
	configure: WARNING: using cross tools not prefixed with host triplet

file isn't platform specific and not usually installed with a host
triplet. So use AC_CHECK_PROG which differs from AC_CHECK_TOOL by not
expecting such a host triplet prefix.

* m4/libtool.m4 (_LT_DECL_FILECMD): Change AC_CHECK_TOOL to AC_CHECK_PROG.
2024-01-12 01:37:17 -05:00
Mike Frysinger
85093d697a maint: update copyrights across project 2024-01-12 01:35:32 -05:00
Sam James
1ec8fa28dc
libtool: passthru '-Werror' flags
* build-aux/ltmain.in: Pass '-Werror' flags to linker.

Copyright-paperwork-exempt: Yes
2022-12-16 13:16:43 -06:00
Alex Ameen
6132006b5f
Revert "libtool: permit compiler libs in shlibs"
This reverts commit 1d2577357ee704da2d6d7c7da119ad82ba8ca172.
2022-05-16 00:07:17 -05:00
Alex Ameen
1d2577357e
libtool: permit compiler libs in shlibs 2022-05-08 21:46:30 -05:00
Alex Ameen
b9ba1b3f0b maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2022-03-16 23:23:11 -04:00
Alex Ameen
6d7ce133ce version 2.4.7
* NEWS: Record release date.
2022-03-16 22:45:04 -04:00
Alex Ameen
b4a37606e6
NEWS: roll-back manually filled NEWS versioning
* NEWS: 'make release-commit' wants to automatically enter this information,
so the original template must be restored.
2022-03-07 11:58:53 -06:00
Alex Ameen
33615a45a6 NEWS: fill entries for past commits
* NEWS: summarize past commits since previous release for NEWS file
2022-03-06 13:41:58 -06:00
Alex Ameen
f5eb6f1169 libltdl: bump libltdl.la version-info.
* libltdl/ltdl.mk: increment revision number to reflect minor changes
and bug-fixes.
2022-02-08 22:36:15 -06:00
Alex Ameen
28fbcb6a9a libtool: correct linter syntax complaints in M4
* m4/libtool.m4: remove unnecessary braces on variable derefence.
* m4/ltargz.m4: change quote style for inline comment.
2022-02-08 13:44:03 -06:00
Alex Ameen
7e69e44199 gnulib: update submodule to new repository.
* configure.ac: Update autoconf requirement for bootstrapping to 2.64.
* README.md: Update note concerning autoconf version requirement.
* bootstrap: Propogate change to GPL license from GPL 3 to GPL 2.
2022-02-08 13:32:47 -06:00
Alex Ameen
2dc7dad770 maint: update copyrights across project. 2022-02-08 12:11:10 -06:00
Stacey Marshall
b55b1cc841 libtool: Do not pass '-pthread' to Solaris linker.
* build-aux/ltmain.in: Do not add -pthread to inherited linker flags on
Solaris systems.

Copyright-paperwork-exempt: Yes
2022-02-05 15:36:36 -06:00
Alex Ameen
960a33e460 docs: manually recording dependencies in Automake
* doc/libtool.texi (Using Automake): provide example of how to manually record
'BUILT_SOURCES' dependencies for libtool archives.
2021-12-24 12:55:03 -06:00
Alex Ameen
786526826d tests: remove deprecated old-ltdl-iface.at test.
* tests/old-ltdl-iface.at: remove test as instructed by inline comments, which
indicate that this test should have been deleted in 2013.
This test fails because it relies on legacy usage of 'include Makefile.inc'
by libltdl which is no longer supported.
2021-12-05 16:16:30 -06:00
Alex Ameen
f51eddf0db * libtool: Bump M4 serial versions and add missing AC_PROG_SED to ltdl.m4
* m4/libtool.m4: bump serial version ( covers entire release ).
* m4/ltargz.m4: bump serial version ( covers entire release ).
Add AC_PROG_SED requirement to LT_FUNC_ARGZ.
* m4/ltdl.m4: bump serial version ( covers entire release ).
2021-11-29 21:43:26 -06:00
Václav Haisman
ccc878dd72 libtool: replace raw invocations of sed with $SED
* build-aux/ltmain.in: replace raw invocations of sed with $SED
* m4/libtool.m4: replace raw invocations of sed with $SED
* m4/ltargz.m4: replace raw invocations of sed with $SED
* m4/ltdl.m4: replace raw invocations of sed with $SED

Co-authored-by: Alex Ameen <alex.ameen.tx@gmail.com>
Copyright-paperwork-exempt: Yes
2021-11-29 20:37:49 -06:00
Lucas Holt
5df7dd49d5 libtool: add support for MidnightBSD
* build-aux/ltmain.in: clone link-mode handling for MidnightBSD from FreeBSD
* m4/libtool.m4: clone various TAGVARs for MidnightBSD from FreeBSD
* m4/ltdl.m4: clone dlopen handling for MidnightBSD from FreeBSD

Copyright-paperwork-exempt: Yes
2021-11-29 18:54:09 -06:00
Ryan Schmidt
8f4bdbda0a libtool: powerpc 10.5 detection without a deployment target
* m4/libtool.m4: properly set "allow undefined" flag for darwin powerpc 10.5
even if deployment target is unset

Copyright-paperwork-exempt: Yes
2021-11-21 21:06:50 -06:00
Jeremy Huddleston Sequoia
9e8c882517 libtool: support macOS 11
Fixes bug#44605

* m4/libtool.m4: '_LT_REQUIRED_DARWIN_CHECKS' sets proper "allow undefined" flag
for particular macOS versions and powerpc.

Copyright-paperwork-exempt: Yes
2021-11-21 20:36:34 -06:00
Vincent Lefevre
0904164dd5 libtool: correct m4 quoting in sed expression
* m4/libtool.m4: properly escape character set in sed expression

Copyright-paperwork-exempt: Yes
2021-11-21 19:59:54 -06:00
Alex Ameen
da2e352735 libtool: replace some references to /usr/bin/file and /bin/sh
* build-aux/ltmain.sh: use '/usr/bin/env sh' in shebang
* libtoolize.in: use '/usr/bin/env sh' in shebang
* m4/libtool.m4: 'FILECMD' to replace use of '/usr/bin/file'
2021-11-20 14:37:05 -06:00
aakropotkin
1b74d78401 libtool: Add -Wa,* link-mode flag for assembler pass-thru
* build-aux/ltmain.in: add -Wa,* as link-mode flag.
Add help messages for -Wa,* and -Xassember in link mode.
Add help message for -Xcompiler in compile mode.
* doc/libtool.texi: document -Xassembler and -Wa,* for link-mode.
2021-11-18 21:24:47 -06:00
Alex Potapenko
86d71e869d libtool: Pass -Xassembler flag and arguments to compiler
* build-aux/ltmain.in: Add parsing and pass-thru for -Xassembler

Copyright-paperwork-exempt: Yes
2021-11-18 19:53:35 -06:00
Pavel Raiskup
fc7779d7d8 maint: update Bootstrap git module
Fixes bug#47000.

* bootstrap: Regenerated.
* gl-mod/bootstrap: Updated to the latest HEAD.
2021-11-16 13:48:44 +01:00
aakropotkin
0c1bc69dac maint: update copyrights across project.
* AUTHORS: Correct manually modified copyright to be consistent with
other files.
2021-11-14 22:37:22 -06:00
aakropotkin
28fb394fc0 maint: update AUTHORS, copyright date.
* AUTHORS: Add Alex Ameen as maintainer. Move past authors to 'previous' list.
2021-11-14 20:38:25 -06:00
Pavel Raiskup
b9b44533fb bootstrap: use $gnulib_clone_since
* bootstrap.conf: Add $gnulib_clone_since.
* gl-mod/bootstrap: Update to the latest git hash.
* bootstrap: Regenerate.
2019-03-22 13:10:05 +01:00
Pavel Raiskup
544fc0e2c2 maint: update bootstrap, gnulib, copyright dates
* gnulib: Update to the latest git version.
* gl-mod/bootstrap: Likewise.
* bootstrap: Regenerate.
2019-03-13 15:38:36 +01:00
Pavel Raiskup
b88cebd510 maint: update bootstrap, gnulib, copyright dates
* gnulib: Update to the latest git version.
* gl-mod/bootstrap: Likewise.
* bootstrap: Regenerate.
* gl/top/README-release.diff: Update the patch for the latest
changes in gnulib's README-release.
2018-07-24 09:06:44 +02:00
Alexander Shevchenko
99bd0948e2 libtool: add icl.exe support
A logical continuation of Automake commit
c40e27e1c2a60f58e72e65d73d808f782d55494a to provide
Windows ICC support similar as already done for MSVC.

Resolves bug 26484.

* m4/libtool.m4: Treat icl.exe equivalently to cl.exe.

Copyright-paperwork-exempt: Yes
2018-07-12 11:46:53 +02:00
Pavel Raiskup
6ca5e224bc docs: typo in 'win32-dll' description
Resolves bug 26516.  Thanks to Reuben Thomas.

* doc/libtool.texi (Configuring libtool): s/macro/option/ in
'win32-dll' option description.
2017-05-05 09:39:39 +02:00
Pavel Raiskup
1bfb11a46b libtool: quote 'cd' command in shipped relink_command
Per report from Eric Blake:
https://lists.gnu.org/archive/html/bug-libtool/2015-10/msg00009.html

* build-aux/ltmain.in (func_mode_link): Quote 'cd `pwd`' properly
before generating the $relink_command.  Do that for the potential
scenarios where the pwd could contain spaces or special shell
characters.
2017-04-25 14:33:14 +02:00
Pavel Raiskup
722b6af0fa doc: fix typos in --mode=install invocations
Per report from devel@lists.fedoraproject.org, thread id
CLHZMVL3CZ43KX7CD3PF3FDV255EA57O

* doc/libtool.texi (Install mode): With the
'libtool --mode=install' wrapper the 'install' command needs to be
specified.
2017-04-25 12:15:53 +02:00
Bert Wesarg
350082b6aa libtool: exit verbosely for fatal configure problems
Instead of calling not-existing function and processing subsequent
shell code.

* build-aux/ltmain.in (func_fatal_configuration): Fix typo in
func_fatal_error call.

Copyright-paperwork-exempt: Yes
2017-04-21 16:56:46 +02:00
Pavel Raiskup
792b680701 maint: update copyright years
Also sync gnulib & bootstrap git submodules.

* gnulib, gl-mod/bootstrap: Move to latest git versions.
* bootstrap: Regenerate.
* all files: Bump years by 'make update-copyright'.
2017-04-21 16:56:19 +02:00
Pavel Raiskup
f003a1f96e libltdl: handle ENOMEM in lt_dlloader_remove()
Reported by Alexander Hass.

* libltdl/lt_dlloader.c (lt_dlloader_remove): Detect NULL return
value from lt_dlinterface_register.
2017-01-16 14:38:07 +01:00
Pavel Raiskup
08c5524fb2 bootstrap: use the upstream repo as git module
.. instead of copying it all the time;  gnulib-tool and bootstrap
are now ready to do this correctly.

Bootstrap upstream is now dual-licensed as MIT/GPLv2+;  so the
sources are redistributed automatically under GPLv3+ license in
in libtool project.

* .gitmodules (bootstrap): New submodule.
* bootstrap.conf (local_gl_dir): Renamed to local_gl_path.
(local_gl_path): Renamed from local_gl_dir.  Two sub-directories
are now mentioned as two --local-dir's are used.
(gnulib_git_submodules): New option to automatically clone the
bootstrap git submodule.
* build-aux/ltmain.in (libtool_options_prep)
(libtool_parse_options): Changing function exit status is not
needed with new options-parser.
* libtoolize.in: Don't func_quote when it is not necessary, don't
set the function return value.
* gl-mod/bootstrap: New git submodule.
* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
gl/build-aux/funclib.sh, gl/build-aux/inline-source,
gl/build-aux/options-parser, gl/doc/bootstrap.texi,
gl/modules/all-shells-tests, gl/modules/bootstrap,
gl/modules/extract-trace, gl/modules/funclib.sh,
gl/modules/funclib.sh-tests, gl/modules/inline-source
gl/modules/options-parser, gl/modules/options-parser-tests,
gl/tests/test-all-shells.sh, gl/tests/test-funclib-quote.sh
gl/tests/test-option-parser-helper,
gl/tests/test-option-parser.sh: Files removed, those are
automatically pulled from upstream now.
* bootstrap: Sync with upstream.
2016-03-09 09:38:47 +01:00
KO Myung-Hun
a938703c46 libtool: set file_list_spec to '@' on OS/2
Creating and linking reloadable objects sometimes fail.

* m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) <os2-*>:
Set file_list_spec to '@'.
2016-02-25 09:56:52 +01:00
Pavel Raiskup
f10e22c2a1 tests: fix $objdir hardcoding check with CFLAGS=-g3
At least with gcc, specifying -g3 in CFLAGS ends up with macros
expanded including LT_OBJDIR macro.  This fooled the testsuite.

* tests/demo.at (Demo hardcode): Filter out the expanded LT_OBJDIR
macro.
2016-02-19 19:06:34 +01:00
Mike Frysinger
f9970d9929 libtool: pass through -fuse-ld flags
Starting with gcc-4.8, there's a -fuse-ld flag that can be used to
select between bfd & gold.  Make sure we pass it through to the
linking stage.

* build-aux/ltmain.in (func_mode_link): Pass -fuse-ld=* flags
through.
Copyright-paperwork-exempt: Yes
2016-02-19 11:29:11 +01:00
Pavel Raiskup
d7c8d3b43f m4/libtool.m4: FreeBSD elftoolchain strip support
References:
http://savannah.gnu.org/patch/?8675
Message-Id: <20150523-002056.sv85487.59958@savannah.gnu.org>

* m4/libtool.m4 (_LT_CMD_STRIPLIB): Remove the redundant tests for
empty $old_striplib and $striplib.  Move the test for empty $STRIP
variable up. Allow elftoolchain strip (with the same arguments we
used to have with GNU strip) on FreeBSD.
2016-02-19 10:21:15 +01:00
Mike Frysinger
807cbd63ab libtoolize: exec automake and autoconf only with --help
Same fix as applied to libtool in commit 408cfb9c5fa8a666917
to delay use of automake/autoconf to when the --help option is
actually specified.

* libtoolize.in (func_help): Override func_help() from
gl/build-aux/options-parser to only run automake --version and
autoconf --version when libtool --help is executed on the command
line.
Copyright-paperwork-exempt: Yes
2016-02-19 09:50:34 +01:00
Pavel Raiskup
40bc0628d5 edit-readme-alpha: generate the "stable" README properly
Fixes bug#20196.  Reported by Peter Johansson and KO Myung-Hun

* build-aux/edit-readme-alpha: Invert the order of checks
and exit sooner if the file was already edited.  Also fix the
typo 's/sed -n/sed/' (to print the rest of the file).
* Makefile.am ($(readme)): Double-quote the `cmd` to let test -n
work correctly.
2016-02-18 00:14:07 +01:00
Pavel Raiskup
b89a47eae6 maint: fix for 'make sc_immutable_NEWS' hints
* NEWS: Remove the leading white-spaces before Copyright line
because it breaks the perl regexp in sc_immutable_NEWS rule.
* cfg.mk (old_NEWS_hash): Adjust to correct previous hash as the
old NEWS entries were not actually touched.
2016-02-17 09:19:49 +01:00
Pavel Raiskup
bb8e7b4a06 maint: update copyright years
Also update gnulib submodule as it contains updated copyright
years too.

* gnulib: Latest greatest git hash.
* all files: Run 'make update-copyright'.
2016-02-16 00:33:51 +01:00
Pavel Raiskup
b5d44b8447 libltdl: handle ENOMEM sooner
Fixes bug#19890.  Reported by Tobias Stoeckmann.

* libltdl/loaders/dld_link.c (vm_open): Do not even try dld_link()
in case of ENOMEM.
2016-02-12 16:16:15 +01:00
Pavel Raiskup
5944fdcc73 gl: minor typo fixes
* gl/build-aux/options-parser (func_run_hooks):
s/funcions.n./functions./, s/$@/${1+"$@"}/.
* gl/modules/funclib.sh: Sync license metadata with real module
code.
* bootstrap: Sync with funclib.sh
2016-02-03 10:23:43 +01:00
Pavel Raiskup
4985667996 gl-tests: dash && option-parser test fix
Rico pointed out that the testsuite failed on his system (dash
represented /bin/sh).  Turns out that 'shift' in dash exits shell
with exit status 2 when there are no items in the array.

The other issue was that 'test-option-parser.sh' did not
re-executed the test in proper shell, but in /bin/sh.

* gl/tests/test-option-parser-helper (test_parse_eat_test): Don't
shift for empty $@.
* gl/tests/test-option-parser.sh: Use $__GL_ALL_SHELLS_SHELL as
shell which runs the helper.
2016-02-03 10:12:33 +01:00
Jeremy Huddleston Sequoia
a5c6466528 libtool: fix GCC/clang linking with -fsanitize=*
References:
https://lists.gnu.org/archive/html/libtool/2014-04/msg00026.html

* build-aux/ltmain.in (func_mode_link): Pass -fsanitize=* to the
linker to allow trivial use of the clang address sanitizer.

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
Copyright-paperwork-exempt: Yes
2015-11-30 09:39:31 +01:00
Pavel Raiskup
ae816aced1 gl-tests: make the failure more readable
* gl/tests/test-funclib-quote.sh (_compare_or_error): Put $1 into
error output, not having it like that was my mistake.
2015-11-30 07:11:10 +01:00
David Edelsohn
d15b321427 m4/libtool.m4: export AIX TLS symbols
TLS symbols in AIX display a new, different symbol type in nm output.
Libtool explicitly creates a list of exported symbols for AIX shared
libraries using nm and does not recognize the new TLS symbols, so
those symbols are not exported in AIX shared libraries.

This is a regression for TLS support on AIX where TLS symbols or GCC
"emultls" symbols were listed as global data and exported.

This patch updates libtool.m4 export_symbols_cmds for AIX in two
locations so that global symbols labeled with "L" for TLS are included
in the export list.

* m4/libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols.
Message-Id: <CAGWvnym+hhoQJfkr=cncPZMnnMQ=RVUH2Bpw6+tP2hgEmESAsA@mail.gmail.com>
2015-11-25 09:51:12 -07:00
Pavel Raiskup
aabc46ac1b gl/tests: new tests for options-parser
* gl/build-aux/options-parser (func_parse_options): Put the info
message 'enabling shell trace mode' on stderr.
* gl/modules/options-parser-tests: New test module.
* gl/tests/test-option-parser.sh: New test-case.
* gl/tests/test-option-parser-helper: New test-case helper.
* bootstrap: Sync with option-parser.
2015-11-04 06:47:52 +01:00
Pavel Raiskup
dc8bd92d5f gl/funclib.sh: func_quotefast_eval & tilde fix
Testsuite detected that printf built-in in Bash up to 4.2 was not
able to properly escape tilde.

* gl/build-aux/funclib.sh (func_quote_for_eval): If printf
supports -v option, test also whether we properly escape tilde.
With Bash <= 4.2, call func_quote_portable with ~* strings.
* bootstrap: Sync with funclib.sh.
2015-11-04 06:47:52 +01:00
Pavel Raiskup
a3c6e99c9c syntax-check: fix sed syntax errors
Multi-line single-quoted shell arguments defined within makefile
rules end up having the trailing backslash.  This caused problem
in some sc_* rules as GNU sed does not interpret trailing
backslash the same way as SHELL (== appending next line).
Switching to double quotes means that SHELL will remove the
trailing backslash for subsequent sed call.  This silences a lot
of GNU sed warnings seen before like:

  sed: -e expression #1, char 96: unterminated address regex

* cfg.mk (sc_libtool_m4_cc_basename): Use $(SED) instead of sed,
use double quotes for sed's multi-line argument.
(sc_prohibit_set_dummy_without_shift): Likewise.
(sc_prohibit_test_const_follows_var): Likewise.
2015-11-04 06:47:21 +01:00
Pavel Raiskup
f323f10d2b gl/tests: new tests for func_quote* family
* gl/modules/funclib.sh-tests: New test module.
* gl/modules/all-shells-tests: New test (helper) module.
* gl/tests/test-funclib-quote.sh: New test case.
* gl/tests/test-all-shells.sh: New gl test helper.
* cfg.mk (sc_useless_braces_in_variable_derefs): Whitelist
new test-funclib-quote.sh as the pattern is used there
intentionally.
(sc_space_tab): Likewise.
(sc_useless_braces_in_variable_derefs): Remove /cvsu pattern as
the file is not used with git.
(sc_prohibit_command_in_subst): New checker.
2015-11-03 20:38:39 +01:00
Pavel Raiskup
ed4f739f62 check: enable gnulib's testsuite
* Makefile.am (SUBDIRS): Add gnulib-tests.
(EXTRA_DIST): Distribute also update-copyright script.  This does
not happen automatically because we manually remove ./lib
directory created by gnulib-tool.  Not having the file distributed
causes 'make check' failure, however.
(dotversion): Fix to point to $(top_srcdir).
* bootstrap.conf (gnulib_tool_options): Add gnulib-tool args
needed to successfully install gnulib's tests.
* configure.ac (CONFIG_STATUS_DEPENDENCIES): Look for .version in
$(top_srcdir).
* gnulib: Sync with upstream.
* build-aux/.gitignore: Ignore ar-lib coming from automake.
2015-11-03 20:34:42 +01:00
Pavel Raiskup
9187e9a231 funclib: refactor quoting methods a bit
From now we have two basic functions to perform string quoting for
shell evaluation -- 'func_quote_arg' to quote one argument and
'func_quote' which takes list of arguments to be quoted.

New function name-scheme should be more descriptive (previously we
called func_quote_for_eval with one argument and also multiple
arguments, while we had confusing
$func_quote_for_eval_unquoted_result which is redundant for
multiple-arguments call).

New abstraction allowed us (in an easy way) to implement
bash-specific optimization for quoting  (using
'printf -v VARNAME %q "$value"', suggested by Eric Blake), this
construct may be used on those places where we don't care much
about the result aesthetics (its thus not useful for '*.la'
generation or for error printing).

* gl/build-aux/funclib.sh (func_append_quoted): Use
func_quote_arg internally (kept in 'pretty' mode for now).
(func_quote): Made to be "main" high-level quoting method taking
list of arguments to be quoted into single command.  It replaces
func_quote_for_{expand,eval}.
(func_quote_portable): Implements quoting in shell, falling back
to portable sed call (rare cases).
(func_quotefast_eval): New internal function using fast
bash-specific construct, falling back to func_quote_portable for
non-Bash scripts.
(func_quote_arg): New function to quote one argument.
(func_quote_for_eval): Removed.  All callers changed to call
func_quote.
(func_quote_for_expand): Likewise.
* bootstrap: Sync with funclib.sh and options-parser.
2015-10-12 21:26:51 +02:00
Pavel Raiskup
16dbc070d3 libtool: optimizing options-parser hooks
Its not necessary to (re)func_quote_for_eval in each function in
the hook hierarchy.  Usually it is enough if the leaf function
does func_quote_for_eval and its caller just re-uses the
<CALLEE>_return variable.

This is follow up for the previous commit.

* gl/build-aux/options-parser (func_run_hooks): Propagate
$EXIT_SUCCESS return code down to caller if *any* hook succeeded.
Never re-quote the result -- either the arguments are left
untouched, or the options have already been properly quoted by
succeeding hooks.
(func_parse_options): Quote '$@' and return $EXIT_SUCCESS only if
we changed something.
(func_validate_options): Likewise.
(func_options_prep): Likewise.
(func_options_finish): New hook-caller for 'func_options' hooks.
(func_options): Propagate return value down to top-level caller,
but pay attention we have always set $func_options_result.
* build-aux/ltmain.in (libtool_options_prep): Quote '$@' and
return $EXIT_SUCCESS only if we changed something.
(libtool_parse_options): Likewise.
* bootstrap: Sync gl/build-aux/with option-parser.
2015-10-12 21:26:13 +02:00
Pavel Raiskup
32f0df9835 libtool: mitigate the $sed_quote_subst slowdown
When it is reasonably possible, use shell implementation for
quoting.

References:
http://lists.gnu.org/archive/html/libtool/2015-03/msg00005.html
http://lists.gnu.org/archive/html/libtool/2015-02/msg00000.html
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20006

* gl/build-aux/funclib.sh (func_quote): New function that can be
used as substitution for '$SED $sed_quote_subst' call.
* build-aux/ltmain.in (func_emit_wrapper): Use func_quote instead
of '$SED $sed_quote_subst'.
(func_mode_link): Likewise.
* NEWS: Document.
* bootstrap: Sync with funclib.sh.
2015-10-12 19:21:33 +02:00
Pavel Raiskup
b7b6ec33ba gnulib: sync with upstream
With gnulib commit f8fe25fab60e3, AM_PROG_AR is called
automatically from GL_EARLY macro, which brings its definition
into aclocal.m4.  Sufficiently new enough AM_PROG_AR uses guarding
AC_BEFORE([AM_PROG_AR], [LT_INIT]) call.

Existence of 'LT_INIT' string inside aclocal.m4 however broke
bootstrap's self-defensive libtool_check_for_bogus_macros
function.

* build-aux/no-bogus-m4-defines: New aux helper using m4 for
aclocal.m4 pre-processing.  As this is only bootstrap/dist time
assertion, we don't have to be too much careful (and the AC_BEFORE
pushdef is OK for now).
* boostrap.conf (libtool_check_for_bogus_macros): Use
no-bogus-m4-defines helper to detect bogus macros.
* Makefile.am: Likewise.
* gnulib: Sync with upstream.
* build-aux/git-log-fix: Fix typo.
* gl/build-aux/extract-trace: Fix the script timestamp.
* bootstrap: Sync with extract-trace.
2015-09-29 10:37:57 +02:00
Pavel Raiskup
5859cc50d6 maint: relax 'sc_prohibit_test_dollar' check
* cfg.mk (sc_prohibit_test_dollar): White-list the
'test ${VAR+y}' construct because that is autoconf-suggested
portable way to check for unset variable.
2015-09-26 18:00:17 +02:00
Pavel Raiskup
418129bc63 ARFLAGS: use 'cr' instead of 'cru' by default
In some GNU/Linux distributions people started to compile 'ar'
binary with --enable-deterministic-archives (binutils project).
That, however, in combination with our previous long time working
default AR_FLAGS=cru causes warnings on such installations:
ar: `u' modifier ignored since `D' is the default (see `U')

The 'u' option (at least with GNU binutils) did small optimization
during repeated builds because it instructed 'ar' to not
open/close unchanged *.o files and to rather read their contents
from old archive file.  However, its removal should not cause a
big performance hit for usual workflows.

Distributions started using --enable-deterministic-archives
knowing that it would disable the 'u', just to rather have a bit
more deterministic builds.

Also, to justify this change a bit more, keeping 'u' in ARFLAGS
could only result in many per-project changes to override
Libtool's ARFLAGS default, just to silent such warnings.

Fixes bug#19967.  Reported by Eric Blake.

* m4/libtool.m4 (_LT_PROG_AR): Default AR_FLAGS to 'cr'.
(_LT_REQUIRED_DARWIN_CHECKS): Use $AR_FLAGS instead 'cru' string.
* doc/libtool.texi: Do 's/ar cru/ar cr/' in whole documentation.
* NEWS: Document.
2015-09-26 18:00:16 +02:00
Pavel Raiskup
4335de1dfb libool.m4: add ARFLAGS variable
Libtool has used $AR_FLAGS since 2000-05-29 commit
8300de4c54e6f04f0d, Automake ARFLAGS since 2003-04-06 commit
a71b3490639831ca.  Even though ARFLAGS is younger, it sounds like
better name according GNU Coding Standards.

Related to bug#20082.

* m4/libtool.m4 (_LT_PROG_AR): Copy ARFLAGS value into AR_FLAGS
variable if AR_FLAGS is not set.  Add new _LT_DECL'ed variable
'lt_ar_flags' to keep the configure-time value of AR_FLAGS.  The
new 'lt_ar_flags' is to be used as the default value for AR_FLAGS
at libtool-runtime.
* NEWS: Document.
2015-09-26 18:00:13 +02:00
Pavel Raiskup
0f84217752 maint: put newline after 'Subjecŧ' in ChangeLog
* Makefile.am ($(changelog)): Use --format='%s%n%n%b%n'.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
2015-09-25 08:29:25 +02:00
Pavel Raiskup
03ec5f4955 gnulib: sync with upstream
Blacklisting of duplicated ChangeLog entries is now much easier
with new gitlog-to-changelog's option --ignore-matching -- so
patching the script is not necessary.

* Makefile.am ($(changelog)): Start ignoring entries having the
'Omit-from-ChangeLog.' "topic" line.  Use TZ=UTC to generate the
same ChangeLog regardless of the actual time-zone.
* build-aux/git-log-fix: Put the "blacklist" mark at the beginning
of each commit as that is requirement for --ignore-matching.
* gl/build-aux/gitlog-to-changelog.diff: Removed.
* gnulib: Sync with upstream.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
2015-09-25 08:29:21 +02:00
Pavel Raiskup
351a88feee libtoolize: fix infinite recursion in m4
Some projects use this construct in configure.ac:

  m4_define([version], m4_include([version]))
  pkg_version=version

When the m4_include builtin is undefined (as was done in
libtoolize and extract-trace scripts), the call to this 'version'
macro enters an infinite recursion (until ENOMEM).  So rather
re-define all potentially dangerous macros by empty strings,
suggested by Eric Blake.

While we are on it, merge the macro-"blacklist" with similar list
implemented in gettext, except for 'm4_esyscmd'.  It's kept
defined because we already trace AC_INIT macro for package
version, while it is often specified by
m4_esyscmd(git-version-gen).  Similarly to m4_include, m4_esyscmd
might be opt-in-blacklisted in future.

References:
http://lists.gnu.org/archive/html/libtool/2015-09/msg00000.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580

* gl/build-aux/extract-trace (_G_mini): Redefine trace-breaking
macros to empty strings rather than undefining those.  Use 'dnl'
for comments.
* bootstrap: Likewise, sync with extract-trace.
* NEWS: Document.
* NO-THANKS: Mention Hiroyuki Sato.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
2015-09-24 16:27:22 +02:00
Pavel Raiskup
de7b2cb2b7 bootstrap: fix race in temporary Makefile
Target 'bootstrap-deps' sometimes rebuilt $(bootstrap_files)
a bit earlier than the cleanup target 'bootstrap-deps-prep' was
invoked.  As a result, some of $(bootstrap_files) were missing.

* Makefile.am (bootstrap-deps): Rebuild $(bootstrap_files) after
bootstrap-deps-prep dependency.
2015-09-24 11:12:43 +02:00
Pavel Raiskup
702a97fbb0 libtool: fix GCC linking with -specs=*
References:
https://bugzilla.redhat.com/show_bug.cgi?id=985592

* build-aux/ltmain.in (func_mode_link): Pass -specs=*
to the linker, Fedora uses this option for hardening.

Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
2015-09-18 14:14:37 +02:00
Gary V. Vaughan
4ff16210c1 maint: demote myself from maintainer to former maintainer.
* AUTHORS: Move myself from the list of maintainers, into the
list of prior authors.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-02-15 21:10:49 +00:00
Gary V. Vaughan
c12d38e403 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2015-02-15 17:15:45 +00:00
Gary V. Vaughan
f09d00cbcf version 2.4.6
* NEWS: Record release date.
2015-02-15 16:13:37 +00:00
Gary V. Vaughan
408cfb9c5f libtool: don't execute automake and autoconf on every invocation.
Regression from 2.4.2 was causing noticable slow-down in builds
that call libtool many times.
* build-aux/ltmain.in (func_help): Override func_help() from
gl/build-aux/options-parser to only run automake --version and
autoconf --version when libtool --help is executed on the command
line.
* NO-THANKS: Add Robert Yang.
Reported by Robert Yang

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-02-06 13:02:34 +00:00
Gary V. Vaughan
6289a9ab3c maint: undo copyright years regression.
* gl/build-aux/options-parser: Undo copyright years regression.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-20 19:19:27 +00:00
Gary V. Vaughan
c60e054c36 bootstrap: sync with upstream.
* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
gl/build-aux/funclib.sh, gl/build-aux/options-parser: Sync with
upstream.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-20 17:23:57 +00:00
Pavel Raiskup
6c822af50f libtool: respect config.site LT_SYS_LIBRARY_PATH
Libtool generator code needs to remember the configure time
LT_SYS_LIBRARY_PATH content to allow config.status properly
instantiate default LT_SYS_LIBRARY_PATH libtool run-time value;
Thats because config.status has no idea what the contents of
config.site file is (by default).
* m4/libtool.m4 (_LT_CONFIG): Use the _LT_DECLared
$configure_time_lt_sys_library_path variable as the default for
LT_SYS_DLSEARCH_PATH at run-time.
(_LT_SYS_DYNAMIC_LINKER): Don't change ac_cv_* variable if it is
not necessary. New $configure_time_lt_sys_library_path variable.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-20 16:25:28 +00:00
Pavel Raiskup
edb4ff8bb6 libtool.m4: typofix, subst last '$' with quadrigraph
* m4/libtool.m4 (_LT_LIBTOOL_TAG_VARS): Encase the
configure/libtool shared function into parseable borders; for
testing purposes.
(func_munge_path_list): Typo s/$/@S|@/.
* tests/configure-funcs.at: New testcase.
* Makefile.am (TESTSUITE_AT): Mention new testcase.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-20 16:08:18 +00:00
Pavel Raiskup
3deca86bdc tests: fix an ltdl dryrun race condition.
* tests/testsuite.at (LT_AT_ACLOCAL): Inject a 1 second sleep
after aclocal to ensure subsequently generated autotools files
will be newer.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-20 15:25:48 +00:00
Gary V. Vaughan
8cb6741f5c maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2015-01-19 17:00:14 +00:00
Gary V. Vaughan
cb90d8ed96 version 2.4.5
* NEWS: Record release date.
2015-01-19 15:09:58 +00:00
Gary V. Vaughan
fda42eb8c6 maint: update copyright statements to include 2015.
* AUTHORS, HACKING, Makefile.am, NEWS, README.md, TODO,
bootstrap, bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/git-hooks/commit-msg, build-aux/ltmain.in, cfg.mk,
configure.ac, doc/libtool.texi, gl/build-aux/bootstrap.in,
gl/build-aux/extract-trace, gl/build-aux/funclib.sh,
gl/build-aux/inline-source, gl/build-aux/options-parser,
libltdl/README, 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, libtoolize.in,
m4/autobuild.m4, m4/libtool.m4, m4/ltargz.m4, m4/ltdl.m4,
m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.in,
m4/lt~obsolete.m4, m4/m4.m4, tests/am-subdir.at,
tests/archive-in-archive.at, tests/bindir.at, tests/cdemo.at,
tests/cmdline_wrap.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-ltdl-iface.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: Update copyright statement to include 2015.
* cfg.mk: Adjust old_NEWS_hash accordingly.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-18 13:16:42 +00:00
Gary V. Vaughan
ec43ff6eff gnulib: sync with upstream.
* gnulib: Sync with upstream.
* doc/.gitignore: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-16 18:50:46 +00:00
Pavel Raiskup
c6ed4148b0 libtoolize: fix ltdl installation order.
Fixes regression caused by commit 99a808be.
Makefile.in has aclocal.m4 as prerequisite, so Makefile.in
should be installed later to avoid unnecessary rebuild by
(versioned) aclocal.
* Makefile.am (pkgltdl_files): Move the Makefile.in file down in
the list after aclocal.m4.
* tests/libtoolize.at: Adjust to match reordered output.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2015-01-16 16:30:51 +00:00
Gary V. Vaughan
97f03a4379 libtool: check Sun Pro CXX ABI postdeps at libtool time.
* m4/libtool.m4 (_LT_PREPARE_CC_BASENAME): Factor cc_basename
calculation into a shell function...
(_LT_CONFIG_SAVE_COMMAND): ...and expand it into generated
libtool script.
(_LT_CC_BASENAME): Adjust accordingly.
(_LT_FUNC_SUNCC_CSTD_ABI): Remove from here...
* build-aux/ltmain.in (func_suncc_cstd_abi): ...and reimplement
here.
* m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Remove postdeps
augmentation from here...
* build-aux/ltmain.in (func_mode_link): ...and reimplement here
just before postdeps are added.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-12 18:35:45 +00:00
Gary V. Vaughan
b49ab52cb3 libtool: more carefully avoid automatic -Cstd -Crun on Sun Pro CXX.
* m4/libtool.m4 (_LT_FUNC_SUNCC_CSTD_ABI): New function factored out
of repeated code.  Take note of other known -Cstd incompatible
compiler flags.
(_LT_SYS_HIDDEN_LIBDEPS): Use it to determine whether -Cstd -Crun
can be safely added to postdeps with Sun Pro CXX.
* NEWS: Update.
* NO-THANKS: Add Marc Glisse.
Reported by Marc Glisse

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-12 15:01:01 +00:00
Gary V. Vaughan
4fede0bc49 libtool: take care not to double-apply LT_SYS_LIBRARY_PATH.
* m4/libtool.m4 (_LT_CONFIG_SAVE_COMMANDS): Copy configure-time
LT_SYS_LIBRARY_PATH settings as default, but allow run-time
override.
(_LT_SYS_DYNAMIC_LINKER): Save the unmunged
sys_lib_dlsearch_path_spec value, and use it for _LT_DECL,
but then munge it with LT_SYS_LIBRARY_PATH for use in ltdl.m4
macros, such as LT_SYS_DLSEARCH_PATH.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-12 11:44:21 +00:00
Pavel Raiskup
08279564ff libtool: support LT_SYS_LIBRARY_PATH for adjusting bad guesses.
Revert 8728e07 and 440fee6.
Some GNU/Linux distributions install libraries into /lib64 (or
/usr/lib64) on 64-bit machines, while /lib (/usr/lib
respectively) stays for multilib variant.  Other distributions
keep /usr/lib for 64-bit variant and reserve other directory for
multilib. Detection of what approach a given system uses is
difficult, however, especially because Glibc's ldconfig does not
report the full and correct list of search paths. Allow the user
to adjust Libtools heuristically determined search paths with
the new LT_SYS_LIBRARY_PATH environment variable at both
compile-time, when libtool is called, and at configure time.
* m4/libtool.m4 (_LT_PREPARE_MUNGE_PATH_LIST): Define a new
function to munge a libtool path list according to a user
supplied colon-delimited path.
(_LT_SYS_DYNAMIC_LINKER): Require _LT_PREPARE_MUNGE_PATH_LIST.
Mark LT_SYS_LIBRARY_PATH as precious to autoconf (to survive
automatic "autoreconf").
Call the new func_munge_path_list function on
sys_lib_dlsearch_path_spec - this propagates results to
generated libtool script.
(_LT_CONFIG): Expand _LT_PREPARE_MUNGE_PATH_LIST into generated
libtool script.
* build-aux/ltmain.in (func_mode_link): Call it to adjust
sys_lib_dlsearch_path according to LT_SYS_LIBRARY_PATH.
* doc/libtool.texi: Document new LT_SYS_LIBRARY_PATH.
* doc/notes.texi: Likewise.
* NEWS: Update.

References: http://thread.gmane.org/gmane.comp.gnu.libtool.general/8339/focus=8345
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-11 23:06:09 +00:00
Gary V. Vaughan
663f919241 maint: fix syntax-check failures.
* m4/m4.m4 (AC_PROG_GNU_M4): Reverse some test arguments for
sc_prohibit_test_const_follows_var.
Remove some spurious braces for
sc_useless_braces_in_variable_drefs.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-11 23:06:09 +00:00
Gary V. Vaughan
72293c9952 bootstrap: sync with upstream.
* gl/build-aux/extract-trace (func_find_tool): Quote a bare
variable expansion in a test argument.
* bootstrap: Regenerate.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-11 23:03:37 +00:00
Gary V. Vaughan
440fee60c9 libtool: s390x is also a 64bit glibc/ELF platform.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LIB): Add s390x to glibc/ELF
compatible CPUs that have /lib64 and /usr/lib64 in
sys_lib_dlsearch_path_spec.
Reported by Pavel Raiskup

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-05 13:29:13 +00:00
Gary V. Vaughan
8727e07a16 libtool: for 64bit GNU arches, add /lib64 and /usr/lib64 to sys_lib_dlsearch_path.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) <linux*, k*bsd*-gnu>
<kopensolaris*-gnu, gnu*>: If $host_cpu contains "64", add /lib64
and /usr/lib64 to sys_lib_dlsearch_path_spec.
Reported by Orion Poplawski, Christian Rössel, Olly Betts et. al.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-04 17:44:41 +00:00
Gary V. Vaughan
9f52eb3d6c libltdl: fix gcc compiler warning for unused attributes.
* libltdl/ltdl.c, 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: For at
least gcc 4.8.3 and 4.9.1, __attribute__((__unused)) should
follow the unused parameter declaration.
* NO-THANKS: Add Дилян Палаузов.
Reported by Дилян Палаузов

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-04 17:17:11 +00:00
Eric Bavier
89049b76cf tests: do not assume compiler prefers shared libraries.
Testing whether -static-libtool-libs causes a non-libtool library to be
linked dynamically is effectively a test of the compiler's preference in
this case.  The Cray compiler prefers static libraries if not told
otherwise.
* tests/static.at [static linking flags for programs]: Do not expect
 -static-libtool-libs to fail.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-04 16:37:21 +00:00
Norihiro Tanaka
facce819e1 libtool: fix sys_lib_dlsearch_path_spec for ia64 HP-UX.
The run-time loader does not search /usr/local or subdirectories
by default on ia64 HP-UX.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): Fix
sys_lib_dlsearch_path_spec for ia64 HP-UX.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-04 15:45:02 +00:00
Gary V. Vaughan
57a78dd531 libltdl: edit AM_CPPFLAGS correctly for libltdl/Makefile.am.
* libltdl/ltdl.mk (AM_CPPFLAGS): Make sure the sed expression to
remove the first libltdl/ on each line is not confused by misuse
of linebreaks.
* Makefile.am (lt_Makefile_am): Also edit out the duplicated
include paths after libltdl/ elimination.
* NEWS: Update.
Reported by Michael Wobst

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-04 14:43:05 +00:00
Tijl Coosemans
218bf6f4c2 libtool: commit forgotten soname_spec for freebsd-elf in bb7cef9.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) <freebsd-elf>: Set
soname_spec correctly, per original patch.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-04 13:51:46 +00:00
Gary V. Vaughan
ef519e9ecc bootstrap: sync with upstream for runtime M4 checking functions.
* gl/build-aux/extract-trace: Sync with upstream for runtime M4
checking functions.
* bootstrap: Regenerate.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-03 18:55:23 +00:00
Gary V. Vaughan
f31984b92a configury: bail out early if GNU M4 is not on the path.
Now that libtoolize requires an installed GNU M4 to parse
configure.ac and aclocal.m4 sources for libltdl macros, let the
user know at configure time when it is missing.
* m4/m4.m4: New file for rejecting non-GNU and buggy GNU versions
of M4. Copied from GNU Autoconf m4.m4.
* Makefile.am (lt_aclocal_m4_deps): Add m4/m4.m4.
* configure.ac (AC_PROG_GNU_M4): Call it.
* NEWS: Update.
Reported by Michael Felt

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-12-03 18:53:02 +00:00
Gary V. Vaughan
6cc831405a maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2014-11-29 18:02:15 +00:00
161 changed files with 6633 additions and 8964 deletions

3
.gitignore vendored
View File

@ -41,8 +41,9 @@
/INSTALL
/README-release
/gnulib-local
/gnulib-tests
/libtoolize
/libtoolize.in
/libtool-next-version
/maint.mk
/patches
/release

5
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "gnulib"]
path = gnulib
url = git://git.sv.gnu.org/gnulib.git
url = https://git.savannah.gnu.org/git/gnulib
[submodule "bootstrap"]
path = gl-mod/bootstrap
url = https://github.com/gnulib-modules/bootstrap.git

View File

@ -1 +1 @@
2.4.3
2.6.0

23
AUTHORS
View File

@ -16,21 +16,21 @@
Scott James Remnant scott@netsplit.com
Peter O'Gorman peter@pogma.com
Ralf Wildenhues Ralf.Wildenhues@gmx.de
* GNU Libtool and libltdl are currently being cajoled, bullied,
rewritten and otherwise dragged into the future by:
Gary V. Vaughan gary@gnu.org
Gary V. Vaughan gary@vaughan.pe
Bob Friesenhahn bfriesen@simple.dallas.tx.us
* The following people also enjoy write access under the given rules:
Peter Rosin peda@lysator.liu.se
Noah Misch noah@cs.caltech.edu
Charles Wilson libtool@cwilson.fastmail.fm
Brooks Moses bmoses@google.com
Alex Ameen alex.ameen.tx@gmail.com
* GNU Libtool is currently being cajoled, bullied,
rewritten and otherwise dragged into the future by:
Ileana Dumitrescu ileanadumitrescu95@gmail.com
--
Copyright (C) 1996, 1998-2014 Free Software Foundation, Inc.
Copyright (C) 1996, 1998-2019, 2021-2026 Free Software Foundation,
Inc.
This file is part of GNU Libtool.
@ -45,7 +45,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Libtool; see the file COPYING. If not, a copy
can be downloaded from http://www.gnu.org/licenses/gpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.

View File

@ -15551,7 +15551,7 @@
* libltdl/ltdl.c (foreach_dirinpath): Ensure that filename is '\0'
terminated by all code paths.
Reported by Lutz Müller <lutz@users.sourceforge.net>
Reported by Lutz Müller <lutz@users.sourceforge.net>
2002-06-20 Gary V. Vaughan <gary@gnu.org>
@ -18669,7 +18669,7 @@
and file_magic_cmd
* README: use 'libtool --version' instead of 'ltconfig --version'
(suggested by Francios Pinard <pinard@iro.umontreal.ca>
(suggested by François Pinard <pinard@iro.umontreal.ca>
2000-01-10 Gary V. Vaughan <gary@gnu.org>
@ -19442,7 +19442,7 @@
* ltconfig.in: Support new GNU ld --help output format.
* NEWS: Likewise.
Reported by Gaël Quéri <gael@baoule.dyndns.org> and
Reported by Gaël Quéri <gael@baoule.dyndns.org> and
H.J. Lu <hjl@varesearch.com>.
1999-06-05 Mark Kettenis <kettenis@gnu.org>
@ -23515,7 +23515,7 @@ Thu May 28 18:59:08 1998 Ian Lance Taylor <ian@cygnus.com>
ld's. From Eiichi Takamori.
* ltmain.in (install): Don't print silly `library stripping'
warnings. Reported by François Pinard.
warnings. Reported by François Pinard.
1997-12-19 Gordon Matzigkeit <gord@profitpress.com>
@ -23650,7 +23650,7 @@ Thu May 28 18:59:08 1998 Ian Lance Taylor <ian@cygnus.com>
because we need it for quoting substitutions. For most of the
script, though, use the default echo, just like Autoconf does.
Without this patch, character \001 ends up in global_symbol_pipe.
Reported by Lars Hecking and Jürgen Fluk.
Reported by Lars Hecking and Jürgen Fluk.
* ltmain.in (echo): Set default to `echo=echo'. Ooops. That's
what you get for testing obscure code paths and forgetting to
@ -24999,7 +24999,7 @@ Thu May 28 18:59:08 1998 Ian Lance Taylor <ian@cygnus.com>
* For historical reasons: this is when I started writing libtool.
--
Copyright (C) 1996-2010 Free Software Foundation, Inc.
Copyright (C) 1996-2010, 2026 Free Software Foundation, Inc.
This file is part of GNU Libtool.

78
HACKING
View File

@ -13,22 +13,32 @@ and is not part of a release distribution.
* If you incorporate a change from somebody on the net:
If it is a large change, you must make sure they have signed the
appropriate paperwork, and be sure to add their name and email
address to THANKS
address to THANKS.
* If a change fixes a test, mention the test in the git log entry.
* If somebody reports a new bug, mention his name in the git log entry
* If somebody reports a new bug, mention their name in the git log entry
and in the test case you write.
* The correct response to most actual bugs is to write a new test case
that demonstrates the bug. Then fix the bug, re-run the test suite,
and check everything in.
* Always run the testsuite after applying a patch:
make check syntax-check TESTSUITEFLAGS="--jobs=$(nproc)" -j$(nproc)
Ideally also verify the release process doesn't break:
make distcheck TESTSUITEFLAGS="--jobs=$(nproc)" -j$(nproc)
This will run check & syntax-check from above, but will take longer as
builds & tests in different configurations.
* Some files in the libtool package are not owned by libtool. These
files should never be edited here. These files are:
COPYING
INSTALL
doc/
+ gendocs_template
+ gendocs_template_min
+ fdl.texi
libltdl/
+ COPYING.LIB
@ -41,11 +51,22 @@ and is not part of a release distribution.
+ mdate-sh
+ missing
+ texinfo.tex
m4/
+ 00gnulib.m4
+ gnulib-cache.m4
+ gnulib-common.m4
+ gnu-comp.m4
+ gnulib-tool.m4
+ ltversion.m4
+ zzgnulib.m4
GNUmakefile
maint.mk
The ones that are important for a release can be updated by ensuring
gnulib is up-to-date, and running 'bootstrap' to recheck the links are
correct.
* Changes other than bug fixes must be mentioned in NEWS
* Changes other than bug fixes must be mentioned in NEWS.
3. Test Suite
@ -55,13 +76,23 @@ and is not part of a release distribution.
AT_CHECK) is on a single line so that 'testsuite -x' displays the
whole thing. You can use m4_do or '[... ]dnl' to wrap long lines.
* Use
make -k check
* To debug a failing or skipped range of tests, e.g. 13 to 14:
make check-local TESTSUITEFLAGS="--debug 13-14"
More generally, in the TESTSUITEFLAGS you can use the documented
options for Autotest generated testsuites:
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.72/html_node/testsuite-Invocation.html
* Run tests in parallel with
make -k check TESTSUITEFLAGS="--jobs=$(nproc)"
liberally, on as many platforms as you can. Use as many compilers and
linkers you can. To run old and new testsuites separately, use
linkers you can. To run old and new testsuites separately, use:
make check TESTSUITEFLAGS=-V
make check-local
* The gnulib module also provides some maintainer-focused tests that only
work when run from a git checkout.
make syntax-check
* The new Autotest testsuite uses keywords to denote test features:
autoconf needs Autoconf
automake needs Automake
@ -130,7 +161,7 @@ and is not part of a release distribution.
6. Editing '.am' Files
======================
* Always use $(...) and not ${...}
* Always use $(...) and not ${...}.
* Use ':', not 'true'. Use 'exit 1', not 'false'.
@ -180,7 +211,7 @@ and is not part of a release distribution.
8. Abstraction layers in libltdl
=================================
================================
* The libltdl API uses a layered approach to differentiate internal and
external interfaces, among other things. To keep the abstraction
@ -283,10 +314,10 @@ and is not part of a release distribution.
9. Licensing Rules
==================
GNU Libtool uses 3 different licenses for various of the files distributed
herein, with several variations on license text. It is important that
you use the correct license text in each new file added. Here are the
texts along with some notes on when each is appropriate. Appropriate
GNU Libtool uses 3 different licenses for the files distributed herein,
with several variations on license text. It is important that you use
the correct license text in each new file added. Here are the texts
along with some notes on when each is appropriate. Appropriate
commenting (shell, C etc) and decoration (m4 etc) assumed throughout.
@ -329,10 +360,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Libtool; see the file COPYING. If not, a copy
can be downloaded from http://www.gnu.org/licenses/gpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
@ -363,10 +391,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with <program name>; see the file COPYING. If not, a copy
can be downloaded from http://www.gnu.org/licenses/gpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
along with <program name>. If not, see <https://www.gnu.org/licenses/>.
@ -402,10 +427,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with <program name>; see the file COPYING. If not, a copy
can be downloaded from http://www.gnu.org/licenses/gpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
along with <program name>. If not, see <https://www.gnu.org/licenses/>.
@ -438,13 +460,11 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
--
Copyright (C) 2004-2008, 2010-2014 Free Software Foundation, Inc.
Copyright (C) 2004-2008, 2010-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
This file is part of GNU Libtool.

View File

@ -1,6 +1,6 @@
## Makefile.am -- Process this file with automake to produce Makefile.in
##
## Copyright (C) 2003-2014 Free Software Foundation, Inc.
## Copyright (C) 2003-2019, 2021-2026 Free Software Foundation, Inc.
## Written by Gary V. Vaughan, 2003
##
## This file is part of GNU Libtool.
@ -16,10 +16,7 @@
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with GNU Libtool; see the file COPYING. If not, a copy
## can be downloaded from http://www.gnu.org/licenses/gpl.html,
## or obtained by writing to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
## along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
#####
ACLOCAL_AMFLAGS = -I m4
@ -27,11 +24,11 @@ ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS =
AM_LDFLAGS =
SUBDIRS = .
SUBDIRS = . gnulib-tests
DIST_SUBDIRS = $(SUBDIRS)
EXTRA_DIST =
BUILT_SOURCES = libtool libtoolize
BUILT_SOURCES = libtool libtoolize libtool-next-version
CLEANFILES =
MOSTLYCLEANFILES =
@ -67,7 +64,7 @@ build_scripts = $(srcdir)/$(aux_dir)/announce-gen \
EXTRA_DIST += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
GNUmakefile
CLEANFILES += libtool libtoolize
CLEANFILES += libtool libtoolize libtool-next-version
## If a file is named several times below, and especially if it
## is a distributed file created during Libtool bootstrap, we
@ -81,16 +78,21 @@ extract_trace = $(srcdir)/$(aux_dir)/extract-trace
funclib_sh = $(srcdir)/$(aux_dir)/funclib.sh
inline_source = $(srcdir)/$(aux_dir)/inline-source
libtoolize_in = $(srcdir)/libtoolize.in
libtoolnextv_in = $(srcdir)/libtool-next-version.in
ltmain_sh = $(srcdir)/$(aux_dir)/ltmain.sh
ltmain_in = $(srcdir)/$(aux_dir)/ltmain.in
libtool_m4 = $(srcdir)/$(macro_dir)/libtool.m4
ltversion_in = $(srcdir)/$(macro_dir)/ltversion.in
ltversion_m4 = $(srcdir)/$(macro_dir)/ltversion.m4
no_bogus_macros = $(srcdir)/$(aux_dir)/no-bogus-m4-defines
options_parser = $(srcdir)/$(aux_dir)/options-parser
u2d_copyright = $(srcdir)/$(aux_dir)/update-copyright
EXTRA_DIST += $(extract_trace) $(funclib_sh) $(inline_source) \
$(libtoolize_in) $(ltmain_in) $(ltmain_sh) \
$(ltversion_in) $(ltversion_m4) $(options_parser)
$(libtoolize_in) $(libtoolnextv_in) \
$(ltmain_in) $(ltmain_sh) \
$(ltversion_in) $(ltversion_m4) $(no_bogus_macros) \
$(options_parser) $(u2d_copyright)
## These are the replacements that need to be made at bootstrap time,
## because they must be static in distributed files, and not accidentally
@ -191,6 +193,7 @@ $(lt_Makefile_am): $(ltdl_mk)
'$(SED)' -n '/^.. DO NOT REMOVE THIS LINE -- /,$$p' \
'$(ltdl_mk)' \
|'$(SED)' -e 's|libltdl_||; s|libltdl/||; s|: libltdl/|: |' \
-e '/^[ ]*-I\$$(srcdir)\/libltdl -Ilibltdl \\/d' \
-e 's|\$$(libltdl_|$$(|' \
) |'$(SED)' -e '/^.. DO NOT REMOVE THIS LINE -- /d' \
-e '1s,^\(.. Makefile.\)inc.*,\1am -- Process this file with automake to produce Makefile.in,' > '$@'
@ -206,7 +209,9 @@ bootstrap_files = \
$(ltversion_m4)
.PHONY: bootstrap-deps bootstrap-deps-prep
bootstrap-deps: bootstrap-deps-prep $(bootstrap_files)
bootstrap-deps: bootstrap-deps-prep
$(MAKE) $(bootstrap_files)
bootstrap-deps-prep:
## The following variables are substituted by 'bootstrap-dep-preps'
@exit_cmd=:; \
@ -277,6 +282,8 @@ configure_edit = $(bootstrap_edit) \
# The libtool distributor and the standalone libtool script.
bin_SCRIPTS = libtool
# The "Update version info" wizard.
bin_SCRIPTS += libtool-next-version
libtoolize: $(libtoolize_in) $(config_status)
$(AM_V_at)rm -f '$@'
@ -284,6 +291,12 @@ libtoolize: $(libtoolize_in) $(config_status)
$(AM_V_at)chmod a+x '$@'
$(AM_V_at)chmod a-w '$@'
libtool-next-version: $(libtoolnextv_in) $(config_status)
$(AM_V_at)rm -f '$@'
$(AM_V_GEN)$(bootstrap_edit) '$(libtoolnextv_in)' > '$@'
$(AM_V_at)chmod a+x '$@'
$(AM_V_at)chmod a-w '$@'
# We used to do this with a 'stamp-vcl' file, but non-gmake builds
# would rerun configure on every invocation, so now we manually
# check the version numbers from the build rule when necessary.
@ -327,7 +340,7 @@ EXTRA_DIST += $(lt_aclocal_m4) \
$(lt_obsolete_m4) \
$(stamp_mk)
$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4)
$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4) $(lt_config_h_in)
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOMAKE) Makefile
# Don't let unused scripts leak into the libltdl Makefile
@ -356,6 +369,7 @@ lt_aclocal_m4_deps = \
$(srcdir)/$(macro_dir)/ltdl.m4 \
$(srcdir)/$(macro_dir)/ltoptions.m4 \
$(srcdir)/$(macro_dir)/ltsugar.m4 \
$(srcdir)/$(macro_dir)/m4.m4 \
$(srcdir)/$(ltdl_dir)/configure.ac
lt_configure_deps = $(lt_aclocal_m4) $(lt_aclocal_m4_deps)
@ -363,7 +377,7 @@ lt_configure_deps = $(lt_aclocal_m4) $(lt_aclocal_m4_deps)
$(lt_aclocal_m4): $(lt_aclocal_m4_deps)
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(ACLOCAL) -I ../m4
$(lt_configure): $(lt_configure_deps)
$(lt_configure): $(lt_configure_deps) $(lt_config_h_in)
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOCONF)
$(lt_config_h_in): $(lt_configure_deps)
@ -379,6 +393,7 @@ doc_dir = $(srcdir)/doc
libtool_1 = $(doc_dir)/libtool.1
libtoolize_1 = $(doc_dir)/libtoolize.1
libtoolnextv_1 = $(doc_dir)/libtool-next-version.1
notes_texi = $(doc_dir)/notes.texi
notes_txt = $(doc_dir)/notes.txt
@ -404,7 +419,7 @@ $(notes_txt): $(notes_texi)
$(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \
$(MAKEINFOFLAGS) -o '$@' '$(notes_texi)'
dist_man1_MANS = $(libtool_1) $(libtoolize_1)
dist_man1_MANS = $(libtool_1) $(libtoolize_1) $(libtoolnextv_1)
MAINTAINERCLEANFILES += $(dist_man1_MANS)
update_mans = \
PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \
@ -415,9 +430,12 @@ update_mans = \
# manual pages if the sources for the build-tree files we want to
# run have changed.
$(libtool_1): $(ltmain_sh)
$(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
$(AM_V_GEN)$(update_mans) -n 'Provide generalized library-building support services' --help-option=--help-all libtool
$(libtoolize_1): $(libtoolize_in)
$(AM_V_GEN)$(update_mans) libtoolize
$(AM_V_GEN)$(update_mans) -n 'Prepare a package to use libtool' libtoolize
$(libtoolnextv_1): $(libtoolnextv_in)
$(AM_V_GEN)$(update_mans) -n 'Determines next version to use for a libtool library' libtool-next-version
## ------------- ##
@ -439,13 +457,14 @@ pkgmacro_files = libtool.m4 ltargz.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 \
ltversion.m4 lt~obsolete.m4
## These are installed as a subdirectory of pkgdatadir so that
## libtoolize --ltdl can find them later:
## libtoolize --ltdl can find them later. Note that this list requires
## specific order to avoid unnecessary re-autotooling after libtoolize run.
pkgltdl_files = COPYING.LIB \
Makefile.am \
Makefile.in \
README \
configure.ac \
aclocal.m4 \
Makefile.in \
config-h.in \
configure \
libltdl/lt__alloc.h \
@ -531,7 +550,7 @@ git_log_fix = $(srcdir)/$(aux_dir)/git-log-fix
thanks_gen = $(srcdir)/$(aux_dir)/thanks-gen
dotserial = $(distdir)/.serial
dotversion = $(srcdir)/.version
dotversion = $(top_srcdir)/.version
tarball_version = $(distdir)/.tarball-version
readme = $(distdir)/README
changelog = $(distdir)/ChangeLog
@ -544,7 +563,9 @@ no_thanks = $(srcdir)/NO-THANKS
changelog_start_date = 2011-01-01
$(changelog): FORCE
$(AM_V_GEN)if test -d '$(srcdir)/.git'; then \
$(gitlog_to_changelog) --amend=$(git_log_fix) \
TZ=UTC $(gitlog_to_changelog) --amend=$(git_log_fix) \
--ignore-matching=Omit-from-ChangeLog. \
--format='%s%n%n%b%n' \
--since=$(changelog_start_date) > '$@T'; \
rm -f '$@'; mv '$@T' '$@'; \
cat '$(changelog_old)' >> '$@'; \
@ -555,15 +576,12 @@ $(changelog): FORCE
# current locale considers to be equal.
ASSORT = LC_ALL=C sort
# Extract all lines up to the first one starting with "##".
prologue = perl -ne '/^\#\#/ and exit; print' $(no_thanks)
# Generate THANKS using git log entries as far as possible, fixing
# up ommisions and errors from NO-THANKS configuration.
# up omissions and errors from NO-THANKS configuration.
$(thanks): FORCE
$(AM_V_GEN)if test -d '$(srcdir)/.git'; then \
{ \
$(prologue); echo; \
perl -ne '/^\#\#/ and exit; print' $(no_thanks); echo; \
{ perl -ne '/^$$/.../^$$/ and print' $(no_thanks) \
| grep -v '^$$' | perl -pe 's/ +/\0/'; \
{ sed -e '1,/\#\# /d' -e '/^\#\# /d' \
@ -589,7 +607,7 @@ $(dotversion):
EXTRA_DIST += $(edit_readme_alpha)
re_alpha_version = '\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*[-\.][-\.0-9a-z]*\)'
$(readme): FORCE
@if test -n `expr $(VERSION) : $(re_alpha_version)`; then \
@if test -n "`expr $(VERSION) : $(re_alpha_version)`"; then \
if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
then echo " GEN " $@; \
else echo "$(SHELL) $(edit_readme_alpha) $@"; fi; \
@ -605,12 +623,7 @@ dist-hook: $(changelog) $(thanks) $(dotversion) $(readme)
## ...and similarly for .serial.
$(git_commit_count) > $(dotserial)
## Ensure aclocal has not wrongly picked up old macro definitions.
@for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do \
if grep "$$macro" '$(srcdir)/aclocal.m4' '$(lt_aclocal_m4)'; then \
echo "Bogus $$macro macro contents in an aclocal.m4 file." >&2; \
exit 1; \
else :; fi; \
done
$(no_bogus_macros)
distcheck-hook: syntax-check
@ -649,6 +662,7 @@ testsuite = $(tests_dir)/testsuite
# that it can check for previous failures and skip if necessary.
TESTSUITE = tests/testsuite
TESTSUITE_AT = tests/testsuite.at \
tests/configure-funcs.at \
tests/libtoolize.at \
tests/libtool.at \
tests/demo.at \
@ -665,6 +679,7 @@ TESTSUITE_AT = tests/testsuite.at \
tests/inherited_flags.at \
tests/link-order.at \
tests/link-order2.at \
tests/slimcc.at \
tests/fail.at \
tests/shlibpath.at \
tests/runpath-in-lalib.at \
@ -684,9 +699,9 @@ TESTSUITE_AT = tests/testsuite.at \
tests/nocase.at \
tests/install.at \
tests/versioning.at \
tests/versioning_script.at \
tests/destdir.at \
tests/old-m4-iface.at \
tests/old-ltdl-iface.at \
tests/am-subdir.at \
tests/lt_dlexit.at \
tests/lt_dladvise.at \
@ -720,6 +735,9 @@ TESTSUITE_AT = tests/testsuite.at \
tests/dumpbin-symbols.at \
tests/deplibs-mingw.at \
tests/sysroot.at \
tests/bug_62343.at \
tests/bug_71489.at \
tests/bug_42313.at \
tests/stresstest.at \
tests/cmdline_wrap.at \
$(NOTHING_ELSE)
@ -737,6 +755,9 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
OBJEXT="$(OBJEXT)" EXEEXT="$(EXEEXT)" \
SHELL="$(SHELL)" CONFIG_SHELL="$(SHELL)" \
CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" CXXCPP="$(CXXCPP)" \
OBJC="$(OBJC)" OBJCFLAGS="$(OBJCFLAGS)" \
OBJCXX="$(OBJCXX)" OBJCXXFLAGS="$(OBJCXXFLAGS)" \
ML64="$(ML64)" ML64FLAGS="$(ML64FLAGS)" \
F77="$(F77)" FFLAGS="$(FFLAGS)" \
FC="$(FC)" FCFLAGS="$(FCFLAGS)" \
GCJ="$(GCJ)" GCJFLAGS="$(GCJFLAGS)" \

431
NEWS
View File

@ -1,5 +1,425 @@
NEWS - list of user-visible changes between releases of GNU Libtool
* Noteworthy changes in release ?.? (????-??-??) [?]
** Bug fixes:
- Store cygpath file path conversions correctly for MSYS2 and MSVC.
- Fix syntax error in LT_PROG_OBJC and LT_PROG_OBJCXX.
- Separate Objective C and C++ cache check for proper tagging support.
- Fix in darwin to support values with spaces.
- Limit the length of DLL name to 8.3 correctly to avoid corrupting a
generated DLL on OS/2.
- Remove unused variable on OS/2, which could cause issues with static
library generation if defined.
** Changes in supported systems or compilers:
- Add support for SlimCC compiler.
* Noteworthy changes in release 2.6.0 (2025-09-18) [alpha]
** New features:
- Add a new tool, libtool-next-version, to guide users through updating
library versions.
- Add tagging for Objective-C and Objective-C++, OBJC and OBJCXX.
- Increase 5 digit limit on revision value for libraries to 19 digits,
which is referencing Unix epoch time in nanoseconds.
- Add configuration options to choose whether to use '-nostdlib' to let
the compiler frontend decide what standard libraries to link when
building C++ shared libraries and modules, --enable-cxx-stdlib and
--disable-cxx-stdlib.
- Allow statically linking GCC and Clang compiler support libraries
into shared libraries.
- Add linking clang_rt static archives compiler internal libraries by
their absolute path.
- Set 'mklink' as the symlinking tool for MSVC.
- Pass '--target' architecture flag for Clang.
- Support MSYS and MSYS2 file path conversions.
** Bug fixes:
- Fix wrongly deduplicated compiler dependencies on linux.
- Fix NetBSD postdeps for shared libraries.
- Fix statically linking dependencies into shared C++ libraries when
utilizing clang builtins or g++ options like, -static-libstdc++, by
using a new configuration option, --enable-cxx-stdlib.
- Ensure *-linux-mlibc host matches to mlibc userland rather than
matching to GNU/Linux and similar userlands.
- Fix hang with cmd.exe in MSYS.
- For MSVC, fix mishandling compiler flags, symlinking, cl.exe '.exp'
extension collision, symbol names, and numerous testsuite bugs.
- Fix undeclared reference to access on Windows in libltdl.
- Fix flang -Wl flags on FreeBSD.
- Fix reordering '--as-needed' flag.
- Fix libltdl early failures for multi-arch.
** Changes in supported systems or compilers:
- Support additional Intel OneAPI compilers, 'icx', 'icpx', and 'ifx'.
- Support ML64 (Microsoft Macro Assembler).
* Noteworthy changes in release 2.5.4 (2024-11-20) [stable]
** New features:
- New libtool command line flag, --no-finish, to skip executing
finish_cmds that would alter the shared library cache during testing.
- New libtool command line flag, --reorder-cache=DIRS, to reorder the
shared library cache, only on OpenBSD.
** Bug fixes:
- Fix incorrect use of workarounds designed for Darwin versions that
don't have -single_module support.
- Fix errors when executing 'make distclean' and 'make maintainer-clean'.
- Fix bug where the constructed rpath omit directories, instead of
appending them to the end.
- Fix configure error for when variable 'multlib' is unset.
- Fix searching for -L in link paths being over-greedy and incorrectly
handling paths with -L in them.
- Avoid using AC_TRY_EVAL macro, "dangerous and undocumented".
- Fix linking libraries at runtime with tcc by adding run path.
- Fix path comparison by removing trailing slashes on install commands.
- Fix linking for mingw with lld by prefering response files over the
linker script.
- Fix '-Fe' usage with linking in MSVC.
- Fix '--no-warnings' flag.
- Fix handling xlc(1)-specific options.
- Fix Haiku support.
** Changes in supported systems or compilers:
- Support additional flang-based compilers, 'f18' and 'f95'.
- Support for 'netbsdelf*-gnu'.
- Support for '*-mlibc', and subsequently Ironclad and Managarm.
- Support for SerenityOS.
- Support for wasm32-emscripten.
* Noteworthy changes in release 2.5.3 (2024-09-25) [stable]
** New features:
- Add 'aarch64' support to the file magic test, which allows for
shared libraries to be built with Mingw for aarch64.
** Bug fixes:
- The configure options --with-pic and --without-pic have been renamed
to --enable-pic and --disable-pic, respectively. The old names
--with-pic and --without-pic are still supported, though, for
backward compatibility.
- The configure option --with-aix-soname has been renamed to
--enable-aix-soname. The old name --with-aix-soname is still
supported, though, for backward compatibility.
- Fix conflicting warnings about AC_PROG_RANLIB.
- Document situations where -export-symbols does not work.
- Update FSF office address with URL in each file's license block.
- Add checks for aclocal in standalone.at and subproject.at test files
that report failures in Linux From Scratch and Darwin builds.
* Noteworthy changes in release 2.5.2 (2024-08-29) [beta]
** Bug fixes:
- Use shared objects built in source tree instead of the installed
versions for more reliable testing.
- Fix test in bug_62343.at for confirmed Cygwin/Mingw32 where the
incorrect architecture version of a compiler was generating
object files that could not be linked with a library file.
- Fix typos found with codespell.
** Changes in supported systems or compilers:
- Add support for 32-bit mode on FreeBSD/powerpc64.
* Noteworthy changes in release 2.5.1 (2024-07-25) [beta]
** New features:
- Support C++17 compilers in the C++ tests.
- Add sysroot to library path for cross builds.
** Important incompatible changes:
- Autoconf 2.64 is required for libtool.m4 to use AS_VAR_APPEND.
** Bug fixes:
- Fix for uninitialized variable in libtoolize.
- Skip Fortran/C demo tests when using Clang with fsanitize to
avoid an incompatible ASan runtime.
- Updated documentation for testing.
- Fix failing test to account for program-prefix usage.
- Replaced a deprecated macro to remove warning messages in the
testsuite logs.
- Fix number of arguments for AC_CHECK_PROG call.
- Fix test failures with no-canonical-prefixes flag by checking
if the flag is supported first.
- Fix test failures with no-undefined flag by checking host OS
before appending the flag.
- Skip test when passing CXX flags through libtool to avoid test
failure on NetBSD.
- Remove texinfo warning for period in node name of pxref.
- Alter syntax in sed command to fix numerous test failures
on 64-bit windows/cygwin/mingw.
- Fix 'Wstrict-prototypes' warnings.
- Correct DLL Installation Path for mingw multilib builds.
- Fix '--preserve-dup-deps' stripping duplicates.
- Disable chained fixups for macOS, since it is not compatible with
'-undefined dynamic_lookup'.
** Changes in supported systems or compilers:
- Support additional flang-based compilers, 'flang-new' and 'ftn'.
* Noteworthy changes in release 2.5.0 (2024-05-13) [alpha]
** New features:
- Pass '-fdiagnostics-color', '-frecord-gcc-switches',
'-fno-sanitize*', '-Werror', and 'prefix-map' flags.
- Pass the '-no-canonical-prefixes' linker flag.
- Pass '-fopenmp=*' for Clang to allow choosing between libgomp and
libomp.
- Pass '-shared-libsan', '-static-libsan', 'rtlib=*', and
'unwindlib=*' for Clang.
- Expanded process.h inclusion on Windows for more than the
proprietary MSVC compiler. Other alternative Windows compilers
also require process.h.
- Pass 'elf32_x86_64' and 'elf64_x86_64' to the linker on hurd-amd64.
- Recognize *-*-windows* config triplets.
** Important incompatible changes:
- Removed test_compile from command line options.
- By default executables are created with the RUNPATH property for
the Android linker. RUNPATH works for libraries which are not
installed in system locations.
- Removed AC_PROG_SED fallback, as the macro has been supported
in Autoconf since the 90's.
** Bug fixes:
- Check for space after -l, -L, and -R linker flags.
- Updated documentation for tests, the demo directory, and
elsewhere.
- Fixed Solaris 11 builds.
- Clean trailing "/" from sysroot path.
- Fixed shared library builds for System V.
- Added mingw to the list of systems not requiring libm.
- Fixed support for nios2 systems.
- Fixed linker check for '--whole-archive' support for linkers other
than ld.
- Use -Fe instead of -o with MSVC to avoid deprecation warnings.
- Improved reproducibility of libtool scripts.
- Avoided MinGW warning by adding CRTIMP.
- Improved grep portability.
- Fixed cross-building warnings when checking for file.
** Changes in supported systems or compilers:
- Removed support for bitrig (*-*-bitrig*).
- Added support for flang (Fortran LLVM-based) compilers.
* Noteworthy changes in release 2.4.7 (2022-03-16) [stable]
** New features:
- Libtool script now supports (configure-time and runtime) ARFLAGS
variable, which obsoletes AR_FLAGS. This is due to naming conventions
among other *FLAGS and to be consistent with Automake's ARFLAGS.
- Gnulib testsuite is enabled and run during 'make check'.
- Support the Windows version of the Intel C Compiler (icl) in
libtool script.
- Pass '-fsanitize=*' flags for GCC and LLVM, and '-specs=*' for GCC
to linker.
- Pass '-Xassembler=*' and '-Wa,*' flag to compilers and linkers.
- The variable 'FILECMD' with default value of '/usr/bin/file' was used to
replace existing hard coded references to '/usr/bin/file'.
- Add MidnightBSD support.
** Important incompatible changes:
- Libtool changed ARFLAGS/AR_FLAGS default from 'cru' to 'cr'.
- Do not pass '-pthread' to Solaris linker.
- 'libtool' and 'libtoolize' scripts now use '#! /usr/bin/env sh' shebang.
Previously '#! /bin/sh' was used, which presents challenges for
containerized environments.
** Bug fixes:
- Fix significant slowdown of libtoolize for certain projects (regression
introduced in 2.4.3 release) caused by infinite m4 macro recursion.
- Mitigate the slowdown of libtool script (introduced in v2.4.3) caused by
increased number of calls to '$SED $sed_quote_subst' (bug#20006).
- Properly parse and export TLS symbols on AIX.
- Various bug fixes surrounding use of 'sed'.
- Darwin systems set proper "allow undefined" flag on OSX 11, and
PowerPC 10.5.
- Removed some deprecated tests related to 'Makefile.inc' files.
* Noteworthy changes in release 2.4.6 (2015-02-15) [stable]
** New features:
- LT_SYS_LIBRARY_PATH can be set in config.site, or at configure time
and persists correctly in the generated libtool script.
** Bug fixes:
- Fix a race condition in ltdl dryrun test that would cause spurious
random failures of that test.
- LT_SYS_DLSEARCH_PATH is munged correctly.
* Noteworthy changes in release 2.4.5 (2015-01-19) [stable]
** New features:
- Libtoolize searches for the best available M4 on the user PATH at
runtime, rather than settling for the first one found.
- Support munging sys_lib_dlsearch_path_spec with LT_SYS_LIBRARY_PATH
environment variable.
** Bug fixes:
- Bail out at configure time if the installed M4 is not sufficient
for the purposes of libtoolize.
- freebsd-elf library versioning was upgraded incorrectly in 2.4.4,
but now works properly again.
- Fix a 2.4.4 regression so that libltdl subprojects do not warn
about missing libltdl/libltdl directory as in prior releases.
- When using Sun C++ on Solaris or GNU/Linux we used to set libtool's
postdeps permanently, based on the contents of $CXX and $CXXFLAGS at
configure time, which was brittle and error-prone. Now, we no
longer check for a SunCC ABI at configure time, but augment the
postdeps at libtool time based on the current invocation flags on
each call.
** Changes in supported systems or compilers:
- /usr/local prefixed rpaths are now added to the link-line on
ia64-hp-hpux*, because the default system runtime loader path does
not contain them.
- Previously, when using Sun C++ on Solaris or GNU/Linux, `-Cstd -Crun`
flags were added to $postdeps unless CXX or CXXFLAGS contained
`-library=stlport4`. Newer releases have added other compiler flags
that are also incompatible with `-Cstd -Crun`, so now we don't add
them if any of `-std=c++[0-9][0-9]`, `-library=stdcxx4` or
`-compat=g` were found in CXX or CXXFLAGS when the Sun C++ compiler
is detected.
* Noteworthy changes in release 2.4.4 (2014-11-29) [stable]
** New features:
@ -625,7 +1045,7 @@ New in 1.9b: 2004-08-29; CVS version 1.5a, Libtool team:
libraries from dlpreopened modules.
* libtoolize installs libtool.m4, (ltdl.m4 if used,) and various supporting
m4 definitions to AC_CONFIG_MACRO_DIR.
* Mode inferrence removed, shorthand for choosing modes added.
* Mode inference removed, shorthand for choosing modes added.
* Specifying -allow-undefined is now an error.
* Speed up max_cmd_len check.
* libltdl can now preopen modules from within a library, and libtool will
@ -635,7 +1055,7 @@ New in 1.9b: 2004-08-29; CVS version 1.5a, Libtool team:
by module name.
* New function in libltdl: lt_dlpreload_open opens all preloaded modules.
* libltdl no longer loads shared libraries with global symbol resolution,
this caused problems when the symbols were intended to be overriden further
this caused problems when the symbols were intended to be overridden further
up the stack; it is also not recommended practice.
* New function in libltdl: lt_dlhandle_first, primes handle iterations (using
lt_dlhandle_next) to filter by module interface.
@ -955,7 +1375,7 @@ New in 1.2d: 1998-12-16; CVS version 1.2c, Libtool team:
* We now have anonymous CVS access to GNU libtool. CVSROOT is
:pserver:anoncvs@anoncvs.gnu.org:/gd/gnu/anoncvsroot. The password
is empty. The directory is libtool. Check our home-page at
http://www.gnu.org/software/libtool/libtool.html for details.
https://www.gnu.org/software/libtool/libtool.html for details.
* Alexandre Oliva, Thomas Tanner and Gary V. Vaughan have taken over
the maintenance of libtool.
* Arguments to ltconfig have been changed to allow creation of a
@ -1132,9 +1552,10 @@ New in 0.1:
* First release of libtool
* Support for: *-*-freebsd*, *-*-netbsd*, *-*-sunos4*, *-*-ultrix4*
--
Copyright (C) 1996, 1998-2014 Free Software Foundation, Inc.
This file is part of GNU Libtool.
Copyright (C) 1996, 1998-2019, 2021-2026 Free Software Foundation, Inc.
This file is part of GNU Libtool.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright

View File

@ -30,6 +30,7 @@ note to the bug-report mailing list (as seen at end of e.g., libtool --help).
Akim Demaille akim@epita.fr
!Albert Chin
Albert Chin-A-Young china@thewrittenword.com
Alexander Hass alexander.hass@sap.com
Andreas Schwab schwab@suse.de
Brian Barrett brbarret@osl.iu.edu
!Brian W. Barret
@ -37,6 +38,7 @@ Bruno Haible haible@ilog.fr
Dalibor Topic robilad@kaffe.org
David Edelsohn edelsohn@gnu.org
DJ Delorie dj@delorie.com
Ed Maste emaste@freebsd.org
Erez Zadok ezk@cs.columbia.edu
Eric Blake ebb9@byu.net
H.J. Lu hjl@gnu.org
@ -47,6 +49,7 @@ Juergen Reuter reuter@theoc01.desy.de
Karl Berry karl@gnu.org
Maciej W. Rozycki macro@linux-mips.org
Manfred Weichel weichel@global.nacamar.de
Michael Pratt mcpratt@pm.me
Mike Gorchak mike@malva.ua
Mo DeJong mdejong@redhat.com
Nick Hudson skrll@netbsd.org
@ -63,25 +66,34 @@ Todd Vierling tv@netbsd.org
Vincent Torri vtorri@univ-evry.fr
##
## Add bug reporters, patch Authors you forgot to attribute at commit
## time with 'git commit --author=...' and other non-patch contributers
## time with 'git commit --author=...' and other non-patch contributors
## below:
##
Alex lx_op@orcon.net.nz
Allan McRae allan@archlinux.org
Andreas Schiffler aschiffler@ferzkopp.net
Andreas Stieger Andreas.Stieger@gmx.de
Anton Shterenlikht shterenlikht@par-tec.com
Brent Leback brent.leback@st.com
Camilo La Rota camilo.larota@ens-lyon.fr
Carl D. Roth roth@cse.ucsc.edu
Carlo Cabrera carlo.antonio.cabrera@gmail.com
Chris P. Ross cross@eng.us.uu.net
Christian Rössel christian.roessel@gmx.de
Christopher Hulbert cchgroupmail@gmail.com
Craig Tierney Craig.Tierney@noaa.gov
Dan McMahill mcmahill@mtl.mit.edu
Daniel Richard G. skunk@iSKUNK.ORG
Dave Allured dave.allured@noaa.gov
Dave Yost Dave@Yost.com
Dimitri Papadopoulos dpo@sfr.fr
Donn Washburn n5xwb@comcast.net
Erik van Pienbroek erik-gnu@vanpienbroek.nl
Ethan Mallove ethan.mallove@sun.com
Fred Cox sailorfred@yahoo.com
Frediano Ziglio freddy77@gmail.com
FX Coudert fxcoudert@gcc.gnu.org
Hiroyuki Sato hiroysato@gmail.com
Jakub Bogusz qboosh@pld-linux.org
James Su james.su@gmail.com
Jay Krell jay.krell@cornell.edu
@ -95,11 +107,13 @@ John Wolfe jlw@sco.com
Joseph Beckenbach III jrb3@best.com
Kenneth Albanowski kjahds@kjahds.com
Khem Raj raj.khem@gmail.com
Kirill Makurin maiddaisuki@outlook.com
Kurt D. Zeilenga Kurt@OpenLDAP.Org
Lawrence Velázquez larryv@macports.org
Lionel Landwerlin llandwerlin@gmail.com
Maciej Helminiak dion2@wp.pl
Mahesh Narayanamurthi mahesh.mach@gmail.com
Marc Glisse marc.glisse@inria.fr
Marcel Loose loose@astron.nl
Markus Duft markus.duft@salomon.at
Martin Doucha doucha@integri.cz
@ -119,22 +133,30 @@ Pavel Raiskup praiskup@redhat.com
Paweł Daniluk pawel@bioexploratorium.pl
Peter Fritzsche peter.fritzsche@gmx.de
Peter Jeremy peterjeremy@optushome.com.au
Peter Johansson trojkan@gmail.com
Peter Kjellerstedt peter.kjellerstedt@axis.com
Pádraig Brady P@draigBrady.com
Richard B. Kreckel kreckel@ginac.de
Richard Purdie rpurdie@rpsys.net
Richard W.M. Jones rjones@redhat.com
Rico Tzschichholz ricotz@ubuntu.com
Robert Garron Robert.Garron@Access3000.net
Robert Ögren lists@roboros.com
Robert Yang liezhi.yang@windriver.com
Roberto Bagnara bagnara@cs.unipr.it
Roland Mainz roland.mainz@nrubsig.org
Rudolf Leitgeb r.leitgeb@x-pin.com
Ryan Hill dirtyepic@gentoo.org
Sebastian Wilhelmi wilhelmi@ira.uka.de
Simon Sobisch
Sven Verdoolaege skimo@liacs.nl
Terry D. Dontje Terry.Dontje@Sun.COM
Tobias Stoeckmann tobias@stoeckmann.org
Tom Tromey tromey@cygnus.com
Ulrich Drepper drepper@ipd.info.uni-karlsruhe.de
Václav Zeman vhaisman@gmail.com
Warren Dodge warren.l.dodge@Tektronix.com
Xavier Pianet xavier@xingo.com
Xin Li d@delphij.net
Юрий Андреевич Пухальский pooh@cryptopro.ru
Дилян Палаузов dilyan.palauzov@aegee.org

View File

@ -9,7 +9,7 @@ consistent, portable interface.
Libtool's home page is:
http://www.gnu.org/software/libtool/libtool.html
https://www.gnu.org/software/libtool/libtool.html
See the file [NEWS][] for a description of recent changes to Libtool.
@ -37,12 +37,12 @@ To use Libtool, add the new generic library building commands to your
`Makefile`, `Makefile.in`, or `Makefile.am`. See the documentation for
details.
[install]: http://git.savannah.gnu.org/cgit/libtool.git/tree/INSTALL
[libtool]: http://www.gnu.org/s/libtool
[install]: https://git.savannah.gnu.org/cgit/automake.git/tree/INSTALL
[libtool]: https://www.gnu.org/s/libtool
[libtool list]: mailto:libtool@gnu.org
[news]: http://git.savannah.gnu.org/cgit/libtool.git/tree/NEWS
[notes]: http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/notes.texi
[platforms]: http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS
[news]: https://git.savannah.gnu.org/cgit/libtool.git/tree/NEWS
[notes]: https://git.savannah.gnu.org/cgit/libtool.git/tree/doc/notes.texi
[platforms]: https://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS
2. Reporting Bugs
@ -82,7 +82,7 @@ details see the 'Copyright Assignment' section on our
[Contributing][contribute] webpage.
[bug mailing list]: mailto:bug-libtool@gnu.org
[contribute]: http://www.gnu.org/software/libtool/contribute.html
[contribute]: https://www.gnu.org/software/libtool/contribute.html
3. The Test Suite
@ -153,7 +153,7 @@ send the file `tests/testsuite.log` to the [bug mailing list][].
To reduce load on the main server, please use one of the mirrors
listed at:
http://www.gnu.org/order/ftp.html
https://www.gnu.org/order/ftp.html
* Alpha quality pre-releases of GNU Libtool, also with detached
signature files are available from:
@ -162,10 +162,14 @@ send the file `tests/testsuite.log` to the [bug mailing list][].
and some of the mirrors listed at:
http://www.gnu.org/order/ftp.html
https://www.gnu.org/order/ftp.html
* The master libtool repository is stored in git.
Development and testing is primarily done on the 'development' git
branch. 'master' is used for release ready code. Periodically,
commits are cherry-picked from 'development' to 'master'.
If you are a member of the savannah group for GNU Libtool, a writable
copy of the libtool repository can be obtained by:
@ -174,7 +178,7 @@ send the file `tests/testsuite.log` to the [bug mailing list][].
If you are behind a firewall that blocks the git protocol, you may
find it useful to use
git config --global url.http://git.sv.gnu.org/r/.insteadof \
git config --global url.https://git.sv.gnu.org/r/.insteadof \
git://git.sv.gnu.org/
to force git to transparently rewrite all savannah git references to
@ -191,15 +195,15 @@ send the file `tests/testsuite.log` to the [bug mailing list][].
co -d libtool HEAD
* Before you can build from git, you need to bootstrap. This requires:
- Autoconf 2.62 or later
- Autoconf 2.64 or later
- Automake 1.11.1 or later
- Help2man 1.29 or later
- Xz 4.999.8beta or later (from [tukaani.org](http://tukaani.org/xz))
- Xz 4.999.8beta or later (from [tukaani.org](https://tukaani.org/xz))
- Texinfo 4.8 or later
- Any prerequisites of the above (such as m4, perl, tex)
Note that these bootstrapping dependencies are much stricter than
those required to use a destributed release for your own packages.
those required to use a distributed release for your own packages.
After installation, GNU Libtool is designed to work either standalone,
or optionally with:
- Autoconf 2.59 or later
@ -241,7 +245,7 @@ revision hash string in hexadecimal appended to all of that:
2.4.2.418.3-30eaa
--
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
Copyright (C) 2004-2010, 2015-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004

12
TODO
View File

@ -114,7 +114,7 @@ GNU Libtool
* Need to finalize the documentation, and give a specification of
'.la' files so that people can depend on their format. This would be
a good thing to put before the maintainance notes.
a good thing to put before the maintenance notes.
* Document the installed 'libtool' and its limitations clearly (maybe implement
--disable-script-install as well). Or, even better, remove its limitations.
@ -124,10 +124,6 @@ GNU Libtool
2.2. test suite
---------------
* Rewrite the whole thing in Autotest. This will enable us to remove
all the tests/*demo noise, and duplication; and thus speed up bootstrap
and make writing new tests a whole lot more pleasant.
* We should include tests with reloadable objects in the testsuite.
* Write a test case for linkage with gnu ld scripts (per 2004-08-25 patch
@ -285,7 +281,7 @@ GNU Libtool
cygwin, or unix. Worse, you can't really do a set of
{msys|cygwin|unix}_to_central_unixish that isn't simply a no-op -- because
(A) they already are all unixish, and (B) what tool would you use? How would
the later to_mingw function "know" how to covert this new representation to
the later to_mingw function "know" how to convert this new representation to
mingw. So, {msys|cygwin|unix}_to_central_unixish would simply be a no-op
and central_unixish_to_mingw would still do all the work (with its guts
customized based on $build).
@ -303,7 +299,7 @@ GNU Libtool
So...I don't think it makes much difference *right now* in the amount of
code required, or the number of functions implemented. At some point in the
future we might want to generalize to an M+N scheme. For the existing win32
$hosts, all of the funtionality would be on "one side" of the 2-step
$hosts, all of the functionality would be on "one side" of the 2-step
conversion; the "other side" would be noop. But we won't worry about the
implicit quadratic complexity of the existing scheme for now.
@ -329,7 +325,7 @@ GNU Libtool
it easier to add new platforms.
--
Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004

1122
bootstrap

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
# bootstrap.conf (GNU Libtool) version 2014-11-18
#
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# Copyright (C) 2010-2019, 2021-2026 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2010
# This is free software; see the source for copying conditions. There is NO
@ -17,14 +17,11 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
## -------------------------------- ##
## User overrideable command paths. ##
## User overridable command paths. ##
## -------------------------------- ##
: "${MAKE=make}"
@ -44,23 +41,27 @@ checkout_only_file=HACKING
# List of programs (and minimum versions) required to bootstrap, maintain
# and release Libtool.
buildreq="
help2man 1.29 http://www.gnu.org/s/help2man
make 3.81 http://www.gnu.org/s/make
makeinfo 4.8 http://www.gnu.org/s/texinfo
xz 4.999.8beta http://tukaani.org/xz
help2man 1.29 https://www.gnu.org/s/help2man
make 3.81 https://www.gnu.org/s/make
makeinfo 4.8 https://www.gnu.org/s/texinfo
xz 4.999.8beta https://tukaani.org/xz
"
# Instructions on how to install packages in $buildreq.
buildreq_readme=HACKING
# Non-default gnulib directory options.
local_gl_dir=gl
# Non-default gnulib directories.
local_gl_path=gl:gl-mod/bootstrap
# We don't need the whole copy of gnulib.
gnulib_clone_since=2019-02-19
# Additional gnulib-tool options to use.
gnulib_tool_options=$gnulib_tool_options"
--avoid=dummy
--libtool
--macro-prefix=GL
--with-tests --tests-base=gnulib-tests
"
# gnulib modules used by this package.
@ -81,6 +82,10 @@ gnulib_modules='
update-copyright
'
gnulib_git_submodules='
gl-mod/bootstrap
'
# Extra gnulib files that are not in modules, which override files of
# the same name installed by other bootstrap tools.
gnulib_non_module_files=$gnulib_non_module_files'
@ -260,13 +265,18 @@ func_add_hook func_fini libtool_readme_release_package_substitutions
# not changing the timestamp of config-h.in unless the file contents
# are updated. Unfortunately config-h.in depends on aclocal.m4, which
# *is* updated, so running 'libtoolize --ltdl=. && configure && make'
# causes autoheader to be called... undesireable for users that do not
# have it! Fudge the timestamp to prevent that:
# causes autoheader to be called... undesirable for users that do not
# have it! Fudge the timestamp to prevent that. But only fudge it as
# much as configure since configure depends on config-h.in and we don't
# want to require autoconf either.
libtool_fudge_timestamps ()
{
$debug_cmd
sleep 2 && touch libltdl/config-h.in
(
cd libltdl
touch -r configure config-h.in
)
}
func_add_hook func_fini libtool_fudge_timestamps
@ -291,13 +301,8 @@ func_add_hook func_fini libtool_cleanup
libtool_check_for_bogus_macros ()
{
$debug_cmd
$opt_dry_run ||
for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do
if grep $macro aclocal.m4 libltdl/aclocal.m4; then
func_fatal_error "Bogus $macro macro contents in an aclocal.m4 file"
else :; fi
done
$require_build_aux
$build_aux/no-bogus-m4-defines || exit 1
}
func_add_hook func_fini libtool_check_for_bogus_macros

View File

@ -1,4 +1,5 @@
/announce-gen
/ar-lib
/compile
/depcomp
/do-release-commit-and-tag

View File

@ -1,7 +1,7 @@
#! /bin/sh
# edit-readme-alpha - edit README file for alpha releases
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# Copyright (C) 2010-2019, 2021-2026 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2010
#
# This file is part of GNU Libtool.
@ -17,13 +17,10 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
# We used to maintain separate (but extremely similiar!) README and
# We used to maintain separate (but extremely similar!) README and
# README.alpha files, and had 'make dist' include the right one in a
# distribution based on the contests of '$(VERSION)'.
#
@ -62,16 +59,18 @@ for file in "$@"; do
continue
}
# Did we already in-place edited this file?
matched=`sed -n -e '/^This is an alpha testing release/,/a consistent, portable interface\.$/p' $file \
|wc -l |sed 's|^ *||'`
test 3 = "$matched" && {
echo "$progname: $file already edited" >&2
continue
}
# Make sure the paragraph we are matching has not been edited since
# this script was written.
matched=`sed -n -e '/^\[GNU Libtool\]\[libtool\] is/,/^consistent, portable interface\.$/p' $file \
|wc -l |sed 's|^ *||'`
# Unless, of course, it was edited by this script already.
test 3 = "$matched" \
|| matched=`sed -n -e '/^This is an alpha testing release/,/a consistent, portable interface\.$/p' $file \
|wc -l |sed 's|^ *||'`
test 3 = "$matched" \
|| func_fatal_error "$file format has changed, please fix '$0'"
@ -79,7 +78,7 @@ for file in "$@"; do
trap 'x=$?; rm $file.T; exit $x' 1 2 13 15
# Edit the first paragraph to be suitable for an alpha release.
sed -n '/^\[GNU Libtool\]\[libtool\] is/,/^consistent, portable interface\.$/c\
sed '/^\[GNU Libtool\]\[libtool\] is/,/^consistent, portable interface\.$/c\
This is an alpha testing release of [GNU Libtool][libtool], a generic\
library support script. [Libtool][] hides the complexity of using shared\
libraries behind a consistent, portable interface.' $file > $file.T

View File

@ -4,7 +4,7 @@
# or Copyright-paperwork-exempt lines in the commit message.
# Written by Gary V. Vaughan <gary@gnu.org>, 2011
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2011-2019, 2021-2025 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@ -23,7 +23,7 @@
: ${SED="sed"}
test set = ${ECHO+'set'} = set || ECHO='printf %s\n'
test "${ECHO+set}" = set || ECHO='printf %s\n'
basename='s|^.*/||'

View File

@ -2,6 +2,9 @@
# option. It specifies what changes to make to each given SHA1's commit
# log and metadata, using Perl-eval'able expressions.
0f84217752fe50155f1f00fd14efbbbbdfaaed24
s|Subjecŧ|Subject|
8c2154fb4e80967b50b98c7327ff1465d3315f3f
# Date: Tue Nov 18 16:14:35 2014 +0000
# Fox a resent smelling mystique.
@ -73,163 +76,163 @@ s|\n\n|\n|g
## branch.
# Date: Tue Oct 2 21:05:53 2012 +0700
4440d6523bf9c668720f9ffa66fb89e91912a504
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n\n|
0fc275469ef020177d8dff2c041456f6b6155537
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
692bc68dc9a580647a164d6338ca7e13cb593966
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
6cb0d0d771bc1e3be402929b900000ca7a8a16d4
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
d50e123595d80b5582d0663ad50e3454051c482d
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
e0f66dc54d2f7906a2513c68d76362be4bcbbef3
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
ae68608314993e81836257ac1eec449256decd53
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
d576fa9da144f2e9ab14337c9590d4abfdea985f
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
3cbc0e26f0a7f0bbea559912c3da920b4ead8e5e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
83d52fd6d2039c048f731133bec0ae8a1bf9382d
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
1e70622d7c127b4dd90b3a5b0650d323ec2305fc
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
1fcb9bc4e4b7b7166a6f45da633f813faee6e00f
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
bf6aa3082089d12bf4500b469c096263823a75b4
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
43acd6749a29f079452cfb70b6c6e1c8f1469128
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
8c6e33197e36463cb7fcf5d575a53c3f414ec4ff
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
7db681a2696c75dc6c55261ea8fd11f92e42db2b
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
59f8a3a6e1a26d501e5865f7611d8828aac5579c
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
f2a640f7e03e5dcf1510833a0e1e4991032b5f96
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
90529a55ef40653051730d3c20203fa2ad5e8f7f
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
d702946c65b309c389ae717a4d2d6fe158c3ee5f
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
8392cd263e847a22b2409c35bf03d7c9e68d2cd0
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
430e782755bbe8061a5e7f9d856b33e3b7da3ac8
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
d60b4387c178100b0bd3835c61d0f4771330bf6a
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
47a889a4ca2009e2147fa5b2f95baefe1dca8288
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
8f975a1368594126e37d85511f1f96164e466d93
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
f8a4b90f9a712f47b7627d2cf96eed74825df91f
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
b25625e6b25427dba80051b2924060b1e84ea73e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
3467227ccb6c99f4c2122b9fb3fa67d54b5bd54b
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
8bfac9e3e82646868907aede4ebe4deb158a2e8a
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
baffe661910947df0dcd5a5bbd6512fc0bce59b9
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
822881fe3c69ca474b8e13d60243dd9c1a1c3fea
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
f7f249a0e6b5093b8752f1ba863345bfcd5a237e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
c03789b8ee33f136d3bbd7f7a111ad863bb4c7e8
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
78385ffd8af73b927549c3596da67233f2f92f0e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
7d25536e80b68042a6d999c11a0c5c9dc948f82e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
7a2a8f32bb83d6b16db8436b530ec5e88fbd0751
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
c5dec32e37e90ce46813efe7dfe8c5500cc55bbc
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
a2445f0fdbeaa72c18a893714e4437ea01faa08a
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
0c953ba5cc71bd1de615df28fbf16e27be62244e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
f32a760fbd40796be0b7e3be41226a82db1748d4
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
a80878742dfd0f5127c1ddc5f803fab980eb816a
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
d56683630a6415e59f1be7a6540c4733e9671bd8
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
ca821436009a93c2e8f3c5ce07ed23d90bbba49e
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
c7d7e46fbea7d6249680da71ecda1d84bdec858a
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
156a851bc5d758f2d4d7fd89cef678ae72f35e77
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
87c4cffb19cf5ba8dc088e0ad357e5c3d4be2433
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
c5230035e5df31976285bf36141d89236416230d
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
cb4ed2559e89354ea846a686543206d3445ea5ec
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
9f3cec5b2ec476bd4fd978c1e23398b25d36cd2f
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
5f27eeb0a37f15b32ccb1b97b2ed9022f5df9a60
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
013c91874e974543d2f58843c1e839ba102d6ee0
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
006695fed2e9cd10664c97c69880a82545dde1ef
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
ff3b32aed7db925a7390d92ffede055b4c8ccf18
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
d43b40113ec1e8289e48d77f00e8947f2fd98fd4
# Date: Tue Oct 2 21:02:16 2012 +0700
@ -252,7 +255,7 @@ cf86b942c893da74d6e9faf0125364a9f114ea01
# Date: Tue Aug 21 21:06:45 2012 -0500
# Add category tag to summary line.
s|\n(Add )|\nlibtool: $1|;
# Spell Report attribtution correctly.
# Spell Report attribution correctly.
s|Thanks to (.*) for .*\n|Reported by $1.\n|
9b726f35db98da01a7edaf143788cba2c2ae900a
@ -295,7 +298,7 @@ s|\n(Improve )|\nlibtool: $1|
9333e74fc7b76a11ed04a19343eb5dd75a1035f3
# Date: Sun Feb 19 16:21:00 2012 -0600
# Elide duplicate log entries.
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
c0c49f289f22ae670066657c60905986da3b555f
# Date: Sun Feb 19 15:33:48 2012 -0600
@ -335,7 +338,7 @@ s|\n(Support )|\nlibtool: $1|
962aa919f51cdf8e2cee4fb2d1d9bafa34d50887
# Date: Fri Nov 25 14:53:42 2011 +0700
# Elide duplicate log entries.
s|$|Omit-from-ChangeLog: Yes|
s|\n\n|\nOmit-from-ChangeLog.\n|
11d16ab06c36948c053c507f5f9e06ff3de221c7
# Date: Fri Nov 25 14:39:57 2011 +0700

File diff suppressed because it is too large Load Diff

58
build-aux/no-bogus-m4-defines Executable file
View File

@ -0,0 +1,58 @@
#! /bin/sh
# no-bogus-m4-defines - detect wrong m4 definitions
# -------------------------------------------------
# Try to catch the case where 'aclocal' pulls installed libtool
# macro file contents from another version of libtool into the
# current package 'aclocal.m4'. Currently used by 'make dist'
# and by ./bootstrap (bootstrap.conf).
#
# Copyright (C) 2015-2019, 2021-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
# Please report bugs or propose patches to bug-libtool@gnu.org.
. `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh
# source this for "GNU m4" detection methods
. `echo "$0" |${SED-sed} 's|[^/]*$||'`/extract-trace
$require_gnu_m4
bogus_macros='LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL'
bogus_macros_grep=''
for macro in $bogus_macros; do
func_append bogus_macros_grep "/$macro/p;"
done
clean_false_alarms="pushdef(\`AC_BEFORE', \`')"
bogus_macros_check_output=`$ECHO "$clean_false_alarms" \
|$M4 - aclocal.m4 libltdl/aclocal.m4 \
|$SED -n "$bogus_macros_grep"`
exit_val=0
for macro in $bogus_macros; do
case $bogus_macros_check_output in
*$macro*)
func_error "Bogus $macro macro definition in an aclocal.m4 file"
exit_val=1
;;
esac
done
exit $exit_val

56
cfg.mk
View File

@ -1,6 +1,6 @@
# cfg.mk -- Configuration for maintainer-makefile
#
# Copyright (c) 2011-2014 Free Software Foundation, Inc.
# Copyright (c) 2011-2019, 2021-2026 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2011
#
# This file is part of GNU Libtool.
@ -16,15 +16,20 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downlodad from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Boston, # MA 02111-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
update-copyright-env := UPDATE_COPYRIGHT_FORCE=1 UPDATE_COPYRIGHT_USE_INTERVALS=1
# Set format of NEWS
old_NEWS_hash := e524180c3db06628ad97e3fcb35f6a4b
update-copyright: update-release-year
update-release-year:
$(AM_V_GEN)year=`date +%Y`; \
sed -i \
-e "/_LT_COPY/,+1 { /Copyright/ {s:[0-9][0-9][0-9][0-9]:$$year:} }" \
-e "/^Copyright/ {s:[0-9][0-9][0-9][0-9]:$$year:} " \
m4/libtool.m4
# Set format of NEWS.
old_NEWS_hash := 6b55a9c35959c8c4918110ff839bff7d
manual_title = Portable Dynamic Shared Object Management
@ -36,8 +41,8 @@ else
announcement_Cc_ = autotools-announce@gnu.org, $(PACKAGE_BUGREPORT)
endif
# Don't syntax check the mail subdirectory.
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^mail/
# Don't syntax check the mail subdirectory or patches to gnulib itself.
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^(mail|gl)/
local-checks-to-fix = \
sc_require_config_h \
@ -47,11 +52,13 @@ local-checks-to-skip = \
$(local-checks-to-fix) \
sc_GPL_version \
sc_cast_of_x_alloc_return_value \
sc_indent \
sc_prohibit_always-defined_macros \
sc_prohibit_always_true_header_tests \
sc_prohibit_strncpy \
sc_trailing_blank \
sc_unmarked_diagnostics
sc_unmarked_diagnostics \
sc_codespell
# GPL_version: checks for GPLv3, which we don't use
# cast_of_x_alloc_return_value:
@ -70,9 +77,9 @@ local-checks-to-skip = \
# Check for correct usage of $cc_basename in libtool.m4.
sc_libtool_m4_cc_basename:
@sed -n '/case \$$cc_basename in/,/esac/ { \
@$(SED) -n "/case \\\$$cc_basename in/,/esac/ { \
/^[ ]*[a-zA-Z][a-zA-Z0-9+]*[^*][ ]*)/p; \
}' '$(srcdir)/$(macro_dir)/libtool.m4' | grep . && { \
}" '$(srcdir)/$(macro_dir)/libtool.m4' | grep . && { \
msg="\$$cc_basename matches should include a trailing '*'." \
$(_sc_say_and_exit) } || :
@ -112,6 +119,13 @@ sc_prohibit_bracket_as_test:
halt="use 'if test' instead of 'if ['" \
$(_sc_search_regexp)
# : ${foo=`bar`} is not perfectly portable (see Shellology in autoconf's manual)
exclude_file_name_regexp--sc_prohibit_command_in_subst = ^cfg.mk$$
sc_prohibit_command_in_subst:
@prohibit='\$$\{[^`}]*`[^`]*`[^}]*}' \
halt='do not use `command` in $${ } substitution`' \
$(_sc_search_regexp)
# Check for quotes within backquotes within quotes "`"bar"`"
exclude_file_name_regexp--sc_prohibit_nested_quotes = ^cfg.mk$$
sc_prohibit_nested_quotes:
@ -135,12 +149,12 @@ sc_prohibit_set_dummy_without_shift:
@files=$$($(VC_LIST_EXCEPT)); \
if test -n "$$files"; then \
grep -nE '(set dummy|shift)' $$files | \
sed -n '/set[ ][ ]*dummy/{ \
$(SED) -n "/set[ ][ ]*dummy/{ \
/set.*dummy.*;.*shift/d; \
N; \
/\n.*shift/D; \
p; \
}' | grep -n . && { \
}" | grep -n . && { \
msg="use 'shift' after 'set dummy'" \
$(_sc_say_and_exit) } || :; \
else :; \
@ -176,7 +190,8 @@ sc_prohibit_test_binary_operators:
exclude_file_name_regexp--sc_prohibit_test_dollar = ^cfg.mk$$
sc_prohibit_test_dollar:
@prohibit='test[ ]+(![ ])?(-.[ ]+)?X?\$$[^?#]' \
halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \
exclude='test \$${[A-Za-z_][A-Za-z0-9_]+\+y}' \
halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \
$(_sc_search_regexp)
# Never use test -e.
@ -208,11 +223,11 @@ sc_prohibit_test_const_follows_var:
exclude_file_name_regexp--sc_require_function_nl_brace = (^HACKING|\.[ch]|\.texi)$$
sc_require_function_nl_brace:
@for file in $$($(VC_LIST_EXCEPT)); do \
sed -n '/^func_[^ ]*[ ]*(/{ \
$(SED) -n "/^func_[^ ]*[ ]*(/{ \
N; \
/^func_[^ ]* ()\n{$$/d; \
p; \
}' $$file | grep -E . && { \
}" $$file | grep -E . && { \
msg="found malformed function_definition in $$file" \
$(_sc_say_and_exit) } || :; \
done
@ -237,7 +252,8 @@ define _sc_search_regexp_or_exclude
fi || :;
endef
exclude_file_name_regexp--sc_useless_braces_in_variable_derefs = /cvsu$$
exclude_file_name_regexp--sc_useless_braces_in_variable_derefs = \
test-funclib-quote.sh$$
sc_useless_braces_in_variable_derefs:
@prohibit='\$${[0-9A-Za-z_]+}[^0-9A-Za-z_]' \
halt='found spurious braces around variable dereference' \
@ -257,11 +273,9 @@ sc_useless_quotes_in_case:
$(_sc_search_regexp)
# List syntax-check exempted files.
exclude_file_name_regexp--sc_error_message_uppercase = \
^$(_build-aux)/cvsu$$
exclude_file_name_regexp--sc_prohibit_strcmp = \
^doc/libtool.texi$$
exclude_file_name_regexp--sc_prohibit_test_minus_ao = \
^m4/libtool.m4$$
exclude_file_name_regexp--sc_space_tab = \.diff$$
exclude_file_name_regexp--sc_space_tab = (\.diff|test-funclib-quote.sh)$$
exclude_file_name_regexp--sc_trailing_blank-non-rfc3676 = \.diff$$

View File

@ -1,7 +1,7 @@
# Process this file with autoconf to create configure. -*- autoconf -*-
# Copyright (C) 2001, 2004-2005, 2008, 2010-2014 Free Software
# Foundation, Inc.
# Copyright (C) 2001, 2004-2005, 2008, 2010-2019, 2021-2026 Free
# Software Foundation, Inc.
# Written by Gary V. Vaughan, 2001
#
# This file is part of GNU Libtool.
@ -17,14 +17,11 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AC_PREREQ(2.62)
AC_PREREQ(2.64)
dnl Oldest automake required for bootstrap is below in AM_INIT_AUTOMAKE.
@ -35,7 +32,7 @@ AC_INIT([GNU Libtool],
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[bug-libtool@gnu.org])
m4_ifndef([AC_PACKAGE_URL],
[AC_SUBST([PACKAGE_URL], [http://www.gnu.org/s/libtool/])])
[AC_SUBST([PACKAGE_URL], [https://www.gnu.org/s/libtool/])])
# Remove this when a released Autoconf is capable of bootstrapping
# Libtool without it (probably after autoconf-2.70).
@ -81,6 +78,13 @@ AS_BOX([Configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION])
echo
## ------------ ##
## Shell tools. ##
## ------------ ##
AC_PROG_GNU_M4
## ------------------------ ##
## Automake Initialisation. ##
## ------------------------ ##
@ -104,7 +108,7 @@ AB_INIT([$autobuild_mode])
dnl Make sure config.status is regenerated when the version timestamp changes
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(srcdir)/.version'])
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(dotversion)'])
## ------------------------------- ##
@ -148,6 +152,9 @@ _LTDL_SETUP
# Enable all the language support we can
LT_LANG(C++)
LT_LANG(Objective-C)
LT_LANG(Objective-C++)
LT_LANG(Microsoft Macro Assembler)
LT_LANG(Fortran 77)
LT_LANG(Fortran)
LT_LANG(Go)
@ -159,7 +166,7 @@ LT_LANG(Windows Resource)
AC_SUBST([to_host_file_cmd])dnl
AC_SUBST([to_tool_file_cmd])dnl
# Propagate --with-aix-soname option to the testsuite.
# Propagate --enable-aix-soname option to the testsuite.
AC_SUBST([with_aix_soname])dnl
## ---------------------- ##
@ -175,5 +182,5 @@ AM_MISSING_PROG([HELP2MAN], [help2man])
## -------- ##
## Outputs. ##
## -------- ##
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([Makefile gnulib-tests/Makefile])
AC_OUTPUT

1
doc/.gitignore vendored
View File

@ -5,3 +5,4 @@
/manual
/notes.txt
/version.texi
/gendocs_template_min

File diff suppressed because it is too large Load Diff

View File

@ -26,6 +26,12 @@ For C++ code with templates, it may be necessary to specify the way the compiler
will generate the instantiations. For Portland pgCC version5, use
@code{CXX='pgCC --one_instantiation_per_object'} and avoid parallel @command{make}.
@item
For C++ code, it may be necessary to specify a library if it is a dependency
of a link/compile flag. For example in GNU G++, if you want to use
@code{-fsanitize=address} you need to specify the @code{-lasan} library,
like so: @code{g++ -o libx.la -fsanitize=address -lasan -rpath [...]}.
@item
On Darwin, for C++ code with templates you need two level shared libraries.
Libtool builds these by default if @env{MACOSX_DEPLOYMENT_TARGET} is set to
@ -68,13 +74,41 @@ to use autoconf-mode, which is distributed with GNU Emacs 21, Autoconf itself,
and all recent releases of XEmacs.
@item
When building on some GNU/Linux systems for multilib targets
@command{libtool} sometimes guesses the wrong paths that the linker
and dynamic linker search by default. If this occurs, you may override
libtool's guesses at @command{configure} time by setting the
@command{autoconf} cache variables
@code{lt_cv_sys_lib_search_path_spec} and
@code{lt_cv_sys_lib_dlsearch_path_spec} respectively to the correct search
paths.
When building on some GNU/Linux systems for multilib targets @command{libtool}
sometimes guesses the wrong paths that the linker and dynamic linker search by
default. If this occurs for the dynamic library path, you may use the
@code{LT_SYS_LIBRARY_PATH} environment variable to adjust. Otherwise, at
@command{configure} time you may override libtool's guesses by setting the
@command{autoconf} cache variables @code{lt_cv_sys_lib_search_path_spec} and
@code{lt_cv_sys_lib_dlsearch_path_spec} respectively.
@item
For many GNU/Linux systems, the shared library cache is not updated after a
@command{make install}. Instead, the user will need to manually execute
@command{ldconfig 'LIBDIR'} to locate newly installed libraries. Users
should consult a system administrator as this should be done with great
care. Here are some considerations:
@itemize
@item
Libtool is designed to be portable to many different operating systems, and
these OSs behave in various ways. Some OSs will find a new library
automatically if it is installed in the existing configured library paths.
@item
The library installed might not ever be intended to be used by the currently
executing OS because it is part of new distribution builds.
@item
Sometimes libraries are installed privately, using hard-coded run-paths in
their dependent binaries. This is very common when a different version of
the software is to be run than the OS is designed to support.
@end itemize
@item
When using the MSVC toolchain, users should set Fortran environment variables
to the following F77="no" and FC="no". This should avoid possible issues for
symbols not being found when linking libltdl.
@end itemize

1
gl-mod/bootstrap Submodule

@ -0,0 +1 @@
Subproject commit bfdcc277cd237fde115d3aa972add7608d348b90

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,20 @@
--- ./gnulib/build-aux/do-release-commit-and-tag 2013-01-26 16:46:26.000000000 +1300
+++ gl/build-aux/do-release-commit-and-tag 2013-10-28 20:21:38.000000000 +1300
--- ./gnulib/build-aux/do-release-commit-and-tag
+++ gl/build-aux/do-release-commit-and-tag
@@ -5,6 +5,9 @@
# will serve to identify the release, so apply a signed tag to it as well.
VERSION=2012-08-01.09 # UTC
VERSION=2018-03-07.03 # UTC
+# Make sure we've evaluated scripts we depend on.
+test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh
+
# Note: this is a bash script (could be zsh or dash)
# Copyright (C) 2009-2013 Free Software Foundation, Inc.
# Copyright (C) 2009-2024 Free Software Foundation, Inc.
@@ -125,10 +128,8 @@
|| die 'failed to determine previous version number from .prev-version'
# Verify that $ver is sensible (> .prev-version).
-case $(printf "$prev_ver\n$ver\n"|sort -V -u|tr '\n' ':') in
-case $(printf "%s\n%s\n" "$prev_ver" "$ver"|sort -V -u|tr '\n' ':') in
- "$prev_ver:$ver:") ;;
- *) die "invalid version: $ver (<= $prev_ver)";;
-esac

View File

@ -1,420 +0,0 @@
#! /bin/sh
# Extract macro arguments from autotools input with GNU M4.
# Written by Gary V. Vaughan, 2010
#
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# Make sure we've evaluated scripts we depend on.
test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh
test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser
# Set a version string.
scriptversion=2014-01-04.01; # UTC
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Please report bugs or propose patches to gary@gnu.org.
## ------ ##
## Usage. ##
## ------ ##
# Run './extract-trace --help' for help with using this script from the
# command line.
#
# Or source first 'options-parser' and then this file into your own
# scripts in order to make use of the function and variable framework
# they define, and also to avoid the overhead of forking to run this
# script in its own process on every call.
## ----------------- ##
## Helper functions. ##
## ----------------- ##
# This section contains the helper functions used by the rest of
# 'extract-trace'.
# func_autoconf_configure MAYBE-CONFIGURE-FILE
# --------------------------------------------
# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current
# directory that contains an uncommented call to AC_INIT.
func_autoconf_configure ()
{
$debug_cmd
_G_sed_no_comment='
s|#.*$||
s|^dnl .*$||
s| dnl .*$||'
_G_ac_init=
# If we were passed a genuine file, make sure it calls AC_INIT.
test -f "$1" \
&& _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |$GREP AC_INIT`
# Otherwise it is not a genuine Autoconf input file.
test -n "$_G_ac_init"
_G_status=$?
test 0 -ne "$_G_status" \
&& func_verbose "'$1' not using Autoconf"
(exit $_G_status)
}
# func_find_tool ENVVAR NAMES...
# ------------------------------
# Search for a required program. Use the value of ENVVAR, if set,
# otherwise find the first of the NAMES that can be run (i.e.,
# supports --version). If found, set ENVVAR to the program name,
# die otherwise.
func_find_tool ()
{
$debug_cmd
_G_find_tool_envvar=$1
shift
_G_find_tool_names=$@
eval "_G_find_tool_res=\$$_G_find_tool_envvar"
if test -n "$_G_find_tool_res"; then
_G_find_tool_error_prefix="\$$find_tool_envvar: "
else
for _G_prog
do
if func_tool_version_output $_G_prog >/dev/null; then
_G_find_tool_res=$_G_prog
break
fi
done
fi
if test -n "$_G_find_tool_res"; then
func_tool_version_output >/dev/null $_G_find_tool_res "\
${_G_find_tool_error_prefix}Cannot run '$_G_find_tool_res --version'"
# Make sure the result is exported to the environment for children
# to use.
eval "$_G_find_tool_envvar=\$_G_find_tool_res"
eval "export $_G_find_tool_envvar"
else
func_error "\
One of these is required:
$_G_find_tool_names"
fi
}
# func_tool_version_output CMD [FATAL-ERROR-MSG]
# ----------------------------------------------
# Attempt to run 'CMD --version', discarding errors. The output can be
# ignored by redirecting stdout, and this function used simply to test
# whether the command exists and exits normally when passed a
# '--version' argument.
# When FATAL-ERROR-MSG is given, then this function will display the
# message and exit if running 'CMD --version' returns a non-zero exit
# status.
func_tool_version_output ()
{
$debug_cmd
_G_cmd=$1
_G_fatal_error_msg=$2
# Some tools, like 'git2cl' produce thousands of lines of output
# unless stdin is /dev/null - in that case we want to return
# successfully without saving all of that output. Other tools,
# such as 'help2man' exit with a non-zero status when stdin comes
# from /dev/null, so we re-execute without /dev/null if that
# happens. This means that occasionally, the output from both calls
# ends up in the result, but the alternative would be to discard the
# output from one call, and hope the other produces something useful.
{ $_G_cmd --version </dev/null || $_G_cmd --version; } 2>/dev/null
_G_status=$?
test 0 -ne "$_G_status" && test -n "$_G_fatal_error_msg" \
&& func_fatal_error "$_G_fatal_error_msg"
(exit $_G_status)
}
## -------------------- ##
## Resource management. ##
## -------------------- ##
# This section contains definitions for functions that each ensure a
# particular resource (a file, or a non-empty configuration variable for
# example) is available, and if appropriate to extract default values
# from pertinent package files. Where a variable already has a non-
# empty value (as set by the package's 'bootstrap.conf'), that value is
# used in preference to deriving the default. Call them using their
# associated 'require_*' variable to ensure that they are executed, at
# most, once.
#
# It's entirely deliberate that calling these functions can set
# variables that don't obey the namespace limitations obeyed by the rest
# of this file, in order that that they be as useful as possible to
# callers.
# require_configure_ac
# --------------------
# Ensure that there is a 'configure.ac' or 'configure.in' file in the
# current directory that contains an uncommented call to AC_INIT, and
# that '$configure_ac' contains its name.
require_configure_ac=func_require_configure_ac
func_require_configure_ac ()
{
$debug_cmd
test -z "$configure_ac" \
&& func_autoconf_configure configure.ac && configure_ac=configure.ac
test -z "$configure_ac" \
&& func_autoconf_configure configure.in && configure_ac=configure.in
test -z "$configure_ac" \
|| func_verbose "found '$configure_ac'"
require_configure_ac=:
}
# require_gnu_m4
# --------------
# Search for GNU M4, and export it in $M4.
require_gnu_m4=func_require_gnu_m4
func_require_gnu_m4 ()
{
$debug_cmd
test -n "$M4" || {
# Find the first m4 binary that responds to --version.
func_find_tool M4 gm4 gnum4 m4
}
test -n "$M4" || func_fatal_error "\
Please install GNU M4, or 'export M4=/path/to/gnu/m4'."
func_verbose "export M4='$M4'"
# Make sure the search result is visible to subshells
export M4
require_gnu_m4=:
}
## --------------- ##
## Core functions. ##
## --------------- ##
# This section contains the high level functions used when calling this
# file as a script. 'func_extract_trace' is probably the only one that you
# won't want to replace if you source this file into your own script.
# func_extract_trace MACRO_NAMES [FILENAME]...
# --------------------------------------------
# set '$func_extract_trace_result' to a colon delimited list of arguments
# to any of the comma separated list of MACRO_NAMES in FILENAME. If no
# FILENAME is given, then '$configure_ac' is assumed.
func_extract_trace ()
{
$debug_cmd
$require_configure_ac
$require_gnu_m4
_G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'`
_G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'`
_G_macros="$1"; shift
test $# -gt 0 || {
set dummy $configure_ac
shift
}
# Generate an error if the first file is missing
<"$1"
# Sadly, we can't use 'autom4te' tracing to extract macro arguments,
# because it complains about things we want to ignore at bootstrap
# time - like missing m4_include files; AC_PREREQ being newer than
# the installed autoconf; and returns nothing when tracing
# 'AM_INIT_AUTOMAKE' when aclocal hasn't been generated yet.
#
# The following tries to emulate a less persnickety version of (and
# due to not having to wait for Perl startup on every invocation,
# it's probably faster too):
#
# autom4te --language=Autoconf --trace=$my_macro:\$% "$@"
#
# First we give a minimal set of macro declarations to M4 to prime
# it for reading Autoconf macros, while still providing some of the
# functionality generally used at m4-time to supply dynamic
# arguments to Autocof functions, but without following
# 'm4_s?include' files.
_G_mini='
# Initialisation.
m4_changequote([,])
m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))])
m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])])
# Disable these macros.
m4_undefine([m4_dnl])
m4_undefine([m4_include])
m4_undefine([m4_m4exit])
m4_undefine([m4_m4wrap])
m4_undefine([m4_maketemp])
# Copy and rename macros not handled by "m4 --prefix".
m4_define([dnl], [m4_builtin([dnl])])
m4_copy([m4_define], [m4_defun])
m4_rename([m4_ifelse], [m4_if])
m4_ifdef([m4_mkstemp], [m4_undefine([m4_mkstemp])])
m4_rename([m4_patsubst], [m4_bpatsubst])
m4_rename([m4_regexp], [m4_bregexp])
# "m4sugar.mini" - useful m4-time macros for dynamic arguments.
# If we discover packages that need more m4 macros defined in
# order to bootstrap correctly, add them here:
m4_define([m4_bmatch],
[m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2],
[m4_if(m4_bregexp([$1], [$2]), -1,
[$0([$1], m4_shift3($@))], [$3])])])
m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])])
m4_define([m4_ifset],
[m4_ifdef([$1], [m4_ifval(m4_defn([$1]), [$2], [$3])], [$3])])
m4_define([m4_require], [$1])
m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))])
# "autoconf.mini" - things from autoconf macros we care about.
m4_copy([m4_defun], [AC_DEFUN])
# Dummy definitions for the macros we want to trace.
# AM_INIT_AUTOMAKE at least produces no trace without this.
'
_G_save=$IFS
IFS=,
for _G_macro in $_G_macros; do
IFS=$_G_save
func_append _G_mini "AC_DEFUN([$_G_macro])$nl"
done
IFS=$_G_save
# We discard M4's stdout, but the M4 trace output from reading our
# "autoconf.mini" followed by any other files passed to this
# function is then scanned by sed to transform it into a colon
# delimited argument list assigned to a shell variable.
_G_transform='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;'
# Unfortunately, alternation in regexp addresses doesn't work in at
# least BSD (and hence Mac OS X) sed, so we have to append a capture
# and print block for each traced macro to the sed transform script.
_G_save=$IFS
IFS=,
for _G_macro in $_G_macros; do
IFS=$_G_save
func_append _G_transform '
/^m4trace: -1- '"$_G_macro"'/ {
s|^m4trace: -1- '"$_G_macro"'[([]*||
s|], [[]|:|g
s|[])]*$|:|
s|\(.\):$|\1|
p
}'
done
IFS=$_G_save
# Save the command pipeline results for further use by callers of
# this function.
func_extract_trace_result=`$ECHO "$_G_mini" \
|$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \
|$SED -n -e "$_G_transform"`
}
# func_extract_trace_first MACRO_NAMES [FILENAME]...
# --------------------------------------------------
# Exactly like func_extract_trace, except that only the first argument
# to the first invocation of one of the comma separated MACRO_NAMES is
# returned in '$func_extract_trace_first_result'.
func_extract_trace_first ()
{
$debug_cmd
func_extract_trace ${1+"$@"}
func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \
|$SED -e 's|:.*$||g' -e 1q`
}
# func_main [ARG]...
# ------------------
func_main ()
{
$debug_cmd
# Configuration.
usage='$progname MACRO_NAME FILE [...]'
long_help_message='
The first argument to this program is the name of an autotools macro
whose arguments you want to extract by examining the files listed in the
remaining arguments using the same tool that Autoconf and Automake use,
GNU M4.
The arguments are returned separated by colons, with each traced call
on a separate line.'
# Option processing.
func_options "$@"
eval set dummy "$func_options_result"; shift
# Validate remaining non-option arguments.
test $# -gt 1 \
|| func_fatal_help "not enough arguments"
# Pass non-option arguments to extraction function.
func_extract_trace "$@"
# Display results.
test -n "$func_extract_trace_result" \
&& $ECHO "$func_extract_trace_result"
# The End.
exit $EXIT_SUCCESS
}
## --------------------------- ##
## Actually perform the trace. ##
## --------------------------- ##
# Only call 'func_main' if this script was called directly.
test extract-trace = "$progname" && func_main "$@"
# Local variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-pattern: "20/scriptversion=%:y-%02m-%02d.%02H; # UTC"
# time-stamp-time-zone: "UTC"
# End:

File diff suppressed because it is too large Load Diff

View File

@ -1,83 +0,0 @@
diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
index e02d34c..aeae458 100755
--- a/build-aux/gitlog-to-changelog
+++ b/build-aux/gitlog-to-changelog
@@ -99,6 +99,8 @@ at the beginning of a log message line. They are not copied to the output.
Co-authored-by: Joe User <user\@example.com>
List the specified name and email address on a second
ChangeLog header, denoting a co-author.
+ Omit-from-ChangeLog: Yes
+ No ChangeLog entry is made for this commit.
Signed-off-by: Joe User <user\@example.com>
These lines are simply elided.
@@ -323,10 +325,14 @@ sub git_dir_option($)
strftime ("%F", localtime ($1)), $2;
my @coauthors = grep /^Co-authored-by:.*$/, @line;
+
+ my $omit = grep /^Omit-from-ChangeLog:\s+[Yy]es$/, @line;
+
# Omit meta-data lines we've already interpreted.
@line = grep !/^(?:Signed-off-by:[ ].*>$
|Co-authored-by:[ ]
|Copyright-paperwork-exempt:[ ]
+ |Omit-from-ChangeLog:[ ]
)/x, @line;
# Remove leading and trailing blank lines.
@@ -351,33 +357,33 @@ sub git_dir_option($)
. substr ($_, 5) . "\n";
}
- # If clustering of commit messages has been disabled, if this header
- # would be different from the previous date/name/email/coauthors header,
- # or if this or the previous entry consists of two or more paragraphs,
- # then print the header.
- if ( ! $cluster
- || $date_line ne $prev_date_line
- || "@coauthors" ne "@prev_coauthors"
- || $multi_paragraph
- || $prev_multi_paragraph)
- {
- $prev_date_line eq ''
- or print "\n";
- print $date_line;
- @coauthors
- and print join ("\n", @coauthors), "\n";
- }
- $prev_date_line = $date_line;
- @prev_coauthors = @coauthors;
- $prev_multi_paragraph = $multi_paragraph;
-
# If there were any lines
if (@line == 0)
{
warn "$ME: warning: empty commit message:\n $date_line\n";
}
- else
+ elsif ( ! $omit )
{
+ # If clustering of commit messages has been disabled, if this header
+ # would be different from the previous date/name/email/coauthors header,
+ # or if this or the previous entry consists of two or more paragraphs,
+ # then print the header.
+ if ( ! $cluster
+ || $date_line ne $prev_date_line
+ || "@coauthors" ne "@prev_coauthors"
+ || $multi_paragraph
+ || $prev_multi_paragraph)
+ {
+ $prev_date_line eq ''
+ or print "\n";
+ print $date_line;
+ @coauthors
+ and print join ("\n", @coauthors), "\n";
+ }
+ $prev_date_line = $date_line;
+ @prev_coauthors = @coauthors;
+ $prev_multi_paragraph = $multi_paragraph;
+
if ($append_dot)
{
# If the first line of the message has enough room, then

View File

@ -1,164 +0,0 @@
#! /bin/sh
# Output the contents of a shell script with sourced files inlined.
# Written by Gary V. Vaughan, 2012
# Copyright (C) 2012-2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# Source required external libraries:
. `echo "$0" |${SED-sed} 's|[^/]*$||'`"funclib.sh"
. `echo "$0" |${SED-sed} 's|[^/]*$||'`"options-parser"
# Set a version string for *this* script.
scriptversion=2014-01-03.01; # UTC
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Please report bugs or propose patches to bug-libtool@gnu.org.
## ------ ##
## Usage. ##
## ------ ##
# Run 'build-aux/inline-source --help' for help with using this script
# from the command line.
# Recursively scan through a FILE passed on the command line, replacing
# either of the following:
# . "relative/file"
# . `echo "$0" |edit`"relative/file"
# with the contents of the referenced files.
## ---------------- ##
## Options parsing. ##
## ---------------- ##
usage='$progpath [OPTION]... FILE'
# Short help message in response to '-h'.
usage_message='Options:
--debug enable verbose shell tracing
--version print version information and exit
-h, --help print help message and exit
'
long_help_message="\
Report bugs to <bug-libtool@gnu.org>
General help using GNU software: <http://www.gnu.org/gethelp/>."
func_options ${1+"$@"}
eval set dummy "$func_options_result"; shift
## -------------------- ##
## Resource management. ##
## -------------------- ##
# require_AWK
# -----------
# Search for a "not hopeless" awk.
require_AWK=func_require_AWK
func_require_AWK ()
{
$debug_cmd
test -n "$AWK" || {
# Find the first executable in the list.
for _G_prog in gawk mawk nawk awk
do
require_AWK_IFS=$IFS
IFS=${PATH_SEPARATOR-:}
for _G_dir in $PATH
do
IFS=$require_AWK_IFS
if test -f "$_G_dir/$_G_prog" && test -x "$_G_dir/$_G_prog"
then
AWK=$_G_dir/$_G_prog
break 2
fi
done
IFS=$require_AWK_IFS
done
}
test -n "$AWK" || func_fatal_error "\
Please install GNU Awk, or 'export AWK=/path/to/gnu/awk'."
func_verbose "found '$AWK'."
require_AWK=:
}
## --------------- ##
## Core functions. ##
## --------------- ##
# func_include LINE
# -----------------
# Output the contents of file included by LINE.
func_include ()
{
$require_AWK
test -f "$1" \
|| func_fatal_error "file '$1' not found"
_G_scriptdir=`echo "$1" |$SED 's|[^/]*$||'`
test -n "$_G_scriptdir" || _G_scriptdir="./"
$AWK '
BEGIN { magic = '${_RECURSE_MAGIC-0}'; }
/^#!/ && magic == 0 {
print $0;
print "## DO NOT EDIT - This file generated from '$1'";
print "## by '$progname' v'$scriptversion'";
magic++;
next;
}
/^\. ['\''"].*['\''"]$/ {
file = substr ($2, 2, length ($2) -2);
system (sprintf ("env _RECURSE_MAGIC=%d '$progpath' %s", magic, file));
next;
}
/^\. `echo [^`]*`['\''"][^'\''"]*['\''"]$/ {
tail = substr ($0, match ($0, /`['\''"]/));
file = substr (tail, 3, length (tail) -3);
system (sprintf ("env _RECURSE_MAGIC=%d '$progpath' '"$_G_scriptdir"'%s", magic, file));
next;
}
{ print; }
' < "$1"
}
func_include "$1"
exit 0
# Local variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-pattern: "20/scriptversion=%:y-%02m-%02d.%02H; # UTC"
# time-stamp-time-zone: "UTC"
# End:

View File

@ -1,608 +0,0 @@
#! /bin/sh
# Set a version string for this script.
scriptversion=2014-01-07.03; # UTC
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Please report bugs or propose patches to gary@gnu.org.
## ------ ##
## Usage. ##
## ------ ##
# This file is a library for parsing options in your shell scripts along
# with assorted other useful supporting features that you can make use
# of too.
#
# For the simplest scripts you might need only:
#
# #!/bin/sh
# . relative/path/to/funclib.sh
# . relative/path/to/options-parser
# scriptversion=1.0
# func_options ${1+"$@"}
# eval set dummy "$func_options_result"; shift
# ...rest of your script...
#
# In order for the '--version' option to work, you will need to have a
# suitably formatted comment like the one at the top of this file
# starting with '# Written by ' and ending with '# warranty; '.
#
# For '-h' and '--help' to work, you will also need a one line
# description of your script's purpose in a comment directly above the
# '# Written by ' line, like the one at the top of this file.
#
# The default options also support '--debug', which will turn on shell
# execution tracing (see the comment above debug_cmd below for another
# use), and '--verbose' and the func_verbose function to allow your script
# to display verbose messages only when your user has specified
# '--verbose'.
#
# After sourcing this file, you can plug processing for additional
# options by amending the variables from the 'Configuration' section
# below, and following the instructions in the 'Option parsing'
# section further down.
## -------------- ##
## Configuration. ##
## -------------- ##
# You should override these variables in your script after sourcing this
# file so that they reflect the customisations you have added to the
# option parser.
# The usage line for option parsing errors and the start of '-h' and
# '--help' output messages. You can embed shell variables for delayed
# expansion at the time the message is displayed, but you will need to
# quote other shell meta-characters carefully to prevent them being
# expanded when the contents are evaled.
usage='$progpath [OPTION]...'
# Short help message in response to '-h' and '--help'. Add to this or
# override it after sourcing this library to reflect the full set of
# options your script accepts.
usage_message="\
--debug enable verbose shell tracing
-W, --warnings=CATEGORY
report the warnings falling in CATEGORY [all]
-v, --verbose verbosely report processing
--version print version information and exit
-h, --help print short or long help message and exit
"
# Additional text appended to 'usage_message' in response to '--help'.
long_help_message="
Warning categories include:
'all' show all warnings
'none' turn off all the warnings
'error' warnings are treated as fatal errors"
# Help message printed before fatal option parsing errors.
fatal_help="Try '\$progname --help' for more information."
## ------------------------- ##
## Hook function management. ##
## ------------------------- ##
# This section contains functions for adding, removing, and running hooks
# to the main code. A hook is just a named list of of function, that can
# be run in order later on.
# func_hookable FUNC_NAME
# -----------------------
# Declare that FUNC_NAME will run hooks added with
# 'func_add_hook FUNC_NAME ...'.
func_hookable ()
{
$debug_cmd
func_append hookable_fns " $1"
}
# func_add_hook FUNC_NAME HOOK_FUNC
# ---------------------------------
# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must
# first have been declared "hookable" by a call to 'func_hookable'.
func_add_hook ()
{
$debug_cmd
case " $hookable_fns " in
*" $1 "*) ;;
*) func_fatal_error "'$1' does not accept hook functions." ;;
esac
eval func_append ${1}_hooks '" $2"'
}
# func_remove_hook FUNC_NAME HOOK_FUNC
# ------------------------------------
# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
func_remove_hook ()
{
$debug_cmd
eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
}
# func_run_hooks FUNC_NAME [ARG]...
# ---------------------------------
# Run all hook functions registered to FUNC_NAME.
# It is assumed that the list of hook functions contains nothing more
# than a whitespace-delimited list of legal shell function names, and
# no effort is wasted trying to catch shell meta-characters or preserve
# whitespace.
func_run_hooks ()
{
$debug_cmd
case " $hookable_fns " in
*" $1 "*) ;;
*) func_fatal_error "'$1' does not support hook funcions.n" ;;
esac
eval _G_hook_fns=\$$1_hooks; shift
for _G_hook in $_G_hook_fns; do
eval $_G_hook '"$@"'
# store returned options list back into positional
# parameters for next 'cmd' execution.
eval _G_hook_result=\$${_G_hook}_result
eval set dummy "$_G_hook_result"; shift
done
func_quote_for_eval ${1+"$@"}
func_run_hooks_result=$func_quote_for_eval_result
}
## --------------- ##
## Option parsing. ##
## --------------- ##
# In order to add your own option parsing hooks, you must accept the
# full positional parameter list in your hook function, remove any
# options that you action, and then pass back the remaining unprocessed
# options in '<hooked_function_name>_result', escaped suitably for
# 'eval'. Like this:
#
# my_options_prep ()
# {
# $debug_cmd
#
# # Extend the existing usage message.
# usage_message=$usage_message'
# -s, --silent don'\''t print informational messages
# '
#
# func_quote_for_eval ${1+"$@"}
# my_options_prep_result=$func_quote_for_eval_result
# }
# func_add_hook func_options_prep my_options_prep
#
#
# my_silent_option ()
# {
# $debug_cmd
#
# # Note that for efficiency, we parse as many options as we can
# # recognise in a loop before passing the remainder back to the
# # caller on the first unrecognised argument we encounter.
# while test $# -gt 0; do
# opt=$1; shift
# case $opt in
# --silent|-s) opt_silent=: ;;
# # Separate non-argument short options:
# -s*) func_split_short_opt "$_G_opt"
# set dummy "$func_split_short_opt_name" \
# "-$func_split_short_opt_arg" ${1+"$@"}
# shift
# ;;
# *) set dummy "$_G_opt" "$*"; shift; break ;;
# esac
# done
#
# func_quote_for_eval ${1+"$@"}
# my_silent_option_result=$func_quote_for_eval_result
# }
# func_add_hook func_parse_options my_silent_option
#
#
# my_option_validation ()
# {
# $debug_cmd
#
# $opt_silent && $opt_verbose && func_fatal_help "\
# '--silent' and '--verbose' options are mutually exclusive."
#
# func_quote_for_eval ${1+"$@"}
# my_option_validation_result=$func_quote_for_eval_result
# }
# func_add_hook func_validate_options my_option_validation
#
# You'll alse need to manually amend $usage_message to reflect the extra
# options you parse. It's preferable to append if you can, so that
# multiple option parsing hooks can be added safely.
# func_options [ARG]...
# ---------------------
# All the functions called inside func_options are hookable. See the
# individual implementations for details.
func_hookable func_options
func_options ()
{
$debug_cmd
func_options_prep ${1+"$@"}
eval func_parse_options \
${func_options_prep_result+"$func_options_prep_result"}
eval func_validate_options \
${func_parse_options_result+"$func_parse_options_result"}
eval func_run_hooks func_options \
${func_validate_options_result+"$func_validate_options_result"}
# save modified positional parameters for caller
func_options_result=$func_run_hooks_result
}
# func_options_prep [ARG]...
# --------------------------
# All initialisations required before starting the option parse loop.
# Note that when calling hook functions, we pass through the list of
# positional parameters. If a hook function modifies that list, and
# needs to propogate that back to rest of this script, then the complete
# modified list must be put in 'func_run_hooks_result' before
# returning.
func_hookable func_options_prep
func_options_prep ()
{
$debug_cmd
# Option defaults:
opt_verbose=false
opt_warning_types=
func_run_hooks func_options_prep ${1+"$@"}
# save modified positional parameters for caller
func_options_prep_result=$func_run_hooks_result
}
# func_parse_options [ARG]...
# ---------------------------
# The main option parsing loop.
func_hookable func_parse_options
func_parse_options ()
{
$debug_cmd
func_parse_options_result=
# this just eases exit handling
while test $# -gt 0; do
# Defer to hook functions for initial option parsing, so they
# get priority in the event of reusing an option name.
func_run_hooks func_parse_options ${1+"$@"}
# Adjust func_parse_options positional parameters to match
eval set dummy "$func_run_hooks_result"; shift
# Break out of the loop if we already parsed every option.
test $# -gt 0 || break
_G_opt=$1
shift
case $_G_opt in
--debug|-x) debug_cmd='set -x'
func_echo "enabling shell trace mode"
$debug_cmd
;;
--no-warnings|--no-warning|--no-warn)
set dummy --warnings none ${1+"$@"}
shift
;;
--warnings|--warning|-W)
test $# = 0 && func_missing_arg $_G_opt && break
case " $warning_categories $1" in
*" $1 "*)
# trailing space prevents matching last $1 above
func_append_uniq opt_warning_types " $1"
;;
*all)
opt_warning_types=$warning_categories
;;
*none)
opt_warning_types=none
warning_func=:
;;
*error)
opt_warning_types=$warning_categories
warning_func=func_fatal_error
;;
*)
func_fatal_error \
"unsupported warning category: '$1'"
;;
esac
shift
;;
--verbose|-v) opt_verbose=: ;;
--version) func_version ;;
-\?|-h) func_usage ;;
--help) func_help ;;
# Separate optargs to long options (plugins may need this):
--*=*) func_split_equals "$_G_opt"
set dummy "$func_split_equals_lhs" \
"$func_split_equals_rhs" ${1+"$@"}
shift
;;
# Separate optargs to short options:
-W*)
func_split_short_opt "$_G_opt"
set dummy "$func_split_short_opt_name" \
"$func_split_short_opt_arg" ${1+"$@"}
shift
;;
# Separate non-argument short options:
-\?*|-h*|-v*|-x*)
func_split_short_opt "$_G_opt"
set dummy "$func_split_short_opt_name" \
"-$func_split_short_opt_arg" ${1+"$@"}
shift
;;
--) break ;;
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
*) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
esac
done
# save modified positional parameters for caller
func_quote_for_eval ${1+"$@"}
func_parse_options_result=$func_quote_for_eval_result
}
# func_validate_options [ARG]...
# ------------------------------
# Perform any sanity checks on option settings and/or unconsumed
# arguments.
func_hookable func_validate_options
func_validate_options ()
{
$debug_cmd
# Display all warnings if -W was not given.
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
func_run_hooks func_validate_options ${1+"$@"}
# Bail if the options were screwed!
$exit_cmd $EXIT_FAILURE
# save modified positional parameters for caller
func_validate_options_result=$func_run_hooks_result
}
## ----------------- ##
## Helper functions. ##
## ----------------- ##
# This section contains the helper functions used by the rest of the
# hookable option parser framework in ascii-betical order.
# func_fatal_help ARG...
# ----------------------
# Echo program name prefixed message to standard error, followed by
# a help hint, and exit.
func_fatal_help ()
{
$debug_cmd
eval \$ECHO \""Usage: $usage"\"
eval \$ECHO \""$fatal_help"\"
func_error ${1+"$@"}
exit $EXIT_FAILURE
}
# func_help
# ---------
# Echo long help message to standard output and exit.
func_help ()
{
$debug_cmd
func_usage_message
$ECHO "$long_help_message"
exit 0
}
# func_missing_arg ARGNAME
# ------------------------
# Echo program name prefixed message to standard error and set global
# exit_cmd.
func_missing_arg ()
{
$debug_cmd
func_error "Missing argument for '$1'."
exit_cmd=exit
}
# func_split_equals STRING
# ------------------------
# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
# splitting STRING at the '=' sign.
test -z "$_G_HAVE_XSI_OPS" \
&& (eval 'x=a/b/c;
test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
&& _G_HAVE_XSI_OPS=yes
if test yes = "$_G_HAVE_XSI_OPS"
then
# This is an XSI compatible shell, allowing a faster implementation...
eval 'func_split_equals ()
{
$debug_cmd
func_split_equals_lhs=${1%%=*}
func_split_equals_rhs=${1#*=}
test "x$func_split_equals_lhs" = "x$1" \
&& func_split_equals_rhs=
}'
else
# ...otherwise fall back to using expr, which is often a shell builtin.
func_split_equals ()
{
$debug_cmd
func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
func_split_equals_rhs=
test "x$func_split_equals_lhs" = "x$1" \
|| func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
}
fi #func_split_equals
# func_split_short_opt SHORTOPT
# -----------------------------
# Set func_split_short_opt_name and func_split_short_opt_arg shell
# variables after splitting SHORTOPT after the 2nd character.
if test yes = "$_G_HAVE_XSI_OPS"
then
# This is an XSI compatible shell, allowing a faster implementation...
eval 'func_split_short_opt ()
{
$debug_cmd
func_split_short_opt_arg=${1#??}
func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
}'
else
# ...otherwise fall back to using expr, which is often a shell builtin.
func_split_short_opt ()
{
$debug_cmd
func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
}
fi #func_split_short_opt
# func_usage
# ----------
# Echo short help message to standard output and exit.
func_usage ()
{
$debug_cmd
func_usage_message
$ECHO "Run '$progname --help |${PAGER-more}' for full usage"
exit 0
}
# func_usage_message
# ------------------
# Echo short help message to standard output.
func_usage_message ()
{
$debug_cmd
eval \$ECHO \""Usage: $usage"\"
echo
$SED -n 's|^# ||
/^Written by/{
x;p;x
}
h
/^Written by/q' < "$progpath"
echo
eval \$ECHO \""$usage_message"\"
}
# func_version
# ------------
# Echo version message to standard output and exit.
func_version ()
{
$debug_cmd
printf '%s\n' "$progname $scriptversion"
$SED -n '
/(C)/!b go
:more
/\./!{
N
s|\n# | |
b more
}
:go
/^# Written by /,/# warranty; / {
s|^# ||
s|^# *$||
s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
p
}
/^# Written by / {
s|^# ||
p
}
/^warranty; /q' < "$progpath"
exit $?
}
# Local variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
# time-stamp-time-zone: "UTC"
# End:

View File

@ -1,487 +0,0 @@
@node Bootstrap
@chapter Bootstrap
The process of executing the various tools required to bring all the
generated files up to date in a directory freshly checked out from
source control can be quite involved. Many GNU projects use
@command{bootstrap} script to execute some or all of the following in the
correct order: @command{gnulib-tool}, @command{autopoint},
@command{libtoolize}, @command{autoreconf}. Often there's also
additional file-processing and assorted book-keeping that also falls
under the control of @command{bootstrap}, but it's wasteful for the
maintainers of all these projects to manually reinvent a custom script
on a case-by-case basis.
Gnulib is designed to provide a central library of exemplar
implementations to promote the sharing of useful common code among
GNU project maintainers. However, the bootstrapping needs of these
projects vary enormously, so Gnulib's @command{bootstrap} needs to be
extremely @strong{customisable} and extensible, with less effort than
would be otherwise required to invent an ad-hoc solution.
@menu
* Customisation::
* Usage Patterns::
* Known Bugs::
@end menu
@node Customisation
@section Customisation
There are four distinct ways to customize the functionality of
@command{bootstrap}, all requiring creation of a @file{bootstrap.conf}
file in the same directory as the imported @command{bootstrap} script
itself.
@menu
* Configuration Variables::
* Require Variables::
* Hook Functions::
* Function Replacement::
@end menu
@node Configuration Variables
@subsection Configuration Variables
For all but the more complex customisations, you need only change
the value of a selection of the following shell variables in
@file{bootstrap.conf}, to reflect whatever is appropriate to your
package.
@example
vc_ignore=.gitignore
@end example
@table @code
@cnindex buildreq
@item buildreq
A newline-delimited list of triples of @strong{programs} (that must
accept the option @option{--version} without hanging or failing), the
@strong{minimum version required} (or just `-' in the version field if
any version will be sufficient) and @strong{homepage URL (to
help users locate missing packages)
@smallexample
buildreq='
git 1.5.5 http://git-scm.com
help2man 1.29 http://www.gnu.org/s/help2man
'
@end smallexample
If you specify a minimum version of Autoconf with @code{AC_PREREQ},
that version will be checked automatically without needing to be
listed in @code{buildreq}. Similarly for a minimum Automake version
declared with @code{AM_INIT_AUTOMAKE}, Libtool version with
@code{LT_PREREQ}, or Autopoint version with @code{AM_GNU_GETTEXT_VERSION}.
If @code{AB_INIT} is declared in @file{configure.ac}, then a versionless
requirement for Autobuild is added automatically, and finally if there
are any diff files under @code{local_gl_dir}, then a versionless
requirement for patch is also added.
When there are backwards incompatibilities in a newer build-tool
release, you can pin the version requirement for your program by
prefixing the version number field in buildreq with a single '='
character (no spaces).
When @command{bootstrap} is invoked, it will check that all the listed
and automatically added tools are available at the given minimum version,
or else bail out with a diagnostic.
@cnindex buildreq_readme
@item buildreq_readme
Name of a file containing instructions on installing missing packages
required in @code{buildreq}. Usually, the instructions at the given
URL should be sufficient, though some projects add additional notes
in @file{HACKING}.
@smallexample
buildreq_readme=README-hacking
@end smallexample
@cnindex build_aux
@item build_aux
This is automatically extracted from the @code{AC_CONFIG_AUX_DIR}
declaration in @file{configure.ac}, though you can specify it in
@file{bootstrap.conf} if you don't otherwise want to declare
@code{AC_CONFIG_AUX_DIR} in @file{configure.ac}.
@cnindex macro_dir
@item macro_dir
This is automatically extracted from @file{configure.ac}, or if
neither @code{AC_CONFIG_MACRO_DIRS} nor @code{AC_CONFIG_MACRO_DIR} is
declared there, the option immediately following the first @samp{-I}
from @code{ACLOCAL_AMFLAGS} in @file{Makefile.am} is used as a last
resort. If you don't want to declare the macro directory in any of
those places, then you can specify it in @file{bootstrap.conf} by
using the @code{macro_dir} variable.
@smallexample
macro_dir=acm4
@end smallexample
@cnindex package
@item package
This is automatically extracted by downcasing the first argument to
@code{AC_INIT} in @file{configure.ac}, though you can override it here
if you prefer.
@cnindex package_name
@item package_name
This is automatically extracted from the first argument to
@code{AC_INIT} in @file{configure.ac}, though you can override it here
if you prefer.
@cnindex package_version
@item package_version
This is automatically extracted from the second argument to
@code{AC_INIT} in @file{configure.ac}, though you can override it here
if you prefer.
@cnindex package_bugreport
@item package_bugreport
This is automatically extracted from the third argument to
@code{AC_INIT} in @file{configure.ac} if given, though you can override
it here if you prefer.
@cnindex doc_base
@cnindex gnulib_mk
@cnindex gnulib_name
@cnindex local_gl_dir
@cnindex source_base
@cnindex tests_base
@item doc_base
@itemx gnulib_mk
@itemx gnulib_name
@itemx local_gl_dir
@itemx source_base
@itemx tests_base
These are normally extracted from @file{gnulib-cache.m4}, regardless of
their values in @file{bootstrap.conf}.
When that file is not yet created, then @command{bootstrap} will
fall-back automatically to the gnulib defaults; unless you set
alternative values here in @file{bootstrap.conf}.
If you check @file{gnulib-cache.m4} into your repository, then these
values will be extracted automatically. @xref{Usage Patterns}, for more
details.
@cnindex gnulib_modules
@item gnulib_modules
The list of gnulib modules required at @command{gnulib-tool} time.
If you check @file{gnulib-cache.m4} into your repository, then this list
will be extracted automatically. @xref{Usage Patterns}, for more
details.
@cnindex gnulib_non_module_files
@item gnulib_non_module_files
Extra gnulib files that are not part of a gnulib module, but which
override files of the same name installed by other bootstrap tools, such
as @command{automake}.
@smallexample
gnulib_non_module_files="$gnulib_non_module_files"'
doc/COPYINGv3
'
@end smallexample
@cnindex gnulib_path
@cnindex gnulib_url
@item gnulib_path
@itemx gnulib_url
Relative path to the local gnulib submodule, and url to the upstream
git repository for gnulib. These are only used if a new gnulib submodule
needs to be created, otherwise they are ignored and the values stored in
@file{.gitmodules} are used instead.
Normally, you can leave these untouched, and @command{bootstrap} will
correctly check out a gnulib submodule from the directory passed with
@option{--gnulib-srcdir}, or else from the upstream repository at GNU
savannah.
@cnindex gnulib_tool_options
@item gnulib_tool_options
Additional options to pass to @command{gnulib-tool} when it is called.
@smallexample
gnulib_tool_options='
--no-changelog
--libtool
'
@end smallexample
@cnindex gnulib_precious
@item gnulib_precious
Normally, @command{bootstrap} removes any macro-files that are not
included by @file{aclocal.m4} before it returns, except for files listed
in this variable that are always kept.
@smallexample
gnulib_precious='
gnulib-cache.m4
'
@end smallexample
@cnindex min_cmd_len
@item min_cmd_len
When truncating long commands for display at runtime, always allow at
least this many characters before truncating.
@cnindex po_download_command_format
@item po_download_command_format
The command to download all @samp{.po} files for a specified domain into
a specified directory, where the first %s is filled in with the
@emph{domain name}, and the second with the @emph{destination
directory}. Use @command{rsync}'s @option{-L} and @option{-r} options
because the latest @samp{/%s} directory and the @samp{.po} files within
are all symlinks.
@smallexample
po_download_command_format=\
"rsync --delete --exclude '*.s1' -Lrtvz \
'translationproject.org::tp/latest/%s/' '%s'"
@end smallexample
This variable is only interesting to projects with NLS support, and even
then, Usually, the default setting will be sufficient.
@cnindex extra_locale_categories
@item extra_locale_categories
Other locale categories that need message catalogs. This variable is
only interesting to projects with NLS support.
@cnindex xgettext_options
@item xgettext_options
Additional @command{xgettext} options to use. Gnulib might provide you
with an extensive list of additional options to append to this, but
gettext 0.16.1 and newer already appends those automaticaly, so you can
safely ignore the complaints from @command{gnulib-tool} as long as your
@file{configure.ac} declares @code{AM_GNU_GETTEXT_VERSION([0.16.1])}.
@smallexample
xgettext_options='
--flag=_:1:pass-c-format
--flag=N_:1:pass-c-format
'
@end smallexample
As with the previous two variables, you can safely ignore this one if
your project does not have NLS support.
@cnindex copyright_holder
@item copyright_holder
Package copyright holder for gettext files. Defaults to @samp{FSF} if
unset.
@cnindex checkout_only_file
@item checkout_only_file
If you want @command{bootstrap} to abort if it is executed outside of
a version controlled tree, this variable must hold the name of some file
that is present only in a checked out tree, and is not in a distribution
tarball.
@smallexample
checkout_only_file=HACKING
@end smallexample
@cnindex copy
@item copy
If set to @samp{true}, then make copies when adding files to this
package, otherwise make symlinks by default. If set to @samp{true},
then the @option{--copy} option to @command{bootstrap} will have no
further effect.
@cnindex vc_ignore
@item vc_ignore
Set this to @samp{.cvsignore .gitignore} if you want both of those files
to be generated in directories such as @file{lib/}, @file{m4/}, and
@file{po/}, or set it to @samp{auto} to make @command{bootstrap} select
what to use based on what version control system (if any) is used in
the source directory. Or set it to @samp{none} to disregard VCS ignore
files entirely. Default is @samp{auto}.
@smallexample
vc_ignore='.cvsignore .gitignore'
@end smallexample
@end itemize
@node Require Variables
@subsection Require Variables
Many of the functions in @command{bootstrap} should not be executed more
than once, which is achieved by storing the name of that function in a
variable and then calling it with:
@smallexample
$require_gnulib_tool
@end smallexample
At this stage, the value of the variable is interpreted as a function
call by the shell, and the named function then runs. Under normal
circumstances, functions that are called in this way always set their
associated variable name to simply @samp{:} so that subsequent
occurrences of, in this instance, @code{$require_gnulib_tool} have no
further effect.
That means you can easily skip any functions that are called like this
by unconditionally setting the require variable to @samp{:} in your
@file{bootstrap.conf}. So, for example, if your package makes no use of
@command{gnulib-tool}, you can add the following to your
@file{bootstrap.conf}:
@smallexample
require_gnulib_tool=:
@end smallexample
You should be aware, however, that the function calls managed by this
mechanism are designed to be called one time to ensure that some
resource is available for use by the rest of any function that uses a
@code{$require_some_resource} call. Be careful to ensure that you
remove any code paths that try to use that resource if you have
effectively disabled it by setting its variable to @samp{:} early on.
@node Hook Functions
@subsection Hook Functions
Many of the key functions in @command{bootstrap} will run one or more hook
functions before they return. Essentially, all that the entire script
does is to define a lot of functions (some of which will run hooks),
then source the contents of your @file{bootstrap.conf} customisations,
and then finally run the @code{func_bootstrap} function. Read the
doc-comments above @code{func_bootstrap} in the @command{bootstrap} file,
as well as the functions that it calls to find where you can hook your
own functions, in order to be called during your customised execution of
@command{bootstrap}.
One of the trickier hook functions is set up to allow you to add
additional arguments to the option parser for @command{bootstrap} without
having to replace @code{func_parse_options} in its entirety:
@smallexample
my_silent_option ()
@{
$debug_cmd
case $1 in
--silent|-s) opt_silent=:; shift ;;
esac
# return modified option list
func_quote_for_eval $@{1+"$@@"@}
func_run_hooks_result=$func_quote_for_eval_result
@}
func_add_hook func_parse_options my_silent_option
@end smallexample
@node Function Replacement
@subsection Function Replacement
In a few complex packages, you might find that some selection of
functions called during the normal execution of @command{bootstrap} are
wholly inappropriate for your project, where simply disabling
@code{$require_some_resource} functions and hooking in additional code
is not powerful enough to avoid or radically alter the parts of
@command{bootstrap} you do not want.
In that case you can simply write an entirely custom implementation of
whatever function(s) you want to replace inside your
@file{bootstrap.conf}, so that by the time @code{func_bootstrap} is
called at the end of @command{bootstrap}, your new implementation is
already in place.
@example
func_echo ()
@{
# respect new --silent option
$opt_silent || echo "$progname: $*"
@}
@end example
@node Usage Patterns
@section Usage Patterns
There are two ways to incorporate gnulib into your package, which are
both supported by the @command{bootstrap} script. Be sure that everyone
working on your package is employing the same usage pattern, or things
will turn bad!
@menu
* Configuration all kept in @file{bootstrap.conf}
* Gnulib configuration stored in @file{gnulib-cache.m4}
@end menu
@node Configuration all kept in @file{bootstrap.conf}
@subsection Configuration all kept in @file{bootstrap.conf}
All the parameters for running @command{gnulib-tool} and other bootstrap-
time commands are maintained in @file{bootstrap.conf}. This is the
default usage pattern.
In order for this to work, when you wish to add or remove a gnulib
module from your package, amend the value of @var{gnulib_modules} in
@file{bootstrap.conf} (and similarly for any other parameters) and rerun
@command{bootstrap} to import everything anew.
To avoid things getting out of sync, you should never run
@command{gnulib-tool} directly.
@node Gnulib configuration stored in @file{gnulib-cache.m4}
@subsection Gnulib configuration stored in @file{gnulib-cache.m4}
To implement this usage pattern, leave the value of @var{gnulib_modules}
and the various @var{gl_xxx} variables empty in @file{bootstrap.conf}
and call @command{gnulib-tool --import ...} from your shell, checking
that @file{gnulib-cache.m4} reflects the values you wanted. From now on
you can either call @command{gnulib-tool --update} or rerun
@command{bootstrap} whenever you want to resync the package modules with
your local gnulib checkout.
If you wish to add or remove a gnulib module from your package, call
@command{gnulib-tool --import-add ...} or @command{gnulib-tool --import-
remove} respectively.
@node Known Bugs
@section Known Bugs
@itemize @bullet
@item
gnulib-tool has no @option{--force} option, so sometimes symlinks are
left pointing to an old gnulib tree (even with @command{./bootstrap
--force}):
@smallexample
$ ./bootstrap --skip-git --gnulib-srcdir=../gnulib
$ ./bootstrap --gnulib-srcdir=../gnulib --force
@end smallexample
Note that now, plenty of symlinks still point to @file{../gnulib}
instead of having being retargeted to the submodule in @file{./gnulib}.
@end item
@end itemize

View File

@ -1,23 +0,0 @@
Description:
Bootstrap an Autotooled package from checked-out sources.
Files:
build-aux/bootstrap.in
Depends-on:
extract-trace
funclib.sh
inline-source
options-parser
configure.ac:
Makefile.am:
Include:
License:
GPLed build tool
Maintainer:
Gary V. Vaughan <gary@gnu.org>

View File

@ -1,21 +0,0 @@
Description:
Extract macro arguments from autotools input with GNU M4.
Files:
build-aux/extract-trace
Depends-on:
options-parser
funclib.sh
configure.ac:
Makefile.am:
Include:
License:
GPLed build tool
Maintainer:
Gary V. Vaughan <gary@gnu.org>

View File

@ -1,19 +0,0 @@
Description:
General shell script boiler plate, and helper functions.
Files:
build-aux/funclib.sh
Depends-on:
configure.ac:
Makefile.am:
Include:
License:
GPLv2+
Maintainer:
Gary V. Vaughan <gary@gnu.org>

View File

@ -1,21 +0,0 @@
Description:
Output the contents of a shell script with sourced files inlined.
Files:
build-aux/inline-source
Depends-on:
options-parser
funclib.sh
configure.ac:
Makefile.am:
Include:
License:
GPLed build tool
Maintainer:
Gary V. Vaughan <gary@gnu.org>

View File

@ -1,20 +0,0 @@
Description:
A portable, pluggable option parser for Bourne shell.
Files:
build-aux/options-parser
Depends-on:
funclib.sh
configure.ac:
Makefile.am:
Include:
License:
GPLed build tool
Maintainer:
Gary V. Vaughan <gary@gnu.org>

View File

@ -1,5 +1,5 @@
--- gnulib/top/README-release 2013-01-01 16:56:11.111973500 +0100
+++ gl/top/README-release 2013-01-01 16:55:31.423573500 +0100
--- gnulib/top/README-release
+++ README-release
@@ -1,5 +1,9 @@
Here are most of the steps we (maintainers) follow when making a release.
@ -10,7 +10,7 @@
* Start from a clean, up-to-date git directory on "master":
make -k maintainer-clean || { ./configure && make maintainer-clean; }
@@ -27,9 +31,24 @@
@@ -27,10 +31,25 @@ Here are most of the steps we (maintainers) follow when making a release.
./bootstrap && ./configure
@ -23,15 +23,29 @@
+
+* Run "./bootstrap && ./configure".
+
* Pre-release testing: ensure that the following command succeeds:
* Pre-release testing: ensure that the following commands succeed:
make check syntax-check distcheck
c=check ve=check-very-expensive; git grep -q "^$ve:\$" && c=$ve
make $c syntax-check distcheck
+ make distcheck DISTCHECK_CONFIGURE_FLAGS=--disable-ltdl-install
+ make distcheck DISTCHECK_CONFIGURE_FLAGS=--program-prefix=g
+ make distcheck DISTCHECK_CONFIGURE_FLAGS=--disable-shared
+ make distcheck CC=g++
+ make distcheck CXX=g++
+
+ If there are any problems, fix them and start again.
* To (i) set the date, version number, and release TYPE on line 3 of
NEWS, (ii) commit that, and (iii) tag the release, run
@@ -98,4 +115,12 @@
to update the on-line manual accessible at
https://www.gnu.org/software/@PACKAGE@/manual/
+
+ Ensure that the on-line documentation links to the latest stable release:
+
+ https://www.gnu.org/software/@PACKAGE@/
+
+ On-line documentation is updated through the CVS repository:
+
+ https://savannah.gnu.org/cvs/?group=@PACKAGE@

2
gnulib

@ -1 +1 @@
Subproject commit 1b6c775c6b9c8054afcadc0aeb0ae39e81dc6387
Subproject commit e93789db7e86c51d6cb9683ea508e676a55cdefa

View File

@ -9,7 +9,8 @@ It supports the following dlopen interfaces:
* dyld (darwin/Mac OS X)
* libtool's dlpreopen
--
Copyright (C) 1999, 2003, 2011-2014 Free Software Foundation, Inc.
Copyright (C) 1999, 2003, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1999
This file is part of GNU Libtool.

View File

@ -1,7 +1,7 @@
# Process this file with autoconf to create configure. -*- autoconf -*-
#
# Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
# Foundation, Inc.
# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2026 Free
# Software Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU LesserGeneral Public
# License along with GNU Libltdl; see the file COPYING.LIB. If not, a
# copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
####
# This configure.ac is not used at all by the libtool bootstrap, but

View File

@ -1,6 +1,7 @@
/* lt__alloc.h -- internal memory management interface
Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc.
Copyright (C) 2004, 2011-2019, 2021-2026 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -22,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT__ALLOC_H
@ -37,11 +35,11 @@ LT_BEGIN_C_DECLS
#define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp))
#define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp))
#define FREE(mem) LT_STMT_START { \
free (mem); mem = NULL; } LT_STMT_END
#define MEMREASSIGN(p, q) LT_STMT_START { \
#define FREE(mem) LT_STMT_START \
free (mem); mem = NULL; LT_STMT_END
#define MEMREASSIGN(p, q) LT_STMT_START \
if ((p) != (q)) { free (p); (p) = (q); (q) = 0; } \
} LT_STMT_END
LT_STMT_END
/* If set, this function is called when memory allocation has failed. */
LT_SCOPE void (*lt__alloc_die) (void);

View File

@ -1,7 +1,7 @@
/* lt__argz.h -- internal argz interface for non-glibc systems
Copyright (C) 2004, 2007-2008, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT__ARGZ_H

View File

@ -1,7 +1,7 @@
/* lt__dirent.h -- internal directory entry scanning interface
Copyright (C) 2001, 2004, 2006, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2001, 2004, 2006, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Bob Friesenhahn, 2001
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT__DIRENT_H

View File

@ -1,7 +1,7 @@
/* lt__glibc.h -- support for non glibc environments
Copyright (C) 2004, 2006-2007, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2004, 2006-2007, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT__GLIBC_H

View File

@ -1,6 +1,7 @@
/* lt__private.h -- internal apis for libltdl
Copyright (C) 2004-2008, 2011-2014 Free Software Foundation, Inc.
Copyright (C) 2004-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -22,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy con be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT__PRIVATE_H

View File

@ -1,6 +1,7 @@
/* lt__strl.h -- size-bounded string copying and concatenation
Copyright (C) 2004, 2006, 2011-2014 Free Software Foundation, Inc.
Copyright (C) 2004, 2006, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Bob Friesenhahn, 2004
NOTE: The canonical source of this file is maintained with the
@ -22,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT__STRL_H

View File

@ -1,7 +1,7 @@
/* lt_dlloader.h -- dynamic library loader interface
Copyright (C) 2004, 2007-2008, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT_DLLOADER_H

View File

@ -1,7 +1,7 @@
/* lt_error.h -- error propagation interface
Copyright (C) 1999-2001, 2004, 2007, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1999-2001, 2004, 2007, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1999
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
/* Only include this header file once. */
@ -41,7 +38,7 @@ LT_BEGIN_C_DECLS
this way allows us to expand the macro in different contexts with
confidence that the enumeration of symbolic names will map correctly
onto the table of error strings. \0 is appended to the strings to
expilicitely initialize the string terminator. */
explicitly initialize the string terminator. */
#define lt_dlerror_table \
LT_ERROR(UNKNOWN, "unknown error\0") \
LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \

View File

@ -1,6 +1,7 @@
/* lt_system.h -- system portability abstraction layer
Copyright (C) 2004, 2007, 2010-2014 Free Software Foundation, Inc.
Copyright (C) 2004, 2007, 2010-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -22,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined LT_SYSTEM_H
@ -64,15 +62,15 @@ or obtained by writing to the Free Software Foundation, Inc.,
/* LT_STMT_START/END are used to create macros that expand to a
a single compound statement in a portable way. */
#if defined __GNUC__ && !defined __STRICT_ANSI__ && !defined __cplusplus
# define LT_STMT_START (void)(
# define LT_STMT_END )
# define LT_STMT_START (void)({
# define LT_STMT_END })
#else
# if (defined sun || defined __sun__)
# define LT_STMT_START if (1)
# define LT_STMT_END else (void)0
# define LT_STMT_START if (1){
# define LT_STMT_END }else (void)0
# else
# define LT_STMT_START do
# define LT_STMT_END while (0)
# define LT_STMT_START do{
# define LT_STMT_END }while (0)
# endif
#endif

View File

@ -1,7 +1,7 @@
/* slist.h -- generalised singly linked lists
Copyright (C) 2000, 2004, 2009, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2000, 2004, 2009, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2000
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
/* A generalised list. This is deliberately transparent so that you

View File

@ -1,7 +1,7 @@
/* loader-dld_link.c -- dynamic linking with dld
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -97,7 +94,7 @@ get_vtable (lt_user_data loader_data)
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
return 0;
@ -107,12 +104,12 @@ vl_exit (lt_user_data LT__UNUSED loader_data)
loader. Returns an opaque representation of the newly opened
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
{
lt_module module = lt__strdup (filename);
if (dld_link (filename) != 0)
if (module && dld_link (filename) != 0)
{
LT__SETERROR (CANNOT_OPEN);
FREE (module);
@ -124,7 +121,7 @@ vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
{
int errors = 0;
@ -144,7 +141,7 @@ vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
/* A function called through the vtable to get the address of
a symbol loaded from a particular module. */
static void *
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module,
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED,
const char *name)
{
void *address = dld_get_func (name);

View File

@ -1,7 +1,7 @@
/* loader-dlopen.c -- dynamic linking with dlopen/dlsym
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -152,7 +149,7 @@ get_vtable (lt_user_data loader_data)
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
return 0;
@ -163,7 +160,7 @@ vl_exit (lt_user_data LT__UNUSED loader_data)
loader. Returns an opaque representation of the newly opened
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
lt_dladvise advise)
{
int module_flags = LT_LAZY_OR_NOW;
@ -245,7 +242,7 @@ vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
{
int errors = 0;
@ -262,7 +259,7 @@ vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
/* A function called through the vtable to get the address of
a symbol loaded from a particular module. */
static void *
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name)
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
{
void *address = dlsym (module, name);

View File

@ -1,7 +1,7 @@
/* loader-dyld.c -- dynamic linking on darwin and OS X
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Peter O'Gorman, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -185,7 +182,7 @@ static int dyld_cannot_close = 0;
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
return 0;
@ -226,7 +223,7 @@ vl_init (lt_user_data loader_data)
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
lt_dladvise advise LT__UNUSED)
{
lt_module module = 0;
NSObjectFileImage ofi = 0;

View File

@ -1,7 +1,7 @@
/* loader-load_add_on.c -- dynamic linking for BeOS
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -95,7 +92,7 @@ get_vtable (lt_user_data loader_data)
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
return 0;
@ -105,8 +102,8 @@ vl_exit (lt_user_data LT__UNUSED loader_data)
loader. Returns an opaque representation of the newly opened
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
{
image_id image = 0;
@ -135,7 +132,7 @@ vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
{
int errors = 0;
@ -152,7 +149,7 @@ vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
/* A function called through the vtable to get the address of
a symbol loaded from a particular module. */
static void *
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name)
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
{
void *address = 0;
image_id image = (image_id) module;

View File

@ -1,7 +1,7 @@
/* loader-loadlibrary.c -- dynamic linking for Win32
Copyright (C) 1998-2000, 2004-2008, 2010-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004-2008, 2010-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -98,8 +95,8 @@ get_vtable (lt_user_data loader_data)
#include <windows.h>
#define LOCALFREE(mem) LT_STMT_START { \
if (mem) { LocalFree ((void *)mem); mem = NULL; } } LT_STMT_END
#define LOCALFREE(mem) LT_STMT_START \
if (mem) { LocalFree ((void *)mem); mem = NULL; } LT_STMT_END
#define LOADLIB__SETERROR(errmsg) LT__SETERRORSTR (loadlibraryerror (errmsg))
#define LOADLIB_SETERROR(errcode) LOADLIB__SETERROR (LT__STRERROR (errcode))
@ -120,7 +117,7 @@ static char *error_message = 0;
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
LOCALFREE (error_message);
@ -131,8 +128,8 @@ vl_exit (lt_user_data LT__UNUSED loader_data)
loader. Returns an opaque representation of the newly opened
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
{
lt_module module = 0;
char *ext;
@ -245,7 +242,7 @@ vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
{
int errors = 0;
@ -262,7 +259,7 @@ vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
/* A function called through the vtable to get the address of
a symbol loaded from a particular module. */
static void *
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name)
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
{
void *address = (void *) GetProcAddress ((HMODULE) module, name);

View File

@ -1,7 +1,7 @@
/* loader-preopen.c -- emulate dynamic linking using preloaded_symbols
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -113,7 +110,7 @@ static const lt_dlsymlist *default_preloaded_symbols = 0;
/* A function called through the vtable to initialise this loader. */
static int
vl_init (lt_user_data LT__UNUSED loader_data)
vl_init (lt_user_data loader_data LT__UNUSED)
{
int errors = 0;
@ -130,7 +127,7 @@ vl_init (lt_user_data LT__UNUSED loader_data)
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
free_symlists ();
@ -142,8 +139,8 @@ vl_exit (lt_user_data LT__UNUSED loader_data)
loader. Returns an opaque representation of the newly opened
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
{
symlist_chain *lists;
lt_module module = 0;
@ -195,7 +192,7 @@ vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module)
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED)
{
/* Just to silence gcc -Wall */
module = 0;
@ -206,7 +203,7 @@ vm_close (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module)
/* A function called through the vtable to get the address of
a symbol loaded from a particular module. */
static void *
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name)
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
{
lt_dlsymlist *symbol = (lt_dlsymlist*) module;

View File

@ -1,7 +1,7 @@
/* loader-shl_load.c -- dynamic linking with shl_load (HP-UX)
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -138,7 +135,7 @@ get_vtable (lt_user_data loader_data)
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data LT__UNUSED loader_data)
vl_exit (lt_user_data loader_data LT__UNUSED)
{
vtable = NULL;
return 0;
@ -148,8 +145,8 @@ vl_exit (lt_user_data LT__UNUSED loader_data)
loader. Returns an opaque representation of the newly opened
module for processing with this loader's other vtable functions. */
static lt_module
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
{
static shl_t self = (shl_t) 0;
lt_module module = shl_load (filename, LT_BIND_FLAGS, 0L);
@ -184,7 +181,7 @@ vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
{
int errors = 0;
@ -201,7 +198,7 @@ vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
/* A function called through the vtable to get the address of
a symbol loaded from a particular module. */
static void *
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name)
vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name)
{
void *address = 0;

View File

@ -1,7 +1,7 @@
/* lt__alloc.c -- internal memory management interface
Copyright (C) 2004, 2006-2007, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2004, 2006-2007, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"

View File

@ -1,7 +1,7 @@
/* lt__argz.c -- argz implementation for non-glibc systems
Copyright (C) 2004, 2006-2008, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2004, 2006-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#if defined LTDL && defined LT_CONFIG_H
@ -156,7 +153,7 @@ argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry)
return ENOMEM;
/* Make BEFORE point to the equivalent offset in ARGZ that it
used to have in *PARGZ incase realloc() moved the block. */
used to have in *PARGZ in case realloc() moved the block. */
before = argz + offset;
/* Move the ARGZ entries starting at BEFORE up into the new

View File

@ -1,6 +1,7 @@
/* lt__dirent.c -- internal directory entry scanning interface
Copyright (C) 2001, 2004, 2011-2014 Free Software Foundation, Inc.
Copyright (C) 2001, 2004, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Bob Friesenhahn, 2001
NOTE: The canonical source of this file is maintained with the
@ -22,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"

View File

@ -1,6 +1,7 @@
/* lt__strl.c -- size-bounded string copying and concatenation
Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc.
Copyright (C) 2004, 2011-2019, 2021-2026 Free Software Foundation,
Inc.
Written by Bob Friesenhahn, 2004
NOTE: The canonical source of this file is maintained with the
@ -22,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include <assert.h>

View File

@ -1,7 +1,7 @@
/* lt_dlloader.c -- dynamic library loader interface
Copyright (C) 2004, 2007-2008, 2011-2014 Free Software Foundation,
Inc.
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -168,6 +165,10 @@ lt_dlloader_remove (const char *name)
/* Fail if there are any open modules that use this loader. */
iface = lt_dlinterface_register (id_string, NULL);
if (!iface)
/* No memory, error is already set. */
return 0;
while ((handle = lt_dlhandle_iterate (iface, handle)))
{
lt_dlhandle cur = handle;

View File

@ -1,7 +1,7 @@
/* lt_error.c -- error propagation interface
Copyright (C) 1999-2001, 2004-2005, 2007, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1999-2001, 2004-2005, 2007, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1999
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"

View File

@ -1,7 +1,7 @@
/* ltdl.c -- system independent dlopen wrapper
Copyright (C) 1998-2000, 2004-2008, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 1998-2000, 2004-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lt__private.h"
@ -91,7 +88,6 @@ static const char sys_dlsearch_path[] = LT_DLSEARCH_PATH;
/* --- DYNAMIC MODULE LOADING --- */
@ -789,10 +785,9 @@ find_handle_callback (char *filename, void *data, void *data2)
if (notfound)
return 0;
/* Try to dlopen the file, but do not continue searching in any
case. */
/* Try to dlopen the file. */
if (tryall_dlopen (phandle, filename, advise, 0) != 0)
*phandle = 0;
return 0;
return 1;
}
@ -815,7 +810,7 @@ find_handle (const char *search_path, const char *base_name,
#if !defined LTDL_DLOPEN_DEPLIBS
static int
load_deplibs (lt_dlhandle handle, char * LT__UNUSED deplibs)
load_deplibs (lt_dlhandle handle, char * deplibs LT__UNUSED)
{
handle->depcount = 0;
return 0;
@ -1372,9 +1367,12 @@ try_dlopen (lt_dlhandle *phandle, const char *filename, const char *ext,
}
#endif
#if defined LT_DLSEARCH_PATH
if (!file && *sys_dlsearch_path)
if (!file)
{
file = find_file (sys_dlsearch_path, base_name, &dir);
if (*sys_dlsearch_path)
{
file = find_file (sys_dlsearch_path, base_name, &dir);
}
}
#endif
}
@ -1666,7 +1664,7 @@ lt_dlopenadvise (const char *filename, lt_dladvise advise)
|| !advise->try_ext
|| has_library_ext (filename))
{
/* Just incase we missed a code path in try_dlopen() that reports
/* Just in case we missed a code path in try_dlopen() that reports
an error, but forgot to reset handle... */
if (try_dlopen (&handle, filename, NULL, advise) != 0)
return 0;
@ -1921,24 +1919,27 @@ lt_dlforeachfile (const char *search_path,
is_done = foreach_dirinpath (user_search_path, 0,
foreachfile_callback, fpptr, data);
if (!is_done)
{
is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0,
{
is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0,
foreachfile_callback, fpptr, data);
}
}
#if defined LT_MODULE_PATH_VAR
if (!is_done)
{
is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0,
foreachfile_callback, fpptr, data);
}
{
is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0,
foreachfile_callback, fpptr, data);
}
#endif
#if defined LT_DLSEARCH_PATH
if (!is_done && *sys_dlsearch_path)
{
is_done = foreach_dirinpath (sys_dlsearch_path, 0,
foreachfile_callback, fpptr, data);
}
if (!is_done)
{
if (*sys_dlsearch_path)
{
is_done = foreach_dirinpath (sys_dlsearch_path, 0,
foreachfile_callback, fpptr, data);
}
}
#endif
}
@ -1970,7 +1971,7 @@ lt_dlclose (lt_dlhandle handle)
cur->info.ref_count--;
/* Note that even with resident modules, we must track the ref_count
correctly incase the user decides to reset the residency flag
correctly in case the user decides to reset the residency flag
later (even though the API makes no provision for that at the
moment). */
if (cur->info.ref_count <= 0 && !LT_DLIS_RESIDENT (cur))

View File

@ -1,7 +1,7 @@
/* ltdl.h -- generic dlopen functions
Copyright (C) 1998-2000, 2004-2005, 2007-2008, 2011-2014 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004-2005, 2007-2008, 2011-2019, 2021-2026
Free Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
/* Only include this header file once. */
@ -37,13 +34,16 @@ or obtained by writing to the Free Software Foundation, Inc.,
#include <libltdl/lt_error.h>
#include <libltdl/lt_dlloader.h>
#if defined _WIN32 && !defined __CYGWIN__
#include <io.h>
#endif
LT_BEGIN_C_DECLS
/* LT_STRLEN can be used safely on NULL pointers. */
#define LT_STRLEN(s) (((s) && (s)[0]) ? strlen (s) : 0)
/* --- DYNAMIC MODULE LOADING API --- */
@ -110,7 +110,6 @@ extern LT_DLSYM_CONST lt_dlsymlist lt__PROGRAM__LTX_preloaded_symbols[];
/* --- MODULE INFORMATION --- */

View File

@ -1,7 +1,7 @@
## ltdl.mk -- includable Makefile snippet
##
## Copyright (C) 2003-2005, 2007, 2011-2014 Free Software Foundation,
## Inc.
## Copyright (C) 2003-2005, 2007, 2011-2019, 2021-2026 Free Software
## Foundation, Inc.
## Written by Gary V. Vaughan, 2003
##
## NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@
## GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU LesserGeneral Public
## License along with GNU Libltdl; see the file COPYING.LIB. If not, a
## copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
## or obtained by writing to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
## License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
#####
## DO NOT REMOVE THIS LINE -- make depends on it
@ -34,11 +31,11 @@
# -I$(srcdir) is needed for user that built libltdl with a sub-Automake
# (not as a sub-package!) using 'nostdinc':
AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \
-DLTDL -I. -I$(srcdir) \
-Ilibltdl -I$(srcdir)/libltdl \
-Ilibltdl/libltdl -I$(srcdir)/libltdl/libltdl
-DLTDL -I. -I$(srcdir) -Ilibltdl \
-I$(srcdir)/libltdl -Ilibltdl/libltdl \
-I$(srcdir)/libltdl/libltdl
AM_LDFLAGS += -no-undefined
LTDL_VERSION_INFO = -version-info 10:1:3
LTDL_VERSION_INFO = -version-info 10:5:3
noinst_LTLIBRARIES += $(LT_DLLOADERS)
@ -134,7 +131,9 @@ EXTRA_DIST += libltdl/COPYING.LIB \
## Gnulib Makefile.am snippets ##
## --------------------------- ##
if LTARGZH_EXISTS
BUILT_SOURCES += libltdl/libltdl/$(LT_ARGZ_H)
endif
EXTRA_DIST += libltdl/libltdl/lt__argz_.h \
libltdl/lt__argz.c

View File

@ -1,7 +1,7 @@
/* slist.c -- generalised singly linked lists
Copyright (C) 2000, 2004, 2007-2009, 2011-2014 Free Software
Foundation, Inc.
Copyright (C) 2000, 2004, 2007-2009, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Written by Gary V. Vaughan, 2000
NOTE: The canonical source of this file is maintained with the
@ -23,10 +23,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
or obtained by writing to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
*/
#include <assert.h>

297
libtool-next-version.in Normal file
View File

@ -0,0 +1,297 @@
#! /bin/sh
#
# Copyright (C) 2019-2026 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# This program is a wizard that helps a maintainer update the libtool
# version of a shared library, according to the documentation section
# 'Updating version info'
# <https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html>.
#
# Let's call the three parts of the version
# LTV_CURRENT
# LTV_REVISION
# LTV_AGE
#
# The list of steps given in this documentation section
# - If the library source code has changed at all since the last update,
# then increment LTV_REVISION.
# - If any interfaces have been added, removed, or changed since the last
# update, increment LTV_CURRENT and set LTV_REVISION to 0.
# - If any interfaces have been added since the last public release, then
# increment LTV_AGE.
# - If any interfaces have been removed or changed since the last public
# release, then set LTV_AGE to 0.
# leads to mistakes, because
# - It does not say what "interfaces" are.
# - It does not enforce that applying the second, third, or fourth rule
# is only possible after applying the first rule.
# - It does not enforce that applying the third or fourth rule is only
# possible after applying the second rule.
# func_usage
# outputs to stdout the --help usage message.
func_usage ()
{
echo "\
Usage: libtool-next-version [OPTION]... PREVIOUS-LIBRARY CURRENT-LIBRARY
Determines the next version to use for a libtool library.
PREVIOUS-LIBRARY is the installed library (in .a or .so format) of the
previous release.
CURRENT-LIBRARY is the installed library (in .a or .so format) of the current
release candidate.
Options:
--help print this help and exit
--version print version information and exit
Send patches and bug reports to <@PACKAGE_BUGREPORT@>."
}
# func_version
# outputs to stdout the --version message.
func_version ()
{
sed_extract_copyright_year='/Copyright (C)/{
s/.*\([0-9][0-9][0-9][0-9]\).*/\1/p
q
}'
copyright_year=`sed -n -e "$sed_extract_copyright_year" < "$0"`
echo "libtool-next-version (GNU @PACKAGE@) @VERSION@"
echo "Copyright (C) $copyright_year Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."
echo
printf 'Written by %s.\n' "Bruno Haible"
}
# func_fatal_error message
# outputs to stderr a fatal error message, and terminates the program.
func_fatal_error ()
{
echo "libtool-next-version: *** $1" 1>&2
echo "libtool-next-version: *** Stop." 1>&2
exit 1
}
# func_tmpdir
# creates a temporary directory.
# Sets variable
# - tmp pathname of freshly created temporary directory
func_tmpdir ()
{
# Use the environment variable TMPDIR, falling back to /tmp. This allows
# users to specify a different temporary directory, for example, if their
# /tmp is filled up or too small.
: "${TMPDIR=/tmp}"
{
# Use the mktemp program if available. If not available, hide the error
# message.
tmp=`(umask 077 && mktemp -d -q "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
# Use a simple mkdir command. It is guaranteed to fail if the directory
# already exists. $RANDOM is bash specific and expands to empty in shells
# other than bash, ksh and zsh. Its use does not increase security;
# rather, it minimizes the probability of failure in a very cluttered /tmp
# directory.
tmp=$TMPDIR/gt$$-$RANDOM
(umask 077 && mkdir "$tmp")
} ||
{
echo "$0: cannot create a temporary directory in $TMPDIR" >&2
{ (exit 1); exit 1; }
}
}
# func_read_yesno
# reads an answer (yes or no).
# Sets variable
# - ans yes or no
func_read_yesno ()
{
while true; do
read ans
if test yes = "$ans" || test no = "$ans"; then
break
fi
echo "Invalid answer. Please answer yes or no."
done
}
# Command-line option processing.
while test $# -gt 0; do
case $1 in
--help | --hel | --he | --h )
func_usage
exit 0 ;;
--version | --versio | --versi | --vers | --ver | --ve | --v )
func_version
exit 0 ;;
-- ) # Stop option processing
shift; break ;;
-* )
func_fatal_error "unrecognized option: $option"
;;
* )
break ;;
esac
done
test $# = 2 || {
if test $# -gt 2; then
func_fatal_error "too many arguments"
else
func_fatal_error "Usage: libtool-next-version [OPTION]... PREVIOUS-LIBRARY CURRENT-LIBRARY"
fi
}
test -f "$1" || func_fatal_error "file $1 not found"
test -f "$2" || func_fatal_error "file $2 not found"
(type nm) >/dev/null || func_fatal_error "program 'nm' not found"
# Determine how to extract a symbol list from the 'nm' output.
case `uname -s` in
Linux | FreeBSD | NetBSD | OpenBSD) nm_filter="sed -n -e 's/^.* [TWDRB] //p'" ;;
Darwin) nm_filter="sed -n -e 's/^.* [TWDRB] _//p'" ;;
Minix) nm_filter="sed -n -e 's/^.* [TDC] _//p'" ;;
AIX) nm_filter="sed -n -e 's/ *[UD] .*//p' | sed -e 's/^\\.//'" ;;
HP-UX) nm_filter="grep '|extern|\\(code\\|data\\) |' | sed -e 's/|.*//' | sed -e 's/ *$//'" ;;
IRIX) nm_filter="grep '|\\(GLOB\\|WEAK\\)' | sed -e 's/^.*|//'" ;;
SunOS)
case `uname -r` in
5.10) nm_filter="sed -n -e 's/^.* [ATWDRBV] //p'" ;;
*) nm_filter="grep '|\\(GLOB\\|WEAK\\)' | grep -v '|UNDEF' | grep -v '|SUNW' | sed -e 's/^.*|//'" ;;
esac
;;
CYGWIN*) nm_filter="sed -n -e 's/^.* T _//p'" ;;
*) func_fatal_error "unknown OS - don't know how to interpret the 'nm' output" ;;
esac
nm_filter="$nm_filter | LC_ALL=C sort -u"
func_tmpdir
eval "nm '$1' | $nm_filter > '$tmp/symlist1'"
eval "nm '$2' | $nm_filter > '$tmp/symlist2'"
echo "Please enter the libtool version of the library in the previous release."
printf "LTV_CURRENT="; read current
nondigits=`echo "$current" | tr -d '0123456789'`
{ test -n "$current" && test -z "$nondigits"; } \
|| func_fatal_error "LTV_CURRENT is invalid. It should be a nonnegative integer."
printf "LTV_REVISION="; read revision
nondigits=`echo "$revision" | tr -d '0123456789'`
{ test -n "$revision" && test -z "$nondigits"; } \
|| func_fatal_error "LTV_REVISION is invalid. It should be a nonnegative integer."
printf "LTV_AGE="; read age
nondigits=`echo "$age" | tr -d '0123456789'`
{ test -n "$age" && test -z "$nondigits"; } \
|| func_fatal_error "LTV_AGE is invalid. It should be a nonnegative integer."
echo
echo "-------------------------------------------------------------------------------"
echo "Did the library's code change at all since the previous version?"
echo "You can usually detect this by looking at the source code changes in git;"
echo "don't forget source code that is imported from other projects."
if cmp "$tmp/symlist1" "$tmp/symlist2" >/dev/null; then
echo "Please answer yes or no."
else
echo "The symbol list changed. Here are the differences:"
(cd "$tmp" && diff symlist1 symlist2 | grep '^[<>]' | sed -e 's/^/ /')
echo "Please answer yes or no (probably yes)."
fi
func_read_yesno
if test yes = "$ans"; then
revision=`expr $revision + 1`
echo
echo "-------------------------------------------------------------------------------"
echo "Have any interfaces (functions, variables, classes) been removed since the"
echo "previous release? What matters here are interfaces at the linker level;"
echo "whether macros have been removed from the include files does not matter."
if diff "$tmp/symlist1" "$tmp/symlist2" | grep '^< ' >/dev/null; then
echo "Some symbols have been removed:"
diff "$tmp/symlist1" "$tmp/symlist2" | grep '^< ' | sed -e 's/^< / /'
echo "Please answer yes or no (probably yes)."
else
echo "Please answer yes or no."
fi
func_read_yesno
if test yes = "$ans"; then
current=`expr $current + 1`
revision=0
age=0
else
echo
echo "-------------------------------------------------------------------------------"
echo "Have any interfaces (functions, variables, classes) been changed since the"
echo "previous release? This includes signature changes. It includes also details of"
echo "how functions produce their results and the values of variables, IF AND ONLY IF"
echo "users of the library are likely use these details in their test suite."
echo "Please answer yes or no."
func_read_yesno
if test yes = "$ans"; then
current=`expr $current + 1`
revision=0
age=0
else
echo
echo "-------------------------------------------------------------------------------"
echo "Have any interfaces (functions, variables, classes) been added since the"
echo "previous release? What matters here are interfaces at the linker level;"
echo "whether macros have been added to the include files does not matter."
if diff "$tmp/symlist1" "$tmp/symlist2" | grep '^> ' >/dev/null; then
echo "Some symbols have been added:"
diff "$tmp/symlist1" "$tmp/symlist2" | grep '^> ' | sed -e 's/^> / /'
echo "Please answer yes or no (probably yes)."
else
echo "Please answer yes or no."
fi
func_read_yesno
if test yes = "$ans"; then
current=`expr $current + 1`
revision=0
age=`expr $age + 1`
fi
fi
fi
fi
echo
echo "-------------------------------------------------------------------------------"
echo "This is the libtool version of the library for the new release:"
echo "LTV_CURRENT=$current"
echo "LTV_REVISION=$revision"
echo "LTV_AGE=$age"

View File

@ -1,9 +1,9 @@
#! /bin/sh
#! /usr/bin/env sh
# Prepare a package to use libtool.
# Written by Gary V. Vaughan <gary@gnu.org>, 2003
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
# Copyright (C) 2003-2019, 2021-2026 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@ -63,6 +63,27 @@
# Set a version string.
scriptversion='(GNU @PACKAGE@) @VERSION@'
# func_version
# ------------
# Echo version message to standard output and exit.
func_version ()
{
$debug_cmd
year=`date +%Y`
cat <<EOF
$progname $scriptversion
Copyright (C) $year Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Gary V. Vaughan <gary@gnu.org>, 2003
EOF
exit $?
}
## ---------------- ##
## Options parsing. ##
@ -94,7 +115,12 @@ usage_message="Options:
"
# Additional text appended to 'usage_message' in response to '--help'.
long_help_message=$long_help_message"
func_help ()
{
$debug_cmd
func_usage_message
$ECHO "$long_help_message
'environment' show warnings about LIBTOOLIZE_OPTIONS content
'file' show warnings about file copying and linking
@ -114,14 +140,15 @@ When reporting a bug, please describe a test case to reproduce it and
include the following information:
host-triplet: @host_triplet@
version: $progname (GNU @PACKAGE@) @VERSION@
version: $progname $scriptversion
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
Report bugs to <@PACKAGE_BUGREPORT@>.
GNU @PACKAGE@ home page: <@PACKAGE_URL@>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
"
General help using GNU software: <https://www.gnu.org/gethelp/>."
exit 0
}
warning_categories='environment file'
@ -151,11 +178,11 @@ libtoolize_environment_options ()
# Pass back the updated list of options.
if test -n "$envopts"; then
func_quote_for_eval "$envopts" ${1+"$@"}
func_quote eval "$envopts" ${1+"$@"}
else
func_quote_for_eval ${1+"$@"}
func_quote eval ${1+"$@"}
fi
libtoolize_environment_options_result=$func_quote_for_eval_result
libtoolize_environment_options_result=$func_quote_result
}
func_add_hook func_options_prep libtoolize_environment_options
@ -179,10 +206,6 @@ libtoolize_options_prep ()
opt_subproject=false
ltdl_mode=
# Pass back the list of options.
func_quote_for_eval ${1+"$@"}
libtoolize_options_prep_result=$func_quote_for_eval_result
}
func_add_hook func_options_prep libtoolize_options_prep
@ -252,8 +275,8 @@ libtoolize_parse_options ()
done
# save modified positional parameters for caller
func_quote_for_eval ${1+"$@"}
libtoolize_parse_options_result=$func_quote_for_eval_result
func_quote eval ${1+"$@"}
libtoolize_parse_options_result=$func_quote_result
}
func_add_hook func_parse_options libtoolize_parse_options
@ -286,8 +309,8 @@ libtoolize_validate_options ()
func_fatal_help "unknown additional arguments: '${1+$@}'"
# Pass back the empty argument list
func_quote_for_eval ${1+"$@"}
libtoolize_validate_options_result=$func_quote_for_eval_result
func_quote eval ${1+"$@"}
libtoolize_validate_options_result=$func_quote_result
}
func_add_hook func_validate_options libtoolize_validate_options
@ -414,6 +437,33 @@ func_copy ()
else
my_copycmd=$LN_S
my_copy_type=linking
# The Windows linker, mklink, swaps link_name and target.
case $my_copycmd in
*mklink*)
my_temp=$my_destfile
my_destfile=$my_srcfile
my_srcfile=$my_temp
my_copy_msg="$my_copy_type file '$my_destfile'"
$opt_verbose && my_copy_msg="$my_copycmd $my_srcfile $my_destdir"
my_destfile=`cygpath -aw "$my_destfile"`
my_srcfile=`cygpath -aw "$my_srcfile"`
if test -d "$my_destfile"; then
case $host_os,$build_os in
mingw*,cygwin*)
my_copycmd="$my_copycmd /d" ;;
mingw*,*) # MSYS
my_copycmd="$my_copycmd //d" ;;
*)
my_copycmd="$my_copycmd /d" ;;
esac
fi
;;
*) ;;
esac
fi
my_copy_msg="$my_copy_type file '$my_destfile'"
$opt_verbose && my_copy_msg="$my_copycmd $my_srcfile $my_destdir"
@ -514,7 +564,7 @@ func_serial_max ()
my_sed_rest='s/^[0-9][1-9]*\.*//'
my_sed_digits='s/[^0-9.]//g'
# Incase they turn out to be the same, we'll set it to empty
# In case they turn out to be the same, we'll set it to empty
func_serial_max_result=
test "X$1$2" = X`$ECHO "$1$2" | $SED "$my_sed_digits"` || {
@ -655,6 +705,8 @@ func_serial_update ()
test -f "$my_srcfile" || func_fatal_error "'$my_srcfile' does not exist."
my_src_serial=
my_dest_serial=
if test -f "$my_destfile"; then
my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"`
my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"`
@ -680,7 +732,7 @@ func_serial_update ()
func_notquiet_hdr "$my_msg_var" "'$my_destfile' is already up to date."
fi
# Do this after the copy for hand maintained 'aclocal.m4', incase
# Do this after the copy for hand maintained 'aclocal.m4', in case
# it has 'm4_include([DESTFILE])', so the copy effectively already
# updated 'aclocal.m4'.
my_included_files=`func_included_files aclocal.m4`
@ -694,7 +746,7 @@ func_serial_update ()
# serial tags, so the update message will be correctly given
# if aclocal.m4 contains an untagged --i.e older-- macro file):
*)
if test -f aclocal.m4; then
if test -f aclocal.m4 && test '' != "$my_src_serial"; then
func_serial_max \
"$my_src_serial" `func_serial aclocal.m4 "$my_macro_regex"`
if test "X$my_src_serial" = "X$func_serial_max_result"; then
@ -945,7 +997,15 @@ func_install_pkgltdl_files ()
;;
config-h.in)
test subproject = "$ltdl_mode" || continue
test subproject = "$ltdl_mode" && {
# Always copy config-h.in, otherwise automake's autoheader rules
# will change the destination's timestamp if it is symlinked.
( opt_copy=:
func_copy "$file" "$pkgltdldir" "$ltdl_dir" \
pkgltdl_header "$my_copy_filter"
)
}
continue
;;
configure)

2
m4/.gitignore vendored
View File

@ -4,3 +4,5 @@
/gnulib-comp.m4
/gnulib-tool.m4
/ltversion.m4
/zzgnulib.m4
/init-package-version.m4

View File

@ -1,5 +1,6 @@
# autobuild.m4 serial 7
dnl Copyright (C) 2004, 2006-2014 Free Software Foundation, Inc.
dnl Copyright (C) 2004, 2006-2019, 2021-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

1424
m4/libtool.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,18 @@
# Portability macros for glibc argz. -*- Autoconf -*-
#
# Copyright (C) 2004-2007, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2004-2007, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan <gary@gnu.org>
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 1 ltargz.m4
# serial 2 ltargz.m4
AC_DEFUN([LT_FUNC_ARGZ], [
dnl Required for use of '$SED' in Cygwin configuration.
AC_REQUIRE([AC_PROG_SED])dnl
AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
AC_CHECK_TYPES([error_t],
@ -48,7 +51,7 @@ AS_IF([test -z "$LT_ARGZ_H"],
lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
save_IFS=$IFS
IFS=-.
set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
set x `uname -r | $SED -e "$lt_sed_extract_leading_digits"`
IFS=$save_IFS
lt_os_major=${2-0}
lt_os_minor=${3-0}

View File

@ -1,13 +1,14 @@
# ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*-
#
# Copyright (C) 1999-2008, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 1999-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Thomas Tanner, 1999
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 20 LTDL_INIT
# serial 24 LTDL_INIT
# LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE])
# ------------------------------------------
@ -335,7 +336,7 @@ AC_CONFIG_COMMANDS_PRE([
if test -n "$_LT_LIBOBJS"; then
# Remove the extension.
_lt_sed_drop_objext='s/\.o$//;s/\.obj$//'
for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do
for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | $SED "$_lt_sed_drop_objext" | sort -u`; do
_ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
_ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"
done
@ -434,7 +435,8 @@ esac
m4_ifdef([AM_CONDITIONAL],
[AM_CONDITIONAL(INSTALL_LTDL, test no != "${enable_ltdl_install-no}")
AM_CONDITIONAL(CONVENIENCE_LTDL, test no != "${enable_ltdl_convenience-no}")])
AM_CONDITIONAL(CONVENIENCE_LTDL, test no != "${enable_ltdl_convenience-no}")
AM_CONDITIONAL(LTARGZH_EXISTS, test -n "$LT_ARGZ_H")])
])# _LT_ENABLE_INSTALL
@ -465,15 +467,12 @@ AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
;;
esac
;;
bitrig*)
lt_cv_sys_dlopen_deplibs=yes
;;
darwin*)
# Assuming the user has installed a libdl from somewhere, this is true
# If you are looking for one http://www.opendarwin.org/projects/dlcompat
lt_cv_sys_dlopen_deplibs=yes
;;
freebsd* | dragonfly*)
freebsd* | dragonfly* | midnightbsd*)
lt_cv_sys_dlopen_deplibs=yes
;;
gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
@ -496,7 +495,10 @@ AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
# at 6.2 and later dlopen does load deplibs.
lt_cv_sys_dlopen_deplibs=yes
;;
netbsd*)
*-mlibc)
lt_cv_sys_dlopen_deplibs=yes
;;
netbsd* | netbsdelf*-gnu)
lt_cv_sys_dlopen_deplibs=yes
;;
openbsd*)
@ -712,7 +714,7 @@ darwin[[1567]].*)
beos*)
LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
;;
cygwin* | mingw* | pw32*)
cygwin* | mingw* | windows* | pw32*)
AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
;;
@ -760,7 +762,7 @@ AC_CACHE_CHECK([for _ prefix in compiled symbols],
[lt_cv_sys_symbol_underscore=no
cat > conftest.$ac_ext <<_LT_EOF
void nm_test_func(){}
int main(){nm_test_func;return 0;}
int main(void){nm_test_func;return 0;}
_LT_EOF
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
@ -864,7 +866,7 @@ _LT_EOF
# define RTLD_NOW 0
# endif
#endif
int main () {
int main (void) {
void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW);
int status = $libltdl_dlunknown;
if (handle) {

162
m4/ltoptions.m4 vendored
View File

@ -1,14 +1,14 @@
# Helper functions for option handling. -*- Autoconf -*-
#
# Copyright (C) 2004-2005, 2007-2009, 2011-2014 Free Software
# Foundation, Inc.
# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2026 Free
# Software Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 8 ltoptions.m4
# serial 12 ltoptions.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@ -80,6 +80,7 @@ m4_if([$1],[LT_INIT],[
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
_LT_UNLESS_OPTIONS([LT_INIT], [cxx-stdlib no-cxx-stdlib], [_LT_ENABLE_CXX_STDLIB])
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
[_LT_ENABLE_FAST_INSTALL])
_LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
@ -128,7 +129,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
[enable_win32_dll=yes
case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
@ -323,29 +324,39 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
# _LT_WITH_AIX_SONAME([DEFAULT])
# ----------------------------------
# implement the --with-aix-soname flag, and support the `aix-soname=aix'
# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
# implement the --enable-aix-soname configure option, and support the
# `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options.
# DEFAULT is either `aix', `both', or `svr4'. If omitted, it defaults to `aix'.
m4_define([_LT_WITH_AIX_SONAME],
[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[[5-9]]*,yes)
AC_MSG_CHECKING([which variant of shared library versioning to provide])
AC_ARG_WITH([aix-soname],
[AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
AC_ARG_ENABLE([aix-soname],
[AS_HELP_STRING([--enable-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
[case $withval in
aix|svr4|both)
;;
*)
AC_MSG_ERROR([Unknown argument to --with-aix-soname])
;;
esac
lt_cv_with_aix_soname=$with_aix_soname],
[AC_CACHE_VAL([lt_cv_with_aix_soname],
[lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
with_aix_soname=$lt_cv_with_aix_soname])
[case $enableval in
aix|svr4|both)
;;
*)
AC_MSG_ERROR([Unknown argument to --enable-aix-soname])
;;
esac
lt_cv_with_aix_soname=$enable_aix_soname],
[_AC_ENABLE_IF([with], [aix-soname],
[case $withval in
aix|svr4|both)
;;
*)
AC_MSG_ERROR([Unknown argument to --with-aix-soname])
;;
esac
lt_cv_with_aix_soname=$with_aix_soname],
[AC_CACHE_VAL([lt_cv_with_aix_soname],
[lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)])
enable_aix_soname=$lt_cv_with_aix_soname])
with_aix_soname=$enable_aix_soname
AC_MSG_RESULT([$with_aix_soname])
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
@ -360,8 +371,16 @@ power*-*-aix[[5-9]]*,yes)
fi
fi
;;
*)
power*-*-aix[[5-9]]*,'')
AC_MSG_WARN([for $host, specify if building shared libraries for versioning (svr4|both)])
AC_MSG_CHECKING([which variant of shared library versioning to provide])
with_aix_soname=aix
AC_MSG_RESULT([(default) $with_aix_soname])
;;
*)
AC_MSG_CHECKING([which variant of shared library versioning to provide])
with_aix_soname=aix
AC_MSG_RESULT([(default) $with_aix_soname])
;;
esac
@ -376,30 +395,50 @@ LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
# _LT_WITH_PIC([MODE])
# --------------------
# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
# implement the --enable-pic flag, and support the 'pic-only' and 'no-pic'
# LT_INIT options.
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
m4_define([_LT_WITH_PIC],
[AC_ARG_WITH([pic],
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[AC_ARG_ENABLE([pic],
[AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
[lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $withval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[pic_mode=m4_default([$1], [default])])
case $enableval in
yes|no) pic_mode=$enableval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[dnl Continue to support --with-pic and --without-pic, for backward
dnl compatibility.
_AC_ENABLE_IF([with], [pic],
[lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $withval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[pic_mode=m4_default([$1], [default])])]
)
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
])# _LT_WITH_PIC
@ -418,6 +457,49 @@ put the 'pic-only' option into LT_INIT's first parameter.])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
# _LT_ENABLE_CXX_STDLIB([MODE])
# --------------------
# implement the --enable-cxx-stdlib flag, and support the 'cxx-stdlib' and 'no-cxx-stdlib'
# LT_INIT options.
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'no'.
m4_define([_LT_ENABLE_CXX_STDLIB],
[m4_define([_LT_ENABLE_CXX_STDLIB_DEFAULT], [m4_if($1, yes, yes, no)])dnl
stdlibflag=-nostdlib
AC_ARG_ENABLE([cxx-stdlib],
[AS_HELP_STRING([--enable-cxx-stdlib@<:@=PKGS@:>@],
[let the compiler frontend decide what standard libraries to link when building C++ shared libraries and modules @<:@default=]_LT_ENABLE_CXX_STDLIB_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_cxx_stdlib=yes ;;
no) enable_cxx_stdlib=no ;;
*)
enable_cxx_stdlib=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_cxx_stdlib=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_cxx_stdlib=]_LT_ENABLE_CXX_STDLIB_DEFAULT)
if test yes = "$enable_cxx_stdlib"; then
stdlibflag=
fi
_LT_DECL([], [enable_cxx_stdlib], [0], [Whether to let the compiler frontend decide what standard libraries to link when building C++ shared libraries and modules])dnl
_LT_DECL([], [stdlibflag], [0], [Flag used for specifying not to link standard libraries])dnl
])# _LT_ENABLE_CXX_STDLIB
LT_OPTION_DEFINE([LT_INIT], [cxx-stdlib], [_LT_ENABLE_CXX_STDLIB([yes])])
LT_OPTION_DEFINE([LT_INIT], [no-cxx-stdlib], [_LT_ENABLE_CXX_STDLIB([no])])
## ----------------- ##
## LTDL_INIT Options ##
## ----------------- ##

2
m4/ltsugar.m4 vendored
View File

@ -1,6 +1,6 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
# Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#

View File

@ -1,6 +1,7 @@
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
# Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2004, 2011-2019, 2021-2026 Free Software Foundation,
# Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives

4
m4/lt~obsolete.m4 vendored
View File

@ -1,7 +1,7 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
# Copyright (C) 2004-2005, 2007, 2009, 2011-2014 Free Software
# Foundation, Inc.
# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2026 Free
# Software Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
# This file is free software; the Free Software Foundation gives

83
m4/m4.m4 Normal file
View File

@ -0,0 +1,83 @@
# m4.m4 serial 12
# Copyright (C) 2000, 2006-2019, 2021-2026 Free Software Foundation,
# Inc.
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without warranty of any kind.
# AC_PROG_GNU_M4
# --------------
# Check for GNU M4, at least 1.4.6 (all earlier versions had bugs in
# trace support and regexp support):
# http://lists.gnu.org/archive/html/bug-gnu-utils/2006-11/msg00096.html
# http://lists.gnu.org/archive/html/bug-autoconf/2009-07/msg00023.html
# Also, check whether --error-output (through 1.4.x) or --debugfile (2.0)
# is supported, and AC_SUBST M4_DEBUGFILE accordingly.
# Also avoid versions of m4 that trigger strstr bugs.
AC_DEFUN([AC_PROG_GNU_M4],
[AC_ARG_VAR([M4], [Location of GNU M4 1.4.6 or later. Defaults to the first
program of 'm4', 'gm4', or 'gnum4' on PATH that meets Autoconf needs.])
AC_CACHE_CHECK([for GNU M4 that supports accurate traces], [ac_cv_path_M4],
[rm -f conftest.m4f
ac_had_posixly_correct=${POSIXLY_CORRECT:+yes}
AS_UNSET([POSIXLY_CORRECT])
AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4 gnum4],
[dnl Creative quoting here to avoid raw dnl and ifdef in configure.
# Root out GNU M4 1.4.5, as well as non-GNU m4 that ignore -t, -F.
# Root out GNU M4 1.4.15 with buggy false negative replacement strstr.
# Root out Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 with buggy
# false positive strstr.
ac_snippet=change'quote(<,>)in''dir(<if''def>,mac,bug)'
ac_snippet=${ac_snippet}pat'subst(a,\(b\)\|\(a\),\1)d'nl
ac_snippet=$ac_snippet${as_nl}if'else(in''dex(..wi.d.,.d.),-1,bug)'
ac_snippet=$ac_snippet${as_nl}if'else(in''dex(dnl
;:11-:12-:12-:12-:12-:12-:12-:12-:12.:12.:12.:12.:12.:12.:12.:12.:12-,dnl
:12-:12-:12-:12-:12-:12-:12-:12-),-1,,strstr-bug2)'
test -z "`$ac_path_M4 -F conftest.m4f </dev/null 2>&1`" \
&& test -z "`AS_ECHO([$ac_snippet]) | $ac_path_M4 --trace=mac 2>&1`" \
&& test -f conftest.m4f \
&& ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:
rm -f conftest.m4f],
[AC_MSG_ERROR([no acceptable m4 could be found in \$PATH.
GNU M4 1.4.6 or later is required; 1.4.16 or newer is recommended.
GNU M4 1.4.15 uses a buggy replacement strstr on some systems.
Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug.])])])
M4=$ac_cv_path_M4
AC_CACHE_CHECK([whether $ac_cv_path_M4 accepts --gnu],
[ac_cv_prog_gnu_m4_gnu],
[case `$M4 --help < /dev/null 2>&1` in
*--gnu*) ac_cv_prog_gnu_m4_gnu=yes ;;
*) ac_cv_prog_gnu_m4_gnu=no ;;
esac])
if test yes = "$ac_cv_prog_gnu_m4_gnu"; then
M4_GNU=--gnu
else
M4_GNU=
fi
AC_SUBST([M4_GNU])
if test yes = "$ac_had_posixly_correct"; then
POSIXLY_CORRECT=:
if test no = $ac_cv_prog_gnu_m4_gnu; then
AC_MSG_WARN([the version of M4 that was found does not support -g])
AC_MSG_WARN([using it with POSIXLY_CORRECT set may cause problems])
fi
fi
AC_CACHE_CHECK([how m4 supports trace files], [ac_cv_prog_gnu_m4_debugfile],
[case `$M4 --help < /dev/null 2>&1` in
*debugfile*) ac_cv_prog_gnu_m4_debugfile=--debugfile ;;
*) ac_cv_prog_gnu_m4_debugfile=--error-output ;;
esac])
AC_SUBST([M4_DEBUGFILE], [$ac_cv_prog_gnu_m4_debugfile])
])
# Compatibility for bootstrapping with Autoconf 2.61.
dnl FIXME - replace this with AC_PREREQ([2.62]) after the release.
# AC_PATH_PROGS_FEATURE_CHECK was added the same time the slightly broken,
# undocumented _AC_PATH_PROG_FEATURE_CHECK was deleted.
m4_ifndef([AC_PATH_PROGS_FEATURE_CHECK],
[m4_define([AC_PATH_PROGS_FEATURE_CHECK],
[_AC_PATH_PROG_FEATURE_CHECK([$1], [$2], [$3], [$5])
])])

View File

@ -1,6 +1,7 @@
# am-subdir.at -- libtool subdir-objects support -*- Autotest -*-
# Copyright (C) 2004, 2008, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2004, 2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####

View File

@ -1,6 +1,7 @@
# dmacks.at -- test for dmacks bug -*- Autotest -*-
#
# Copyright (C) 2007-2008, 2010-2014 Free Software Foundation, Inc.
# Copyright (C) 2007-2008, 2010-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Peter O'Gorman, 2007
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####

View File

@ -1,6 +1,6 @@
# bindir.at - Test the -bindir option
#
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
# Copyright (C) 2009-2019, 2021-2026 Free Software Foundation, Inc.
# Written by Dave Korn, 2009
#
# This file is part of GNU Libtool.
@ -16,10 +16,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
####
@ -65,7 +62,7 @@ AT_SETUP([bindir basic lib test])
bindirneeded=:
case $host_os in
cygwin*|mingw*|cegcc*)
cygwin*|mingw*|windows*|cegcc*)
;;
*)
bindirneeded=false
@ -174,7 +171,7 @@ AT_SETUP([bindir install tests])
bindirneeded=:
case $host_os in
cygwin*|mingw*|cegcc*)
cygwin*|mingw*|windows*|cegcc*)
;;
*)
bindirneeded=false

61
tests/bug_42313.at Normal file
View File

@ -0,0 +1,61 @@
# bug_42313.at -- bug 42313 -*- Autotest -*-
# Copyright (C) 2024-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([Testing bug 42313:])
AT_SETUP([verify no autoscan AC_PROG_RANLIB warning])
AT_DATA([configure.ac],
[[
AC_PREREQ([2.69])
AC_INIT([testcase], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AC_OUTPUT
]])
LT_AT_LIBTOOLIZE([--install])
LT_AT_AUTORECONF([--install])
AT_CHECK([autoscan || exit 77], [0], [stdout], [stderr])
AT_CHECK([$GREP -- 'AC_PROG_RANLIB' stderr], [1], [ignore])
AT_CLEANUP
AT_SETUP([check AC_PROG_RANLIB declaration has warning])
AT_DATA([configure.ac],
[[
AC_PREREQ([2.69])
AC_INIT([testcase], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AC_PROG_CPP
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_OUTPUT
]])
LT_AT_LIBTOOLIZE([--install])
LT_AT_AUTORECONF([--install])
AT_CHECK([$GREP -- 'obsolete' stdout], [0], [ignore])
AT_CLEANUP

67
tests/bug_62343.at Normal file
View File

@ -0,0 +1,67 @@
# bug_62343.at -- bug 62343 -*- Autotest -*-
# Copyright (C) 2024-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([Testing bug 62343:])
AT_SETUP([Use -no-canonical-prefixes flag])
AT_CHECK([$LIBTOOL --config | $EGREP '^build_libtool_libs=no' && (exit 77)], 1)
AT_DATA([x.cpp],
[[
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
]])
# The -no-canonical-prefixes flag sometimes fails at the compiler level
# depending on how the environment is set up, or which other flags have to be passed.
# So first try to compile without libtool first to test if the current environment
# supports the -no-canonical-prefixes flag. If it doesn't, skip the test.
$CXX -no-canonical-prefixes -c x.cpp
result=$?
if test 0 -ne "$result"; then
AT_SKIP_IF([:])
fi
AT_CHECK([$LIBTOOL --mode=compile --tag=CXX $CXX -no-canonical-prefixes -c x.cpp], [0], [stdout], [stderr])
AT_CHECK([$GREP -- '-no-canonical-prefixes' stdout], [0], [ignore])
host_flags=:
case $host_os in
cygwin* | mingw* | windows*)
host_flags=-no-undefined
;;
*)
;;
esac
AT_CHECK([$LIBTOOL --mode=link --tag=CXX $CXX -no-canonical-prefixes $host_flags -o libx.la -rpath /usr/lib64/ x.lo], [0], [stdout], [stderr])
AT_CHECK([$GREP -- '-no-canonical-prefixes' stdout], [0], [ignore])
AT_CLEANUP

420
tests/bug_71489.at Normal file
View File

@ -0,0 +1,420 @@
# bug_71489.at test local version of installed program is used
# Copyright (C) 2024-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
## --------------------- ##
## Bug testing ##
## --------------------- ##
AT_BANNER([Testing bug 71489:])
AT_SETUP([Local version of program with local library])
AT_KEYWORDS([bug_71489])
# Create root test directory.
top_dir=test71489_1
mkdir $top_dir
top_dir=$(cd $top_dir; pwd)
# Create the libtool library that the program will depend on.
lib=$top_dir/lib
mkdir $lib
# Create the external library. This is a very simple autotools program, which
# contains one function.
AT_DATA([[$lib/Makefile.am]],
[[
lib_LTLIBRARIES = libltb1.la
libltb1_la_SOURCES = libltb1.c
libltb1_la_CPPFLAGS=-I$(top_srcdir)
]])
AT_DATA([["$lib/libltb1.c"]],
[[
#include <stdio.h>
void
ltb_version (void)
{
printf ("ltbug: %s\n", LTBUG_ID);
}
]])
# Create src directory, which is linked to the library created above.
src=$top_dir/src
mkdir $src
AT_DATA([["$src/Makefile.am"]],
[[
bin_PROGRAMS = ltb1
ltb1_SOURCES = main.c
ltb1_LDFLAGS = $(CF_LIB_FLAGS)
ltb1_LDADD = ../lib/libltb1.la
AM_CPPFLAGS = -I$(top_srcdir)
]])
AT_DATA([["$src/main.c"]],
[[
#include <ltb1.h>
int
main (int argc, char **argv)
{
ltb_version ();
return 0;
}
]])
# Create root autotools files and code.
AT_DATA([["$top_dir/Makefile.am"]],
[[
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = lib src
noinst_HEADERS = ltb1.h
EXTRA_DIST = test.sh
]])
AT_DATA([["$top_dir/configure.ac"]],
[[
AC_PREREQ([2.69])
AC_INIT([ltbug], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
# Checks for programs.
AC_PROG_CC
LT_PREREQ([2.4.6])
LT_INIT
AC_ARG_VAR([LTBUG_ID],[Identifier of the bug case])
if test -z "$LTBUG_ID"; then
LTBUG_ID=local
fi
AC_DEFINE_UNQUOTED([LTBUG_ID],["$LTBUG_ID"],
[Text string identifying the library])
AC_SUBST([CF_LIB_FLAGS],['-L$(libdir) -rpath $(libdir)'])
AC_CONFIG_FILES([Makefile lib/Makefile src/Makefile])
AC_OUTPUT
]])
AT_DATA([["$top_dir/ltb1.h"]],
[[
extern void ltb_version (void);
extern void ltb2_version (void);
]])
echo "Running autoreconf on project directory"
(
cd $top_dir
pwd
LT_AT_LIBTOOLIZE([--install])
LT_AT_AUTORECONF([-i])
)
# Create two directories, one which has the local copy and one which has
# the installed copy.
mkdir build_inst build_local prefix_dir
prefix=$(cd prefix_dir; pwd)
echo "Building and installing library"
(
cd build_inst
LT_AT_CONFIGURE([--prefix=$prefix LTBUG_ID='installed'], [$top_dir/configure])
LT_AT_MAKE([])
LT_AT_MAKE([install])
)
echo "Building local copy of the project"
(
cd build_local
LT_AT_CONFIGURE([--prefix=$prefix], [$top_dir/configure])
LT_AT_MAKE([])
LT_AT_MAKE([install])
)
# Although we have installed ltbug, we still expect that we are using the local version.
cat > expout <<EOF
ltbug: local
EOF
case $host_os in
mingw* | windows*)
awk '{printf ("%s\r\n", [$]0);}' < expout > expout.t && mv -f expout.t expout
;;
cygwin*)
awk '{printf ("%s\n", [$]0);}' < expout > expout.t && mv -f expout.t expout
;;
esac
build_local/src/ltb1 > stdout
echo "Comparing expout to the build binary"
AT_CHECK([cmp -s stdout expout], [0])
AT_CLEANUP
AT_SETUP([Local version of program with external library])
# Test local version of installed program is used with external library.
# Create root test directory.
top_dir=test71489_2
mkdir $top_dir
top_dir=$(cd $top_dir; pwd)
ext_lib_dir=$top_dir/ltb2dep
ltb2=$top_dir/ltb2
# Create ltb2 directory. This will contain two libraries,
# liba and libb. liba will depend on an external libtool library.
mkdir $ltb2
# Create the directory which will contain the external dependency liba relies on.
mkdir $ext_lib_dir
# Create the external library. This is a very simple autotools program, which
# contains one function.
AT_DATA([[$ext_lib_dir/configure.ac]],
[[
AC_PREREQ([2.69])
AC_INIT([libltb2dep], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
LT_PREREQ([2.4.6])
LT_INIT
AC_ARG_VAR([LTBUG_ID],[Identifier of the bug case])
if test -z "$LTBUG_ID"; then
LTBUG_ID="local version"
fi
AC_DEFINE_UNQUOTED([LTBUG_ID],["$LTBUG_ID"],
[Text string identifying the library])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
]])
AT_DATA([["$ext_lib_dir/Makefile.am"]],
[[
lib_LTLIBRARIES = libltb2dep.la
libltb2dep_la_SOURCES = main.c
]])
AT_DATA([["$ext_lib_dir/main.c"]],
[[
#include <stdio.h>
void
dummy (void)
{
}
]])
# Create liba, which is linked to the external library created above.
mkdir "$ltb2/liba"
AT_DATA([["$ltb2/liba/Makefile.am"]],
[[
lib_LTLIBRARIES = libltb2a.la
libltb2a_la_SOURCES = libltb2a.c
libltb2a_la_LIBADD = -L$(libdir) -lltb2dep
]])
# Print out the flag LTBUG_ID. This will show if we are using the installed version
# of this library or the local version.
AT_DATA([["$ltb2/liba/libltb2a.c"]],
[[
#include <stdio.h>
void
ltb2a_version (void)
{
printf ("ltb2a: %s\n", LTBUG_ID);
}
]])
# Create libb, which is NOT linked to the external library.
mkdir "$ltb2/libb"
AT_DATA([["$ltb2/libb/Makefile.am"]],
[[
lib_LTLIBRARIES = libltb2b.la
libltb2b_la_SOURCES = libltb2b.c
]])
# The same as for libltb2a.c. Print out the LTBUG_ID flag and see if the local or
# installed version is used.
AT_DATA([["$ltb2/libb/libltb2b.c"]],
[[
#include <stdio.h>
void
ltb2b_version (void)
{
printf ("ltb2b: %s\n", LTBUG_ID);
}
]])
mkdir $ltb2/src
AT_DATA([["$ltb2/src/Makefile.am"]],
[[
bin_PROGRAMS = ltb2
ltb2_SOURCES = main.c
ltb2_LDADD = ../liba/libltb2a.la ../libb/libltb2b.la
AM_CPPFLAGS = -I$(top_srcdir)
]])
# Create a program which outputs the version, local or installed, for both
# liba and libb.
AT_DATA([["$ltb2/src/main.c"]],
[[
#include <ltb2.h>
int
main (int argc, char **argv)
{
ltb2a_version ();
ltb2b_version ();
return 0;
}
]])
AT_DATA([["$ltb2/Makefile.am"]],
[[
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = liba libb src
noinst_HEADERS = ltb2.h
]])
AT_DATA([["$ltb2/configure.ac"]],
[[
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([ltb2], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
LT_PREREQ([2.4.6])
LT_INIT
AC_ARG_VAR([LTBUG_ID],[Identifier of the bug case])
if test -z "$LTBUG_ID"; then
LTBUG_ID=local
fi
AC_DEFINE_UNQUOTED([LTBUG_ID],["$LTBUG_ID"],
[Text string identifying the library])
AC_CONFIG_FILES([Makefile liba/Makefile libb/Makefile src/Makefile])
AC_OUTPUT
]])
AT_DATA([["$ltb2/ltb2.h"]],
[[
extern void ltb2a_version (void);
extern void ltb2b_version (void);
]])
echo "Running autoreconf on dependency library and project directory"
(
cd $ext_lib_dir
LT_AT_LIBTOOLIZE([--install])
LT_AT_AUTORECONF([-i])
cd -
cd $ltb2
LT_AT_LIBTOOLIZE([--install])
LT_AT_AUTORECONF([-i])
)
mkdir build_dep build_inst build_local prefix_dir
prefix=$(cd prefix_dir; pwd)
echo "Building dependency library"
(
cd build_dep
LT_AT_CONFIGURE([--prefix=$prefix], [$ext_lib_dir/configure])
LT_AT_MAKE([])
LT_AT_MAKE([install])
)
echo "Building and installing project"
(
cd build_inst
LT_AT_CONFIGURE([--prefix=$prefix LTBUG_ID='installed'], [$ltb2/configure])
LT_AT_MAKE([])
LT_AT_MAKE([install])
)
echo "Building local copy of the project"
(
cd build_local
LT_AT_CONFIGURE([--prefix=$prefix], [$ltb2/configure])
LT_AT_MAKE([])
case $host_os in
openbsd*)
build_local_dir=$(pwd)
AT_CHECK(
[
$LIBTOOL --reorder-cache="$build_local_dir/liba/.libs:$build_local_dir/libb/.libs"
], 0, ignore, ignore);;
*) ;;
esac
)
# Although we have installed ltb2, we still expect that we are using the local
# version of ltb2a and ltb2b.
cat > expout <<EOF
ltb2a: local
ltb2b: local
EOF
case $host_os in
mingw* | windows*)
awk '{printf ("%s\r\n", [$]0);}' < expout > expout.t && mv -f expout.t expout
;;
cygwin*)
awk '{printf ("%s\n", [$]0);}' < expout > expout.t && mv -f expout.t expout
;;
esac
build_local/src/ltb2 > stdout
echo "Comparing expout to the build binary"
AT_CHECK([cmp -s stdout expout], [0])
AT_CLEANUP

View File

@ -1,6 +1,7 @@
# cdemo.at -- Using Automake to build a program and library -*- Autotest -*-
#
# Copyright (C) 2003-2004, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2003-2004, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2003
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
@ -183,7 +181,7 @@ _LT_SETUP
LT_AT_CHECK_CONFIG([--disable-static])
AT_CHECK([$EGREP "^allow_undefined_flag=.\{0,1\}unsupported.\{0,1\}$" libtool && (exit 77)],
AT_CHECK([$EGREP "^allow_undefined_flag=.\{0,1}unsupported.\{0,1}$" libtool && (exit 77)],
1, [ignore])
$SED 's|allow_undefined=no|allow_undefined=yes|g' libtool > ltnew && mv -f ltnew libtool

View File

@ -1,6 +1,7 @@
# cmdline_wrap.at -- run tests with low max_cmd_len -*- Autotest -*-
# Copyright (C) 2007, 2009, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2007, 2009, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Ralf Wildenhues, 2007
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
# Make sure libtool works when it needs to wrap command lines.

67
tests/configure-funcs.at Normal file
View File

@ -0,0 +1,67 @@
# configure-functions.at -- shared shell functions. -*- Autotest -*-
#
# Copyright (C) 2015-2019, 2021-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([Functions shared with configure and libtool.])
m4_define([_AT_FUNC_SETUP], [dnl
AT_SETUP([$1 works])dnl
_lt_bin=$abs_top_builddir/libtool
re_begincf='^# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE'
re_endcf='^# ### END FUNCTIONS SHARED WITH CONFIGURE'
$ECHO '#!/bin/sh' > "$1"
$ECHO '#: ${SED=sed}' >> "$1"
$ECHO '#: ${ECHO=echo}' >> "$1"
sed "1,/$re_begincf/d;/$re_endcf/,\$d" < "$_lt_bin" >> "$1"
])
_AT_FUNC_SETUP([func_munge_path_list])
cat <<\EOF >> func_munge_path_list
for orig in "/usr/lib" " /lib /usr/lib "; do
$ECHO "'$orig':"
for path in "/p1:" "/p3:/p2:" ":/a1" ":/a2:/a3" "/p4::/a4" "/p6:/p5::/a5:/a6"; do
old=$orig
func_munge_path_list orig "$path" || exit 1
$ECHO "munge ($path) = $orig"
done
done
EOF
chmod +x func_munge_path_list
AT_CHECK([ECHO="$ECHO" SED="$SED" ./func_munge_path_list], [0],
['/usr/lib':
munge (/p1:) = /p1 /usr/lib
munge (/p3:/p2:) = /p3 /p2 /p1 /usr/lib
munge (:/a1) = /p3 /p2 /p1 /usr/lib /a1
munge (:/a2:/a3) = /p3 /p2 /p1 /usr/lib /a1 /a2 /a3
munge (/p4::/a4) = /p4 /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 /a4
munge (/p6:/p5::/a5:/a6) = /p6 /p5 /p4 /p3 /p2 /p1 /usr/lib /a1 /a2 /a3 /a4 /a5 /a6
' /lib /usr/lib ':
munge (/p1:) = /p1 /lib /usr/lib @&t@
munge (/p3:/p2:) = /p3 /p2 /p1 /lib /usr/lib @&t@
munge (:/a1) = /p3 /p2 /p1 /lib /usr/lib /a1
munge (:/a2:/a3) = /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3
munge (/p4::/a4) = /p4 /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 /a4
munge (/p6:/p5::/a5:/a6) = /p6 /p5 /p4 /p3 /p2 /p1 /lib /usr/lib /a1 /a2 /a3 /a4 /a5 /a6
], [])
AT_CLEANUP

View File

@ -1,6 +1,7 @@
# configure-iface.at -- test ltdl configure interface -*- Autotest -*-
#
# Copyright (C) 2007-2008, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2007-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2007
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([configure interface to libltdl.])

View File

@ -1,6 +1,7 @@
# convenience.at -- testing C convenience archives -*- Autotest -*-
# Copyright (C) 2005, 2007-2014 Free Software Foundation, Inc.
# Copyright (C) 2005, 2007-2019, 2021-2026 Free Software Foundation,
# Inc.
# Written by Ralf Wildenhues, 2005
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
# Test that convenience archives work.

View File

@ -1,6 +1,7 @@
# ctor.at -- Test constructors via C++ -*- Autotest -*-
#
# Copyright (C) 2007-2008, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2007-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Noah Misch, 2007
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([Constructors.])

View File

@ -1,6 +1,6 @@
# cwrapper.at -- test cwrapper compliance with standards -*- Autotest -*-
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
# Copyright (C) 2009-2019, 2021-2026 Free Software Foundation, Inc.
# Written by Charles Wilson, 2009
#
# This file is part of GNU Libtool.
@ -16,10 +16,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_SETUP([cwrapper for uninstalled executables])

View File

@ -1,6 +1,7 @@
# darwin.at - tests specific to Mac OS X
#
# Copyright (C) 2008-2009, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2008-2009, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Peter O'Gorman, 2008
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([Mac OS X tests])
@ -35,7 +33,7 @@ int main() { return 0;}
]])
$noskip && {
$CC $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 -o simple simple.c 2>&1 > /dev/null || noskip=false
$CC $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 -o simple simple.c 2>&1 > /dev/null || noskip=false
rm -f simple
}
@ -82,19 +80,21 @@ save_PATH=$PATH
PATH=`pwd`/bin:$PATH
export PATH
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o foo.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 foo.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o foo.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 foo.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o baz.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 baz.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o foo.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 foo.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libfoo.la $CPPFLAGS $CFLAGS $LDFLAGS -arch x86_64 -arch i386 foo.lo baz.lo],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o baz.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 baz.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o bar.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 bar.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libfoo.la $CPPFLAGS $CFLAGS $LDFLAGS -arch x86_64 -arch arm64 foo.lo baz.lo],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libbar.la $CPPFLAGS $CFLAGS $LDFLAGS -arch x86_64 -arch i386 bar.lo libfoo.la -rpath /nonexistent],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o bar.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 bar.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o main.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 main.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libbar.la $CPPFLAGS $CFLAGS $LDFLAGS -arch x86_64 -arch arm64 bar.lo libfoo.la -rpath /nonexistent],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o main$EXEEXT $CPPFLAGS $CFLAGS $LDFLAGS -arch x86_64 -arch i386 main.lo libbar.la],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o main.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 main.c],[0],[ignore],[ignore])
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o main$EXEEXT $CPPFLAGS $CFLAGS $LDFLAGS -arch x86_64 -arch arm64 main.lo libbar.la],[0],[ignore],[ignore])
PATH=$save_PATH
AT_CLEANUP

View File

@ -1,6 +1,7 @@
# demo.at -- Linking and loading. -*- Autotest -*-
#
# Copyright (C) 2003-2004, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2003-2004, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2003
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
@ -154,7 +152,7 @@ AT_DATA([foo.h],
# endif
#endif
#if (defined _WIN32 || defined _WIN32_WCE) && !defined __GNUC__
#if (defined _WIN32 || defined _WIN32_WCE || __CYGWIN__) && !defined __GNUC__
# ifdef BUILDING_LIBHELLO
# ifdef DLL_EXPORT
# define LIBHELLO_SCOPE extern __declspec (dllexport)
@ -436,6 +434,9 @@ AT_CLEANUP
AT_SETUP([deplibs_check_method])
# Skip test if deplibs_check_method is not pass_all
AT_CHECK([$LIBTOOL --config | $EGREP '^deplibs_check_method="pass_all' || exit 77], [], [ignore], [ignore])
_LT_DEMO_SETUP
AT_DATA([demo.mk],
@ -497,6 +498,16 @@ AT_SETUP([force PIC objects])
_LT_DEMO_SETUP
LT_AT_CHECK_CONFIG([--enable-pic])
_LT_CHECK_EXECUTE
AT_CLEANUP
AT_SETUP([force PIC objects (old option name)])
_LT_DEMO_SETUP
LT_AT_CHECK_CONFIG([--with-pic])
_LT_CHECK_EXECUTE
@ -510,7 +521,7 @@ AT_CLEANUP
AT_SETUP([force non-PIC objects])
AT_CHECK([case $host in
hppa*|x86_64*|s390*)
hppa*|amd64*|x86_64*|s390*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@ -535,7 +546,7 @@ fi
])
_LT_DEMO_SETUP
LT_AT_CHECK_CONFIG([--with-pic=no])
LT_AT_CHECK_CONFIG([--disable-pic])
_LT_CHECK_EXECUTE
AT_CLEANUP
@ -623,6 +634,10 @@ LT_AT_MAKE([hardcode])
eval "`$LIBTOOL --config | $EGREP '^hardcode_(direct|minus_L|shlibpath_var|libdir_flag_spec)='`"
AT_CHECK([[exit_status=0
func_hardcode_filter_fp ()
{
$FGREP -v "LT_OBJDIR \"$objdir/\"" 2>/dev/null
}
for file in hc-*; do
case $file in
hc-direct) expected="$hardcode_direct" ;;
@ -662,10 +677,10 @@ for file in hc-*; do
# AIX fgrep also has a limited line length, so we turn unprintable
# characters into newlines.
elif cat $file | (tr '\000-\037\200-\377' '\n' || cat) 2>/dev/null \
| $FGREP "$objdir" > /dev/null 2>&1; then
| func_hardcode_filter_fp | $FGREP "$objdir" > /dev/null 2>&1; then
hardcoded=yes
elif $FGREP "$objdir" $file > /dev/null 2>&1; then
elif cat $file | func_hardcode_filter_fp | $FGREP "$objdir" > /dev/null 2>&1; then
# We retry fgrep without tr, in case the above lead to a false negative.
hardcoded=yes
elif ($SED -e '1!d' $file | $GREP 'unsupported') >/dev/null 2>&1; then

View File

@ -1,6 +1,7 @@
# depdemo.at -- Library interdependencies -*- Autotest -*-
#
# Copyright (C) 2003-2004, 2011-2014 Free Software Foundation, Inc.
# Copyright (C) 2003-2004, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2003
#
# This file is part of GNU Libtool.
@ -16,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
@ -131,7 +129,7 @@ int main (int argc, char **argv)
}
]])
# Create 4 directorys of mostly identical files.
# Create 4 directories of mostly identical files.
for i in 1 2 3 4; do
mkdir l$i

View File

@ -1,6 +1,6 @@
# deplib-in-subdir.at -- -*- Autotest -*-
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# Copyright (C) 2010-2019, 2021-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
@ -15,10 +15,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
# It should be possible to use a nontrivial relative path to the output

View File

@ -1,7 +1,7 @@
# deplibs-ident.at -- detecting identical deplibs -*- Autotest -*-
# Copyright (C) 2005, 2007-2008, 2011-2014 Free Software Foundation,
# Inc.
# Copyright (C) 2005, 2007-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Written by Ralf Wildenhues, 2005
#
# This file is part of GNU Libtool.
@ -17,10 +17,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
AT_BANNER([Detecting identical deplibs.])

View File

@ -1,6 +1,6 @@
# deplibs-mingw.at -- -*- Autotest -*-
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# Copyright (C) 2010-2019, 2021-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
@ -15,10 +15,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING. If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# along with GNU Libtool. If not, see <https://www.gnu.org/licenses/>.
####
# Check that deplibs are detected correctly even if there is no 'file'
@ -27,6 +24,11 @@
AT_SETUP([deplibs without file command])
AT_KEYWORDS([libtool])
# Skip failing test on MSVC
if $LIBTOOL --config | $EGREP '^nm_interface="MS dumpbin"' >/dev/null; then
AT_CHECK([exit 77])
fi
cwd=`pwd`
instdir=$cwd/inst
libdir=$instdir/lib
@ -64,7 +66,7 @@ for try in with-file without-file; do
[], [ignore], [ignore])
case $host_os in
mingw*)
mingw* | windows*)
if file /; then
mkdir bin new-libtool

Some files were not shown because too many files have changed in this diff Show More