Compare commits

..

No commits in common. "master" and "v2.4.4" have entirely different histories.

161 changed files with 8964 additions and 6633 deletions

3
.gitignore vendored
View File

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

5
.gitmodules vendored
View File

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

View File

@ -1 +1 @@
2.6.0
2.4.3

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
Gary V. Vaughan gary@vaughan.pe
* GNU Libtool and libltdl are currently being cajoled, bullied,
rewritten and otherwise dragged into the future by:
Gary V. Vaughan gary@gnu.org
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-2019, 2021-2026 Free Software Foundation,
Inc.
Copyright (C) 1996, 1998-2014 Free Software Foundation, Inc.
This file is part of GNU Libtool.
@ -45,4 +45,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. If not, see <https://www.gnu.org/licenses/>.
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.

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 François Pinard <pinard@iro.umontreal.ca>
(suggested by Francios 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, 2026 Free Software Foundation, Inc.
Copyright (C) 1996-2010 Free Software Foundation, Inc.
This file is part of GNU Libtool.

78
HACKING
View File

@ -13,32 +13,22 @@ 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 their name in the git log entry
* If somebody reports a new bug, mention his 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
@ -51,22 +41,11 @@ 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
@ -76,23 +55,13 @@ 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.
* 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)"
* Use
make -k check
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
@ -161,7 +130,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'.
@ -211,7 +180,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
@ -314,10 +283,10 @@ and is not part of a release distribution.
9. Licensing Rules
==================
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
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
commenting (shell, C etc) and decoration (m4 etc) assumed throughout.
@ -360,7 +329,10 @@ 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/>.
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.
@ -391,7 +363,10 @@ 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>. If not, see <https://www.gnu.org/licenses/>.
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.
@ -427,7 +402,10 @@ 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>. If not, see <https://www.gnu.org/licenses/>.
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.
@ -460,11 +438,13 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
--
Copyright (C) 2004-2008, 2010-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004-2008, 2010-2014 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-2019, 2021-2026 Free Software Foundation, Inc.
## Copyright (C) 2003-2014 Free Software Foundation, Inc.
## Written by Gary V. Vaughan, 2003
##
## This file is part of GNU Libtool.
@ -16,7 +16,10 @@
## 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/>.
## 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.
#####
ACLOCAL_AMFLAGS = -I m4
@ -24,11 +27,11 @@ ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS =
AM_LDFLAGS =
SUBDIRS = . gnulib-tests
SUBDIRS = .
DIST_SUBDIRS = $(SUBDIRS)
EXTRA_DIST =
BUILT_SOURCES = libtool libtoolize libtool-next-version
BUILT_SOURCES = libtool libtoolize
CLEANFILES =
MOSTLYCLEANFILES =
@ -64,7 +67,7 @@ build_scripts = $(srcdir)/$(aux_dir)/announce-gen \
EXTRA_DIST += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
GNUmakefile
CLEANFILES += libtool libtoolize libtool-next-version
CLEANFILES += libtool libtoolize
## If a file is named several times below, and especially if it
## is a distributed file created during Libtool bootstrap, we
@ -78,21 +81,16 @@ 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) $(libtoolnextv_in) \
$(ltmain_in) $(ltmain_sh) \
$(ltversion_in) $(ltversion_m4) $(no_bogus_macros) \
$(options_parser) $(u2d_copyright)
$(libtoolize_in) $(ltmain_in) $(ltmain_sh) \
$(ltversion_in) $(ltversion_m4) $(options_parser)
## These are the replacements that need to be made at bootstrap time,
## because they must be static in distributed files, and not accidentally
@ -193,7 +191,6 @@ $(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,' > '$@'
@ -209,9 +206,7 @@ bootstrap_files = \
$(ltversion_m4)
.PHONY: bootstrap-deps bootstrap-deps-prep
bootstrap-deps: bootstrap-deps-prep
$(MAKE) $(bootstrap_files)
bootstrap-deps: bootstrap-deps-prep $(bootstrap_files)
bootstrap-deps-prep:
## The following variables are substituted by 'bootstrap-dep-preps'
@exit_cmd=:; \
@ -282,8 +277,6 @@ 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 '$@'
@ -291,12 +284,6 @@ 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.
@ -340,7 +327,7 @@ EXTRA_DIST += $(lt_aclocal_m4) \
$(lt_obsolete_m4) \
$(stamp_mk)
$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4) $(lt_config_h_in)
$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4)
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOMAKE) Makefile
# Don't let unused scripts leak into the libltdl Makefile
@ -369,7 +356,6 @@ 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)
@ -377,7 +363,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_config_h_in)
$(lt_configure): $(lt_configure_deps)
$(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOCONF)
$(lt_config_h_in): $(lt_configure_deps)
@ -393,7 +379,6 @@ 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
@ -419,7 +404,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) $(libtoolnextv_1)
dist_man1_MANS = $(libtool_1) $(libtoolize_1)
MAINTAINERCLEANFILES += $(dist_man1_MANS)
update_mans = \
PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \
@ -430,12 +415,9 @@ 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) -n 'Provide generalized library-building support services' --help-option=--help-all libtool
$(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
$(libtoolize_1): $(libtoolize_in)
$(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
$(AM_V_GEN)$(update_mans) libtoolize
## ------------- ##
@ -457,14 +439,13 @@ 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. Note that this list requires
## specific order to avoid unnecessary re-autotooling after libtoolize run.
## libtoolize --ltdl can find them later:
pkgltdl_files = COPYING.LIB \
Makefile.am \
Makefile.in \
README \
configure.ac \
aclocal.m4 \
Makefile.in \
config-h.in \
configure \
libltdl/lt__alloc.h \
@ -550,7 +531,7 @@ git_log_fix = $(srcdir)/$(aux_dir)/git-log-fix
thanks_gen = $(srcdir)/$(aux_dir)/thanks-gen
dotserial = $(distdir)/.serial
dotversion = $(top_srcdir)/.version
dotversion = $(srcdir)/.version
tarball_version = $(distdir)/.tarball-version
readme = $(distdir)/README
changelog = $(distdir)/ChangeLog
@ -563,9 +544,7 @@ no_thanks = $(srcdir)/NO-THANKS
changelog_start_date = 2011-01-01
$(changelog): FORCE
$(AM_V_GEN)if test -d '$(srcdir)/.git'; then \
TZ=UTC $(gitlog_to_changelog) --amend=$(git_log_fix) \
--ignore-matching=Omit-from-ChangeLog. \
--format='%s%n%n%b%n' \
$(gitlog_to_changelog) --amend=$(git_log_fix) \
--since=$(changelog_start_date) > '$@T'; \
rm -f '$@'; mv '$@T' '$@'; \
cat '$(changelog_old)' >> '$@'; \
@ -576,12 +555,15 @@ $(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 omissions and errors from NO-THANKS configuration.
# up ommisions and errors from NO-THANKS configuration.
$(thanks): FORCE
$(AM_V_GEN)if test -d '$(srcdir)/.git'; then \
{ \
perl -ne '/^\#\#/ and exit; print' $(no_thanks); echo; \
$(prologue); echo; \
{ perl -ne '/^$$/.../^$$/ and print' $(no_thanks) \
| grep -v '^$$' | perl -pe 's/ +/\0/'; \
{ sed -e '1,/\#\# /d' -e '/^\#\# /d' \
@ -607,7 +589,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; \
@ -623,7 +605,12 @@ dist-hook: $(changelog) $(thanks) $(dotversion) $(readme)
## ...and similarly for .serial.
$(git_commit_count) > $(dotserial)
## Ensure aclocal has not wrongly picked up old macro definitions.
$(no_bogus_macros)
@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
distcheck-hook: syntax-check
@ -662,7 +649,6 @@ 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 \
@ -679,7 +665,6 @@ 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 \
@ -699,9 +684,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 \
@ -735,9 +720,6 @@ 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)
@ -755,9 +737,6 @@ 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,425 +1,5 @@
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:
@ -1045,7 +625,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 inference removed, shorthand for choosing modes added.
* Mode inferrence 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
@ -1055,7 +635,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 overridden further
this caused problems when the symbols were intended to be overriden 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.
@ -1375,7 +955,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
https://www.gnu.org/software/libtool/libtool.html for details.
http://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
@ -1552,10 +1132,9 @@ New in 0.1:
* First release of libtool
* Support for: *-*-freebsd*, *-*-netbsd*, *-*-sunos4*, *-*-ultrix4*
--
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.
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,7 +30,6 @@ 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
@ -38,7 +37,6 @@ 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
@ -49,7 +47,6 @@ 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
@ -66,34 +63,25 @@ 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 contributors
## time with 'git commit --author=...' and other non-patch contributers
## 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
@ -107,13 +95,11 @@ 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
@ -133,30 +119,22 @@ 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:
https://www.gnu.org/software/libtool/libtool.html
http://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]: https://git.savannah.gnu.org/cgit/automake.git/tree/INSTALL
[libtool]: https://www.gnu.org/s/libtool
[install]: http://git.savannah.gnu.org/cgit/libtool.git/tree/INSTALL
[libtool]: http://www.gnu.org/s/libtool
[libtool list]: mailto:libtool@gnu.org
[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
[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
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]: https://www.gnu.org/software/libtool/contribute.html
[contribute]: http://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:
https://www.gnu.org/order/ftp.html
http://www.gnu.org/order/ftp.html
* Alpha quality pre-releases of GNU Libtool, also with detached
signature files are available from:
@ -162,14 +162,10 @@ send the file `tests/testsuite.log` to the [bug mailing list][].
and some of the mirrors listed at:
https://www.gnu.org/order/ftp.html
http://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:
@ -178,7 +174,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.https://git.sv.gnu.org/r/.insteadof \
git config --global url.http://git.sv.gnu.org/r/.insteadof \
git://git.sv.gnu.org/
to force git to transparently rewrite all savannah git references to
@ -195,15 +191,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.64 or later
- Autoconf 2.62 or later
- Automake 1.11.1 or later
- Help2man 1.29 or later
- Xz 4.999.8beta or later (from [tukaani.org](https://tukaani.org/xz))
- Xz 4.999.8beta or later (from [tukaani.org](http://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 distributed release for your own packages.
those required to use a destributed release for your own packages.
After installation, GNU Libtool is designed to work either standalone,
or optionally with:
- Autoconf 2.59 or later
@ -245,7 +241,7 @@ revision hash string in hexadecimal appended to all of that:
2.4.2.418.3-30eaa
--
Copyright (C) 2004-2010, 2015-2019, 2021-2026 Free Software
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 maintenance notes.
a good thing to put before the maintainance notes.
* Document the installed 'libtool' and its limitations clearly (maybe implement
--disable-script-install as well). Or, even better, remove its limitations.
@ -124,6 +124,10 @@ 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
@ -281,7 +285,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 convert this new representation to
the later to_mingw function "know" how to covert 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).
@ -299,7 +303,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 functionality would be on "one side" of the 2-step
$hosts, all of the funtionality 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.
@ -325,7 +329,7 @@ GNU Libtool
it easier to add new platforms.
--
Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2026 Free Software
Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2004

1124
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-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2010
# This is free software; see the source for copying conditions. There is NO
@ -17,11 +17,14 @@
# 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/>.
# 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.
## -------------------------------- ##
## User overridable command paths. ##
## User overrideable command paths. ##
## -------------------------------- ##
: "${MAKE=make}"
@ -41,27 +44,23 @@ checkout_only_file=HACKING
# List of programs (and minimum versions) required to bootstrap, maintain
# and release Libtool.
buildreq="
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
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
"
# Instructions on how to install packages in $buildreq.
buildreq_readme=HACKING
# 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
# Non-default gnulib directory options.
local_gl_dir=gl
# 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.
@ -82,10 +81,6 @@ 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'
@ -265,18 +260,13 @@ 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... 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.
# causes autoheader to be called... undesireable for users that do not
# have it! Fudge the timestamp to prevent that:
libtool_fudge_timestamps ()
{
$debug_cmd
(
cd libltdl
touch -r configure config-h.in
)
sleep 2 && touch libltdl/config-h.in
}
func_add_hook func_fini libtool_fudge_timestamps
@ -301,8 +291,13 @@ func_add_hook func_fini libtool_cleanup
libtool_check_for_bogus_macros ()
{
$debug_cmd
$require_build_aux
$build_aux/no-bogus-m4-defines || exit 1
$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
}
func_add_hook func_fini libtool_check_for_bogus_macros

View File

@ -1,5 +1,4 @@
/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-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2010
#
# This file is part of GNU Libtool.
@ -17,10 +17,13 @@
# 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/>.
# 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.
####
# We used to maintain separate (but extremely similar!) README and
# We used to maintain separate (but extremely similiar!) README and
# README.alpha files, and had 'make dist' include the right one in a
# distribution based on the contests of '$(VERSION)'.
#
@ -59,18 +62,16 @@ 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'"
@ -78,7 +79,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 '/^\[GNU Libtool\]\[libtool\] is/,/^consistent, portable interface\.$/c\
sed -n '/^\[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-2019, 2021-2025 Free Software Foundation, Inc.
# Copyright (C) 2011-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.
@ -23,7 +23,7 @@
: ${SED="sed"}
test "${ECHO+set}" = set || ECHO='printf %s\n'
test set = ${ECHO+'set'} = set || ECHO='printf %s\n'
basename='s|^.*/||'

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,58 +0,0 @@
#! /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-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (c) 2011-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2011
#
# This file is part of GNU Libtool.
@ -16,20 +16,15 @@
# 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/>.
# 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.
update-copyright-env := UPDATE_COPYRIGHT_FORCE=1 UPDATE_COPYRIGHT_USE_INTERVALS=1
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
# Set format of NEWS
old_NEWS_hash := e524180c3db06628ad97e3fcb35f6a4b
manual_title = Portable Dynamic Shared Object Management
@ -41,8 +36,8 @@ else
announcement_Cc_ = autotools-announce@gnu.org, $(PACKAGE_BUGREPORT)
endif
# Don't syntax check the mail subdirectory or patches to gnulib itself.
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^(mail|gl)/
# Don't syntax check the mail subdirectory.
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^mail/
local-checks-to-fix = \
sc_require_config_h \
@ -52,13 +47,11 @@ 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_codespell
sc_unmarked_diagnostics
# GPL_version: checks for GPLv3, which we don't use
# cast_of_x_alloc_return_value:
@ -77,9 +70,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) } || :
@ -119,13 +112,6 @@ 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:
@ -149,12 +135,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 :; \
@ -190,8 +176,7 @@ sc_prohibit_test_binary_operators:
exclude_file_name_regexp--sc_prohibit_test_dollar = ^cfg.mk$$
sc_prohibit_test_dollar:
@prohibit='test[ ]+(![ ])?(-.[ ]+)?X?\$$[^?#]' \
exclude='test \$${[A-Za-z_][A-Za-z0-9_]+\+y}' \
halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \
halt='use '\''test "$$..."'\'' instead of '\''test $$'\' \
$(_sc_search_regexp)
# Never use test -e.
@ -223,11 +208,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
@ -252,8 +237,7 @@ define _sc_search_regexp_or_exclude
fi || :;
endef
exclude_file_name_regexp--sc_useless_braces_in_variable_derefs = \
test-funclib-quote.sh$$
exclude_file_name_regexp--sc_useless_braces_in_variable_derefs = /cvsu$$
sc_useless_braces_in_variable_derefs:
@prohibit='\$${[0-9A-Za-z_]+}[^0-9A-Za-z_]' \
halt='found spurious braces around variable dereference' \
@ -273,9 +257,11 @@ 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|test-funclib-quote.sh)$$
exclude_file_name_regexp--sc_space_tab = \.diff$$
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-2019, 2021-2026 Free
# Software Foundation, Inc.
# Copyright (C) 2001, 2004-2005, 2008, 2010-2014 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2001
#
# This file is part of GNU Libtool.
@ -17,11 +17,14 @@
# 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/>.
# 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.
####
AC_PREREQ(2.64)
AC_PREREQ(2.62)
dnl Oldest automake required for bootstrap is below in AM_INIT_AUTOMAKE.
@ -32,7 +35,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], [https://www.gnu.org/s/libtool/])])
[AC_SUBST([PACKAGE_URL], [http://www.gnu.org/s/libtool/])])
# Remove this when a released Autoconf is capable of bootstrapping
# Libtool without it (probably after autoconf-2.70).
@ -78,13 +81,6 @@ AS_BOX([Configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION])
echo
## ------------ ##
## Shell tools. ##
## ------------ ##
AC_PROG_GNU_M4
## ------------------------ ##
## Automake Initialisation. ##
## ------------------------ ##
@ -108,7 +104,7 @@ AB_INIT([$autobuild_mode])
dnl Make sure config.status is regenerated when the version timestamp changes
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(dotversion)'])
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(srcdir)/.version'])
## ------------------------------- ##
@ -152,9 +148,6 @@ _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)
@ -166,7 +159,7 @@ LT_LANG(Windows Resource)
AC_SUBST([to_host_file_cmd])dnl
AC_SUBST([to_tool_file_cmd])dnl
# Propagate --enable-aix-soname option to the testsuite.
# Propagate --with-aix-soname option to the testsuite.
AC_SUBST([with_aix_soname])dnl
## ---------------------- ##
@ -182,5 +175,5 @@ AM_MISSING_PROG([HELP2MAN], [help2man])
## -------- ##
## Outputs. ##
## -------- ##
AC_CONFIG_FILES([Makefile gnulib-tests/Makefile])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

1
doc/.gitignore vendored
View File

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

File diff suppressed because it is too large Load Diff

View File

@ -26,12 +26,6 @@ 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
@ -74,41 +68,13 @@ 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 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.
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.
@end itemize

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

2769
gl/build-aux/bootstrap.in Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,20 @@
--- ./gnulib/build-aux/do-release-commit-and-tag
+++ gl/build-aux/do-release-commit-and-tag
--- ./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
@@ -5,6 +5,9 @@
# will serve to identify the release, so apply a signed tag to it as well.
VERSION=2018-03-07.03 # UTC
VERSION=2012-08-01.09 # 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-2024 Free Software Foundation, Inc.
# Copyright (C) 2009-2013 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 "%s\n%s\n" "$prev_ver" "$ver"|sort -V -u|tr '\n' ':') in
-case $(printf "$prev_ver\n$ver\n"|sort -V -u|tr '\n' ':') in
- "$prev_ver:$ver:") ;;
- *) die "invalid version: $ver (<= $prev_ver)";;
-esac

420
gl/build-aux/extract-trace Executable file
View File

@ -0,0 +1,420 @@
#! /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:

1304
gl/build-aux/funclib.sh Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,83 @@
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

164
gl/build-aux/inline-source Executable file
View File

@ -0,0 +1,164 @@
#! /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:

608
gl/build-aux/options-parser Normal file
View File

@ -0,0 +1,608 @@
#! /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:

487
gl/doc/bootstrap.texi Executable file
View File

@ -0,0 +1,487 @@
@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

23
gl/modules/bootstrap Normal file
View File

@ -0,0 +1,23 @@
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>

21
gl/modules/extract-trace Normal file
View File

@ -0,0 +1,21 @@
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>

19
gl/modules/funclib.sh Normal file
View File

@ -0,0 +1,19 @@
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>

21
gl/modules/inline-source Normal file
View File

@ -0,0 +1,21 @@
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>

20
gl/modules/options-parser Normal file
View File

@ -0,0 +1,20 @@
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
+++ README-release
--- gnulib/top/README-release 2013-01-01 16:56:11.111973500 +0100
+++ gl/top/README-release 2013-01-01 16:55:31.423573500 +0100
@@ -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,10 +31,25 @@ Here are most of the steps we (maintainers) follow when making a release.
@@ -27,9 +31,24 @@
./bootstrap && ./configure
@ -23,29 +23,15 @@
+
+* Run "./bootstrap && ./configure".
+
* Pre-release testing: ensure that the following commands succeed:
* Pre-release testing: ensure that the following command succeeds:
c=check ve=check-very-expensive; git grep -q "^$ve:\$" && c=$ve
make $c syntax-check distcheck
make check 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 CXX=g++
+ make distcheck CC=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 e93789db7e86c51d6cb9683ea508e676a55cdefa
Subproject commit 1b6c775c6b9c8054afcadc0aeb0ae39e81dc6387

View File

@ -9,8 +9,7 @@ It supports the following dlopen interfaces:
* dyld (darwin/Mac OS X)
* libtool's dlpreopen
--
Copyright (C) 1999, 2003, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 1999, 2003, 2011-2014 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-2019, 2021-2026 Free
# Software Foundation, Inc.
# Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU LesserGeneral Public
# License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
# 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.
####
# This configure.ac is not used at all by the libtool bootstrap, but

View File

@ -1,7 +1,6 @@
/* lt__alloc.h -- internal memory management interface
Copyright (C) 2004, 2011-2019, 2021-2026 Free Software Foundation,
Inc.
Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +22,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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
*/
#if !defined LT__ALLOC_H
@ -35,11 +37,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-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2007-2008, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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
*/
#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-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2001, 2004, 2006, 2011-2014 Free Software Foundation,
Inc.
Written by Bob Friesenhahn, 2001
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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
*/
#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-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2006-2007, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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
*/
#if !defined LT__GLIBC_H

View File

@ -1,7 +1,6 @@
/* lt__private.h -- internal apis for libltdl
Copyright (C) 2004-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004-2008, 2011-2014 Free Software Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +22,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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
*/
#if !defined LT__PRIVATE_H

View File

@ -1,7 +1,6 @@
/* lt__strl.h -- size-bounded string copying and concatenation
Copyright (C) 2004, 2006, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2006, 2011-2014 Free Software Foundation, Inc.
Written by Bob Friesenhahn, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +22,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#if !defined LT__STRL_H

View File

@ -1,7 +1,7 @@
/* lt_dlloader.h -- dynamic library loader interface
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2007-2008, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#if !defined LT_DLLOADER_H

View File

@ -1,7 +1,7 @@
/* lt_error.h -- error propagation interface
Copyright (C) 1999-2001, 2004, 2007, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1999-2001, 2004, 2007, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1999
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
/* Only include this header file once. */
@ -38,7 +41,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
explicitly initialize the string terminator. */
expilicitely 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,7 +1,6 @@
/* lt_system.h -- system portability abstraction layer
Copyright (C) 2004, 2007, 2010-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2007, 2010-2014 Free Software Foundation, Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +22,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#if !defined LT_SYSTEM_H
@ -62,15 +64,15 @@ License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
/* 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-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2000, 2004, 2009, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2000
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
/* 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -94,7 +97,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 loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
return 0;
@ -104,12 +107,12 @@ vl_exit (lt_user_data loader_data LT__UNUSED)
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 loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
{
lt_module module = lt__strdup (filename);
if (module && dld_link (filename) != 0)
if (dld_link (filename) != 0)
{
LT__SETERROR (CANNOT_OPEN);
FREE (module);
@ -121,7 +124,7 @@ vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
{
int errors = 0;
@ -141,7 +144,7 @@ vm_close (lt_user_data loader_data LT__UNUSED, 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 loader_data LT__UNUSED, lt_module module LT__UNUSED,
vm_sym (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module,
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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -149,7 +152,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 loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
return 0;
@ -160,7 +163,7 @@ vl_exit (lt_user_data loader_data LT__UNUSED)
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 loader_data LT__UNUSED, const char *filename,
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise advise)
{
int module_flags = LT_LAZY_OR_NOW;
@ -242,7 +245,7 @@ vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
{
int errors = 0;
@ -259,7 +262,7 @@ vm_close (lt_user_data loader_data LT__UNUSED, 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 loader_data LT__UNUSED, lt_module module, const char *name)
vm_sym (lt_user_data LT__UNUSED loader_data, 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Peter O'Gorman, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -182,7 +185,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 loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
return 0;
@ -223,7 +226,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 advise LT__UNUSED)
lt_dladvise LT__UNUSED advise)
{
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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -92,7 +95,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 loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
return 0;
@ -102,8 +105,8 @@ vl_exit (lt_user_data loader_data LT__UNUSED)
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 loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
{
image_id image = 0;
@ -132,7 +135,7 @@ vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
{
int errors = 0;
@ -149,7 +152,7 @@ vm_close (lt_user_data loader_data LT__UNUSED, 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 loader_data LT__UNUSED, lt_module module, const char *name)
vm_sym (lt_user_data LT__UNUSED loader_data, 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004-2008, 2010-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -95,8 +98,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))
@ -117,7 +120,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 loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
LOCALFREE (error_message);
@ -128,8 +131,8 @@ vl_exit (lt_user_data loader_data LT__UNUSED)
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 loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
{
lt_module module = 0;
char *ext;
@ -242,7 +245,7 @@ vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
{
int errors = 0;
@ -259,7 +262,7 @@ vm_close (lt_user_data loader_data LT__UNUSED, 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 loader_data LT__UNUSED, lt_module module, const char *name)
vm_sym (lt_user_data LT__UNUSED loader_data, 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -110,7 +113,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 loader_data LT__UNUSED)
vl_init (lt_user_data LT__UNUSED loader_data)
{
int errors = 0;
@ -127,7 +130,7 @@ vl_init (lt_user_data loader_data LT__UNUSED)
/* A function called through the vtable when this loader is no
longer needed by the application. */
static int
vl_exit (lt_user_data loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
free_symlists ();
@ -139,8 +142,8 @@ vl_exit (lt_user_data loader_data LT__UNUSED)
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 loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
{
symlist_chain *lists;
lt_module module = 0;
@ -192,7 +195,7 @@ vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED)
vm_close (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module)
{
/* Just to silence gcc -Wall */
module = 0;
@ -203,7 +206,7 @@ vm_close (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED)
/* 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 loader_data LT__UNUSED, lt_module module, const char *name)
vm_sym (lt_user_data LT__UNUSED loader_data, 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -135,7 +138,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 loader_data LT__UNUSED)
vl_exit (lt_user_data LT__UNUSED loader_data)
{
vtable = NULL;
return 0;
@ -145,8 +148,8 @@ vl_exit (lt_user_data loader_data LT__UNUSED)
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 loader_data LT__UNUSED, const char *filename,
lt_dladvise advise LT__UNUSED)
vm_open (lt_user_data LT__UNUSED loader_data, const char *filename,
lt_dladvise LT__UNUSED advise)
{
static shl_t self = (shl_t) 0;
lt_module module = shl_load (filename, LT_BIND_FLAGS, 0L);
@ -181,7 +184,7 @@ vm_open (lt_user_data loader_data LT__UNUSED, const char *filename,
/* A function called through the vtable when a particular module
should be unloaded. */
static int
vm_close (lt_user_data loader_data LT__UNUSED, lt_module module)
vm_close (lt_user_data LT__UNUSED loader_data, lt_module module)
{
int errors = 0;
@ -198,7 +201,7 @@ vm_close (lt_user_data loader_data LT__UNUSED, 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 loader_data LT__UNUSED, lt_module module, const char *name)
vm_sym (lt_user_data LT__UNUSED loader_data, 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-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2006-2007, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#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-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2006-2008, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#if defined LTDL && defined LT_CONFIG_H
@ -153,7 +156,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 in case realloc() moved the block. */
used to have in *PARGZ incase realloc() moved the block. */
before = argz + offset;
/* Move the ARGZ entries starting at BEFORE up into the new

View File

@ -1,7 +1,6 @@
/* lt__dirent.c -- internal directory entry scanning interface
Copyright (C) 2001, 2004, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2001, 2004, 2011-2014 Free Software Foundation, Inc.
Written by Bob Friesenhahn, 2001
NOTE: The canonical source of this file is maintained with the
@ -23,7 +22,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"

View File

@ -1,7 +1,6 @@
/* lt__strl.c -- size-bounded string copying and concatenation
Copyright (C) 2004, 2011-2019, 2021-2026 Free Software Foundation,
Inc.
Copyright (C) 2004, 2011-2014 Free Software Foundation, Inc.
Written by Bob Friesenhahn, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +22,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include <assert.h>

View File

@ -1,7 +1,7 @@
/* lt_dlloader.c -- dynamic library loader interface
Copyright (C) 2004, 2007-2008, 2011-2019, 2021-2026 Free Software
Foundation, Inc.
Copyright (C) 2004, 2007-2008, 2011-2014 Free Software Foundation,
Inc.
Written by Gary V. Vaughan, 2004
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -165,10 +168,6 @@ 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1999-2001, 2004-2005, 2007, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1999
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"

View File

@ -1,7 +1,7 @@
/* ltdl.c -- system independent dlopen wrapper
Copyright (C) 1998-2000, 2004-2008, 2011-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 1998-2000, 2004-2008, 2011-2014 Free Software
Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include "lt__private.h"
@ -88,6 +91,7 @@ static const char sys_dlsearch_path[] = LT_DLSEARCH_PATH;
/* --- DYNAMIC MODULE LOADING --- */
@ -785,9 +789,10 @@ find_handle_callback (char *filename, void *data, void *data2)
if (notfound)
return 0;
/* Try to dlopen the file. */
/* Try to dlopen the file, but do not continue searching in any
case. */
if (tryall_dlopen (phandle, filename, advise, 0) != 0)
return 0;
*phandle = 0;
return 1;
}
@ -810,7 +815,7 @@ find_handle (const char *search_path, const char *base_name,
#if !defined LTDL_DLOPEN_DEPLIBS
static int
load_deplibs (lt_dlhandle handle, char * deplibs LT__UNUSED)
load_deplibs (lt_dlhandle handle, char * LT__UNUSED deplibs)
{
handle->depcount = 0;
return 0;
@ -1367,12 +1372,9 @@ try_dlopen (lt_dlhandle *phandle, const char *filename, const char *ext,
}
#endif
#if defined LT_DLSEARCH_PATH
if (!file)
if (!file && *sys_dlsearch_path)
{
if (*sys_dlsearch_path)
{
file = find_file (sys_dlsearch_path, base_name, &dir);
}
file = find_file (sys_dlsearch_path, base_name, &dir);
}
#endif
}
@ -1664,7 +1666,7 @@ lt_dlopenadvise (const char *filename, lt_dladvise advise)
|| !advise->try_ext
|| has_library_ext (filename))
{
/* Just in case we missed a code path in try_dlopen() that reports
/* Just incase 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;
@ -1919,27 +1921,24 @@ 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)
{
if (*sys_dlsearch_path)
{
is_done = foreach_dirinpath (sys_dlsearch_path, 0,
foreachfile_callback, fpptr, data);
}
}
if (!is_done && *sys_dlsearch_path)
{
is_done = foreach_dirinpath (sys_dlsearch_path, 0,
foreachfile_callback, fpptr, data);
}
#endif
}
@ -1971,7 +1970,7 @@ lt_dlclose (lt_dlhandle handle)
cur->info.ref_count--;
/* Note that even with resident modules, we must track the ref_count
correctly in case the user decides to reset the residency flag
correctly incase 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-2019, 2021-2026
Free Software Foundation, Inc.
Copyright (C) 1998-2000, 2004-2005, 2007-2008, 2011-2014 Free
Software Foundation, Inc.
Written by Thomas Tanner, 1998
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
/* Only include this header file once. */
@ -34,16 +37,13 @@ License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
#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,6 +110,7 @@ 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-2019, 2021-2026 Free Software
## Foundation, Inc.
## Copyright (C) 2003-2005, 2007, 2011-2014 Free Software Foundation,
## Inc.
## Written by Gary V. Vaughan, 2003
##
## NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@
## GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU LesserGeneral Public
## License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
## 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.
#####
## DO NOT REMOVE THIS LINE -- make depends on it
@ -31,11 +34,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:5:3
LTDL_VERSION_INFO = -version-info 10:1:3
noinst_LTLIBRARIES += $(LT_DLLOADERS)
@ -131,9 +134,7 @@ 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-2019, 2021-2026 Free
Software Foundation, Inc.
Copyright (C) 2000, 2004, 2007-2009, 2011-2014 Free Software
Foundation, Inc.
Written by Gary V. Vaughan, 2000
NOTE: The canonical source of this file is maintained with the
@ -23,7 +23,10 @@ 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. If not, see <https://www.gnu.org/licenses/>.
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.
*/
#include <assert.h>

View File

@ -1,297 +0,0 @@
#! /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 @@
#! /usr/bin/env sh
#! /bin/sh
# Prepare a package to use libtool.
# Written by Gary V. Vaughan <gary@gnu.org>, 2003
# Copyright (C) 2003-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2003-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.
@ -63,27 +63,6 @@
# 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. ##
@ -115,12 +94,7 @@ usage_message="Options:
"
# Additional text appended to 'usage_message' in response to '--help'.
func_help ()
{
$debug_cmd
func_usage_message
$ECHO "$long_help_message
long_help_message=$long_help_message"
'environment' show warnings about LIBTOOLIZE_OPTIONS content
'file' show warnings about file copying and linking
@ -140,15 +114,14 @@ When reporting a bug, please describe a test case to reproduce it and
include the following information:
host-triplet: @host_triplet@
version: $progname $scriptversion
version: $progname (GNU @PACKAGE@) @VERSION@
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: <https://www.gnu.org/gethelp/>."
exit 0
}
General help using GNU software: <http://www.gnu.org/gethelp/>.
"
warning_categories='environment file'
@ -178,11 +151,11 @@ libtoolize_environment_options ()
# Pass back the updated list of options.
if test -n "$envopts"; then
func_quote eval "$envopts" ${1+"$@"}
func_quote_for_eval "$envopts" ${1+"$@"}
else
func_quote eval ${1+"$@"}
func_quote_for_eval ${1+"$@"}
fi
libtoolize_environment_options_result=$func_quote_result
libtoolize_environment_options_result=$func_quote_for_eval_result
}
func_add_hook func_options_prep libtoolize_environment_options
@ -206,6 +179,10 @@ 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
@ -275,8 +252,8 @@ libtoolize_parse_options ()
done
# save modified positional parameters for caller
func_quote eval ${1+"$@"}
libtoolize_parse_options_result=$func_quote_result
func_quote_for_eval ${1+"$@"}
libtoolize_parse_options_result=$func_quote_for_eval_result
}
func_add_hook func_parse_options libtoolize_parse_options
@ -309,8 +286,8 @@ libtoolize_validate_options ()
func_fatal_help "unknown additional arguments: '${1+$@}'"
# Pass back the empty argument list
func_quote eval ${1+"$@"}
libtoolize_validate_options_result=$func_quote_result
func_quote_for_eval ${1+"$@"}
libtoolize_validate_options_result=$func_quote_for_eval_result
}
func_add_hook func_validate_options libtoolize_validate_options
@ -437,33 +414,6 @@ 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"
@ -564,7 +514,7 @@ func_serial_max ()
my_sed_rest='s/^[0-9][1-9]*\.*//'
my_sed_digits='s/[^0-9.]//g'
# In case they turn out to be the same, we'll set it to empty
# Incase 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"` || {
@ -705,8 +655,6 @@ 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"`
@ -732,7 +680,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', in case
# Do this after the copy for hand maintained 'aclocal.m4', incase
# it has 'm4_include([DESTFILE])', so the copy effectively already
# updated 'aclocal.m4'.
my_included_files=`func_included_files aclocal.m4`
@ -746,7 +694,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 && test '' != "$my_src_serial"; then
if test -f aclocal.m4; 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
@ -997,15 +945,7 @@ func_install_pkgltdl_files ()
;;
config-h.in)
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
test subproject = "$ltdl_mode" || continue
;;
configure)

2
m4/.gitignore vendored
View File

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

View File

@ -1,6 +1,5 @@
# autobuild.m4 serial 7
dnl Copyright (C) 2004, 2006-2019, 2021-2026 Free Software Foundation,
dnl Inc.
dnl Copyright (C) 2004, 2006-2014 Free Software Foundation, 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,18 +1,15 @@
# Portability macros for glibc argz. -*- Autoconf -*-
#
# Copyright (C) 2004-2007, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2004-2007, 2011-2014 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 2 ltargz.m4
# serial 1 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],
@ -51,7 +48,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,14 +1,13 @@
# ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*-
#
# Copyright (C) 1999-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 1999-2008, 2011-2014 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 24 LTDL_INIT
# serial 20 LTDL_INIT
# LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE])
# ------------------------------------------
@ -336,7 +335,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
@ -435,8 +434,7 @@ 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(LTARGZH_EXISTS, test -n "$LT_ARGZ_H")])
AM_CONDITIONAL(CONVENIENCE_LTDL, test no != "${enable_ltdl_convenience-no}")])
])# _LT_ENABLE_INSTALL
@ -467,12 +465,15 @@ 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* | midnightbsd*)
freebsd* | dragonfly*)
lt_cv_sys_dlopen_deplibs=yes
;;
gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
@ -495,10 +496,7 @@ AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
# at 6.2 and later dlopen does load deplibs.
lt_cv_sys_dlopen_deplibs=yes
;;
*-mlibc)
lt_cv_sys_dlopen_deplibs=yes
;;
netbsd* | netbsdelf*-gnu)
netbsd*)
lt_cv_sys_dlopen_deplibs=yes
;;
openbsd*)
@ -714,7 +712,7 @@ darwin[[1567]].*)
beos*)
LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
;;
cygwin* | mingw* | windows* | pw32*)
cygwin* | mingw* | pw32*)
AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
;;
@ -762,7 +760,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(void){nm_test_func;return 0;}
int main(){nm_test_func;return 0;}
_LT_EOF
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
@ -866,7 +864,7 @@ _LT_EOF
# define RTLD_NOW 0
# endif
#endif
int main (void) {
int main () {
void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW);
int status = $libltdl_dlunknown;
if (handle) {

160
m4/ltoptions.m4 vendored
View File

@ -1,14 +1,14 @@
# Helper functions for option handling. -*- Autoconf -*-
#
# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2026 Free
# Software Foundation, Inc.
# Copyright (C) 2004-2005, 2007-2009, 2011-2014 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 12 ltoptions.m4
# serial 8 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,7 +80,6 @@ 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],
@ -129,7 +128,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
[enable_win32_dll=yes
case $host in
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
@ -324,39 +323,29 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
# _LT_WITH_AIX_SONAME([DEFAULT])
# ----------------------------------
# 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'.
# 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'.
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_ENABLE([aix-soname],
[AS_HELP_STRING([--enable-aix-soname=aix|svr4|both],
AC_ARG_WITH([aix-soname],
[AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
[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
[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])
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
@ -371,16 +360,8 @@ 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
@ -395,50 +376,30 @@ LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
# _LT_WITH_PIC([MODE])
# --------------------
# implement the --enable-pic flag, and support the 'pic-only' and 'no-pic'
# implement the --with-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_ENABLE([pic],
[AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@],
[AC_ARG_WITH([pic],
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
[lt_p=${PACKAGE-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])])]
)
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
@ -457,49 +418,6 @@ 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-2019, 2021-2026 Free Software
# Copyright (C) 2004-2005, 2007-2008, 2011-2014 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#

View File

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

View File

@ -1,83 +0,0 @@
# 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,7 +1,6 @@
# am-subdir.at -- libtool subdir-objects support -*- Autotest -*-
# Copyright (C) 2004, 2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2004, 2008, 2011-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####

View File

@ -1,7 +1,6 @@
# dmacks.at -- test for dmacks bug -*- Autotest -*-
#
# Copyright (C) 2007-2008, 2010-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2007-2008, 2010-2014 Free Software Foundation, Inc.
# Written by Peter O'Gorman, 2007
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####

View File

@ -1,6 +1,6 @@
# bindir.at - Test the -bindir option
#
# Copyright (C) 2009-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
# Written by Dave Korn, 2009
#
# This file is part of GNU Libtool.
@ -16,7 +16,10 @@
# 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/>.
# 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.
####
####
@ -62,7 +65,7 @@ AT_SETUP([bindir basic lib test])
bindirneeded=:
case $host_os in
cygwin*|mingw*|windows*|cegcc*)
cygwin*|mingw*|cegcc*)
;;
*)
bindirneeded=false
@ -171,7 +174,7 @@ AT_SETUP([bindir install tests])
bindirneeded=:
case $host_os in
cygwin*|mingw*|windows*|cegcc*)
cygwin*|mingw*|cegcc*)
;;
*)
bindirneeded=false

View File

@ -1,61 +0,0 @@
# 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

View File

@ -1,67 +0,0 @@
# 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

View File

@ -1,420 +0,0 @@
# 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,7 +1,6 @@
# cdemo.at -- Using Automake to build a program and library -*- Autotest -*-
#
# Copyright (C) 2003-2004, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2003-2004, 2011-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2003
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
@ -181,7 +183,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,7 +1,6 @@
# cmdline_wrap.at -- run tests with low max_cmd_len -*- Autotest -*-
# Copyright (C) 2007, 2009, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2007, 2009, 2011-2014 Free Software Foundation, Inc.
# Written by Ralf Wildenhues, 2007
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
# Make sure libtool works when it needs to wrap command lines.

View File

@ -1,67 +0,0 @@
# 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,7 +1,6 @@
# configure-iface.at -- test ltdl configure interface -*- Autotest -*-
#
# Copyright (C) 2007-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2007-2008, 2011-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2007
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
AT_BANNER([configure interface to libltdl.])

View File

@ -1,7 +1,6 @@
# convenience.at -- testing C convenience archives -*- Autotest -*-
# Copyright (C) 2005, 2007-2019, 2021-2026 Free Software Foundation,
# Inc.
# Copyright (C) 2005, 2007-2014 Free Software Foundation, Inc.
# Written by Ralf Wildenhues, 2005
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
# Test that convenience archives work.

View File

@ -1,7 +1,6 @@
# ctor.at -- Test constructors via C++ -*- Autotest -*-
#
# Copyright (C) 2007-2008, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2007-2008, 2011-2014 Free Software Foundation, Inc.
# Written by Noah Misch, 2007
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
AT_BANNER([Constructors.])

View File

@ -1,6 +1,6 @@
# cwrapper.at -- test cwrapper compliance with standards -*- Autotest -*-
# Copyright (C) 2009-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
# Written by Charles Wilson, 2009
#
# This file is part of GNU Libtool.
@ -16,7 +16,10 @@
# 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/>.
# 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.
####
AT_SETUP([cwrapper for uninstalled executables])

View File

@ -1,7 +1,6 @@
# darwin.at - tests specific to Mac OS X
#
# Copyright (C) 2008-2009, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2008-2009, 2011-2014 Free Software Foundation, Inc.
# Written by Peter O'Gorman, 2008
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
AT_BANNER([Mac OS X tests])
@ -33,7 +35,7 @@ int main() { return 0;}
]])
$noskip && {
$CC $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 -o simple simple.c 2>&1 > /dev/null || noskip=false
$CC $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 -o simple simple.c 2>&1 > /dev/null || noskip=false
rm -f simple
}
@ -80,21 +82,19 @@ 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 arm64 foo.c],[0],[ignore],[ignore])
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 baz.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch arm64 baz.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=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=compile --tag=CC $CC -c -o bar.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 bar.c],[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=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=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=compile --tag=CC $CC -c -o main.lo $CPPFLAGS $CFLAGS -arch x86_64 -arch i386 main.c],[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])
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])
PATH=$save_PATH
AT_CLEANUP

View File

@ -1,7 +1,6 @@
# demo.at -- Linking and loading. -*- Autotest -*-
#
# Copyright (C) 2003-2004, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2003-2004, 2011-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2003
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
@ -152,7 +154,7 @@ AT_DATA([foo.h],
# endif
#endif
#if (defined _WIN32 || defined _WIN32_WCE || __CYGWIN__) && !defined __GNUC__
#if (defined _WIN32 || defined _WIN32_WCE) && !defined __GNUC__
# ifdef BUILDING_LIBHELLO
# ifdef DLL_EXPORT
# define LIBHELLO_SCOPE extern __declspec (dllexport)
@ -434,9 +436,6 @@ 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],
@ -498,16 +497,6 @@ 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
@ -521,7 +510,7 @@ AT_CLEANUP
AT_SETUP([force non-PIC objects])
AT_CHECK([case $host in
hppa*|amd64*|x86_64*|s390*)
hppa*|x86_64*|s390*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@ -546,7 +535,7 @@ fi
])
_LT_DEMO_SETUP
LT_AT_CHECK_CONFIG([--disable-pic])
LT_AT_CHECK_CONFIG([--with-pic=no])
_LT_CHECK_EXECUTE
AT_CLEANUP
@ -634,10 +623,6 @@ 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" ;;
@ -677,10 +662,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 \
| func_hardcode_filter_fp | $FGREP "$objdir" > /dev/null 2>&1; then
| $FGREP "$objdir" > /dev/null 2>&1; then
hardcoded=yes
elif cat $file | func_hardcode_filter_fp | $FGREP "$objdir" > /dev/null 2>&1; then
elif $FGREP "$objdir" $file > /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,7 +1,6 @@
# depdemo.at -- Library interdependencies -*- Autotest -*-
#
# Copyright (C) 2003-2004, 2011-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2003-2004, 2011-2014 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2003
#
# This file is part of GNU Libtool.
@ -17,7 +16,10 @@
# 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/>.
# 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.
####
@ -129,7 +131,7 @@ int main (int argc, char **argv)
}
]])
# Create 4 directories of mostly identical files.
# Create 4 directorys 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-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
@ -15,7 +15,10 @@
# 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/>.
# 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.
####
# 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-2019, 2021-2026 Free Software
# Foundation, Inc.
# Copyright (C) 2005, 2007-2008, 2011-2014 Free Software Foundation,
# Inc.
# Written by Ralf Wildenhues, 2005
#
# This file is part of GNU Libtool.
@ -17,7 +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. If not, see <https://www.gnu.org/licenses/>.
# 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.
####
AT_BANNER([Detecting identical deplibs.])

View File

@ -1,6 +1,6 @@
# deplibs-mingw.at -- -*- Autotest -*-
# Copyright (C) 2010-2019, 2021-2026 Free Software Foundation, Inc.
# Copyright (C) 2010-2014 Free Software Foundation, Inc.
#
# This file is part of GNU Libtool.
#
@ -15,7 +15,10 @@
# 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/>.
# 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.
####
# Check that deplibs are detected correctly even if there is no 'file'
@ -24,11 +27,6 @@
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
@ -66,7 +64,7 @@ for try in with-file without-file; do
[], [ignore], [ignore])
case $host_os in
mingw* | windows*)
mingw*)
if file /; then
mkdir bin new-libtool

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