m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [Solaris] <archive_cmds>: Drop
$LDFLAGS as it is a user variable that is usually used when invoking
libtool. As such, it should not be used by libtool when it invokes the
toolchain as it contains options intended for libtool, not the
toolchain. Fixes export.at and other tests that add -no-undefined to
LDFLAGS.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Tested-by: Richard Palo <richard.palo@baou.fr>
m4/libtool.m (_LT_LANG_CXX_CONFIG) [Solaris] <archive_expsym_cmds>: Feed
-h $soname to the linker just as is done in archive_cmds.
THANKS: Update.
Copyright-paperwork-exempt: Yes
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]: Adjust
lt_cv_sys_global_symbol_to_cdecl so that it declares imported
data symbols as __declspec(dllimport). Adjust
lt_cv_sys_global_symbol_to_c_name_address and
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix so that they
fill in "(void*) 0" for imported data symbols. Add new
lt_cv_sys_global_symbol_to_import which finds imported data
symbols if non-empty and export this variable to the libtool script
in the global_symbol_to_import variable. Adjust
lt_cv_sys_global_symbol_pipe so that data imports can be located.
* build-aux/ltmain.in (func_generate_dlsyms): When data imports
are present, as indicated by global_symbol_to_import, generate
a relocation function lt_syminit that fills in the addresses
of data imports at runtime and point to the new function with a
new virtual @INIT@ entry in the symbol list.
* libltdl/loaders/preopen.c (add_symlist): Look for the virtual
@INIT@ symbol (i.e. lt_syminit) and call it.
(vm_sym): Step past the @INIT@ symbol, if present.
* tests/demo.at (dlmain.c): Call the @INIT@ symbol, if present.
* NEWS: Update.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Since it is safe for $lt_cv_sys_global_symbol_to_cdecl to match
with a simple /^T .* .*$/ type expression, it is ok for the other
transformations as well. At least if you require at least one
$symcode at the start of the line, so that the just generated output
doesn't match the next sed expression.
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Unify the matching expressions
in the sed programs that transform the extracted symbol lines.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Break up long lines when
assigning the sed scripts that transform the extracted symbol lines.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Bootstrap used to fail without an explicit AWK environment
setting on machines with both nawk and awk, but where awk is a
museum piece.
* gl/build-aux/inline-source (AWK): Remove initial setting.
(require_awk): Search PATH for a gawk, mawk or nawk before
settling on awk, just like configure does.
(func_include): Use it.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* gl/build-aux/bootstrap.in (require_gnulib_submodule): Register
the gnulib submodule before updating it, even with a shallow
clone of gnulib.
* bootstrap: Regenerate.
Reported by Robert Boehne.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* gl/build-aux/funclib.sh: Fix a typo in fork minimisation for
bash versions 3.00.x.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Fix spurious test failures due to unmatched experr output.
* tests/libtoolize.at, tests/old-ltdl-iface.at: Add the addition
2 spaces now used to justify error prefixes.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* gl/build-aux/bootstrap.in (require_buildreq_automake)
(require_dotgitmodules_parameters, require_package)
(func_update_po_files): Use '\n' or -e to separate sed commands,
instead of ';'.
* gl/build-aux/extract-trace (func_autoconf_configure)
(func_extract_trace_first): Likewise.
* gl/funclib.sh: Likewise.
(func_tr_sh): Likewise.
* gl/build-aux/options-parser (func_usage_message): Likewise.
* bootstrap: Regenerate.
Reported by Robert Boehne.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* gl/build-aux/funclib.sh (func_error): Move the prefix indent
before $tc_standout to avoid bright red inverse spaces.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Be more helpful when a prerequisite program from $buildreq
cannot be located, by showing what variable to export if it
is already installed but not in PATH.
* gl/build-aux/bootstrap.in (func_check_versions): Display
associated environment variables for not found prerequisite
programs.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Plenty of machines use a terminfo database that doesn't have
entries for color escape sequences, even though the terminal
itself most likely supports ANSI color escapes.
* gl/build-aux/funclib.sh (require_term_colors): If COLORTERM
or USE_ANSI_COLORS are set, then ignore what terminfo says,
and use standard ANSI color escape sequences.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* gl/build-aux/funclib.sh (func_error): Indent 'error' prefix by
two additional spaces to line up nicely with 'warning' and
'running'.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.in (func_show_eval): Use $require_term_colors to
embolden the command about to be executed in output.
* bootstrap: Regenerate.
* bootstrap.conf (libtool_build_prerequisites): Use the standard
(colorful!) bootstrap func_show_eval here too.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.conf (libtool_build_prerequisites): Add support for
AM_V_GEN and AM_V_at to the temporary pre-configure Makefile.
Instead of eliding non-error output from bootstrap-deps, show
the results, with verbosity set according to $opt_verbose.
* Makefile.am (m4/ltversion.m4, build-aux/ltmain.sh, libtool)
(README): Fix the display rules to correctly fall-back to
AM_DEFAULT_VERBOSITY when V=1 is not passed to make invocation.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* build-aux/git-log-fix: Mostly missing category tags and refilling
to 64 columns, but also deleting duplicate entries from merging the
gary/reredo-test-operand-order branch.
* g/build-aux/gitlog-to-changelog.diff: Local patch to prevent
printing unqualified header lines for deleted duplicate patches.
* THANKS: Put email address for Paul Seidler here...
* build-aux/git-log-fix: ...and remove from ChangeLog here.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Modern GNU ASCII quoting in output and comments is done
'like this'.
* cfg.mk (sc_old_style_quoting): Try to catch most instances
of `old style quoting' so that it is not accidentally re-
introduced to the code.
* HACKING, Makefile.am, NEWS, PORTING, README, TODO, bootstrap,
bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/git-hooks/commit-msg, build-aux/ltmain.in,
doc/libtool.texi, gl/build-aux/bootstrap.in,
gl/build-aux/extract-trace, gl/build-aux/funclib.sh,
gl/build-aux/inline-source, gl/build-aux/options-parser,
libltdl/libltdl/slist.h, libltdl/loaders/loadlibrary.c,
libltdl/ltdl.c, libltdl/slist.c, libtoolize.in, m4/argz.m4,
m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4,
tests/cmdline_wrap.at, tests/configure-iface.at, tests/demo.at,
tests/depdemo.at, tests/deplib-in-subdir.at,
tests/deplibs-mingw.at, tests/destdir.at, tests/execute-mode.at,
tests/f77demo.at, tests/fail.at, tests/inherited_flags.at,
tests/libtool.at, tests/libtoolize.at, tests/lt_dladvise.at,
tests/lt_dlexit.at, tests/mdemo.at, tests/need_lib_prefix.at,
tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/static.at,
tests/stresstest.at, tests/testsuite.at, tests/versioning.at:
Convert to upright quotes.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
In order to work as if it were already adopted by upstream
gnulib, put bootstrap and supporting scripts into the local
gnulib overrides directory.
* bootstrap, build-aux/extract-trace, build-aux/funclib.sh,
build-aux/inline-source, build-aux/options-parser: Move from
here...
* gl/build-aux/bootstrap.in, gl/build-aux/extract-trace,
gl/build-aux/funclib.sh, gl/build-aux/inline-source,
gl/build-aux/options-parser: ...to here.
* gl/build-aux/options-parser (func_version): Show only the
first copyright notice on files generated with inline-source.
* gl/doc/bootstrap.texi: Developer documentation for bootstrap.
* gl/modules/extract-trace, gl/modules/funclib.sh,
gl/modules/inline-source, gl/modules/options-parser: Describe
dependencies for gnulib-tool.
* bootstrap.conf (gnulib_modules): Add extract-trace,
inline-source and options-parser modules.
* bootstrap: Regenerated from gnulib overrides as a mono-
lithic script file using gl/build-aux/inline-source.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* tests/old-m4-iface.at (AC_CONFIG_MACRO_DIR support): New test.
Make sure we continue to support AC_CONFIG_MACRO_DIR using
projects.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* tests/libtoolize.at (multiple AC_CONFIG_MACRO_DIRS directories):
New test to ensure multiple directory arguments mork correctly.
* libtoolize.in (func_require_ac_macro_dir): Use expr to discard
any additional space delimited entries in the first
AC_CONFIG_MACRO_DIRS argument.
* bootstrap (func_require_macro_dir): Likewise.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* libtoolize.in (func_install_pkgmacro_files): Uee
AC_CONFIG_MACRO_DIRS.
(func_check_macros): Advise using AC_CONFIG_MACRO_DIRS.
(require_ac_macro_dir): Give priority to AC_CONFIG_MACRO_DIRS.
(require_macro_dir): Likewise.
* bootstrap: Give priority to AC_CONFIG_MACRO_DIRS.
* configure.ac: Define dummy AC_CONFIG_MACRO_DIRS for older
Autotools, that is allow bootstrap with current release versions.
Use AC_CONFIG_MACRO_DIRS instead of AC_CONFIG_MACRO_DIR.
* tests/testsuite.at: Source build-aux/extract-trace for access
to func_extract_trace.
(LT_AT_ACLOCAL): Use it to get the AC_CONFIG_MACRO_DIRS argument
to pass manually to aclocal for compatibility with old Automake.
Add a fallback AC_CONFIG_MACRO_DIRS definition to acinclude.m4
in the test directory.
(LT_AT_AUTORECONF): Likewise.
* tests/cdemo.at, tests/configure-iface.at, tests/darwin.at,
tests/demo.at, tests/depdemo.at, tests/early-libtool.at,
tests/libtoolize.at, tests/mdemo.at, tests/no-executables.at,
tests/nonrecursive.at, tests/old-ltdl-iface.at,
tests/recursive.at, tests/subproject.at, tests/tagdemo.at,
tests/template.at: Likewise.
* doc/libtool.texi: Update.
* NEWS: Update.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [MSVC]: Extract symbols
imported from DLLs by import libraries in the Microsoft dumpbin
wrapper.
(LT_PATH_NM): Add -headers option if dumpbin is the located name
lister to feed the above new code.
* NEWS: Update.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
* m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [MSVC]: Use
func_win32_libid as file_magic_cmd when the name lister
is MS dumpbin.
(_LT_CMD_GLOBAL_SYMBOLS): Export the new veriable nm_interface
to the libtool script.
* build-aux/ltmain.in (func_cygming_gnu_implib_p)
(func_cygming_ms_implib_p): Move up to before...
(func_win32_libid): ...which now uses them to determine if
the object is an import library when the nm_interface is
"MS dumpbin".
* NEWS: Update.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Previous versions of bootstrap concatenated all the arguments to
multiple invocations of AC_CONFIG_MACRO_DIR when extracting the
macro_dir directory name. This change enforces correct and
consistent behaviour.
* libtoolize.in (func_require_macro_dir): Use the new
func_extract_trace_first function to make sure the first argument
is always used.
(func_require_aux_dir, func_require_gnulib_mk)
(func_require_source_base): Future proof these functions against
multiple invocations or additional arguments to the macros they
trace.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap (func_require_macro_dir): .* is greedy, so _G_sed_scan
as it was will always return the last -I argument, which is wrong.
Move to a shell loop to ensure we always get the first -I argument
if any. (code from libtoolize.in).
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.conf (buildreq): Use gnu.org/s/ style urls to match
the ones added automatically by the main bootstrap script.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Previous releases of libtoolize used the final invocation when
there were several, and after the rewrite over extract-trace,
all the invocation directories were concatenated. This change
enforces correct and consistent behaviour.
* tests/libtoolize.at (multiple AC_CONFIG_MACRO_DIR invocation):
New test.
* build-aux/extract-trace (func_extract_trace_first): New function
for clients that source this file, which returns only the first
argument to the first invocation of the named macros.
* libtoolize.in (func_require_ac_macro_dir): Use it to make sure
the first argument is always used.
(func_require_ac_aux_dir, func_require_ac_ltdl_dir)
(func_require_ac_ltdl_options): Future proof these functions against
multiple invocations or additional arguments to the macros they
trace.
* News (Important incompatible changes): Note change in semantics.
Reported by Eric Blake.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* tests/libtoolize.at (libtoolize ACLOCAL_AMFLAGS extraction):
New test.
* libtoolize.in (func_check_macros): Display the correct advice
when ACLOCAL_AMFLAGS specifies a macrodir, but AC_CONFIG_MACRO_DIR
does not.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
If an object has a symbol lacking an expected leading underscore,
the symbol name is not printed, but the symbol type is, leading
to output such as:
T _normal _normal
T T _another _another
when the expected output would have been something like:
T _normal _normal
T no_underscore no_underscore
T _another _another
However, symbols lacking an expected leading underscore are
not "real" symbols, they are internal symbols which we don't
care about, therefore drop them instead.
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [MSVC]: Output the whole
symbol line in one go.
* NEWS: Update.
The lt_sed_naive_backslashify variable lost its lt_ prefix
when m4sh was dropped. But not everywhere.
* build-aux/ltmain.in (func_convert_core_file_wine_to_w32)
(func_convert_core_msys_to_w32): Drop the lt_ prefix from
the lt_sed_naive_backslashify variable.
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
* build-aux/funclib.sh (func_echo_infix_1): These quotes are not
actually nested, so add an exclude marker for the syntax-check.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* build-aux/ltmain.in: Declare relative paths to aux scripts from
source commands, for early inlining during bootstrap.
* Makefile.am (bootstrap_edit): Move auxscriptsdir
substitution from here....
(configure_edit): ...to here.
($(ltmain_sh)): Feed ltmain.in through inline-source as ltmain.sh
is generated to remove relative paths to aux scripts.
(install-data-local): Simplify. No need for special treatment for
ltmain.sh during installation, since aux scripts have already
been inlined.
Reported by Peter Rosin.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* build-aux/extract-trace: $usage is too generic, and can cause
sourced extract-trace to re-source options-parser. We already
require that funclib.sh be sourced before sourcing options-parser,
so it's safer to check that $progname is correct before sourcing
options-parser again from here.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Now that the code base has coalesced around a single option
parser, there's no need for the unused getopt.m4sh and support.
* build-aux/getopt.m4sh, build-aux/general.m4sh,
tests/getopt-m4sh.at: Remove.
* Makefile.am (m4sh_dir, LT_M4SH, general_m4sh, getopt_m4sh)
(sh_files): Remove.
(TESTSUITE_AT): Remove tests/getopt-m4sh.at.
(TESTS_ENVIRONMENT): Remove M4SH.
* bootstrap.conf (libtool_build_prerequisites): Remove M4SH.
* configure.ac (M4SH): Remove.
* HACKING (Editing `.m4sh' Files): Remove and renumber following
sections.
* Makefile.am (ltmain_m4sh, ltmain_sh_edit): Remove.
(ltmain_in): Path to ltmain.in.
(ltmain_sh): Generate ltmain.sh from ltmain.in using
$(bootstrap_edit).
* build-aux/ltmain.m4sh: Remove.
* build-aux/ltmain.in: Rewritten as a client of funclib.sh.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>