Commit Graph

3544 Commits

Author SHA1 Message Date
Ralf Wildenhues
5e64625426 Bump copyright years in manual.
* doc/libtool.texi: Bump copyright years.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-20 07:01:34 +02:00
Paolo Bonzini
b9accaaa3b improve code for sysroot --mode=finish
* libltdl/config/ltmain.m4sh (func_mode_finish): Change sysroot_regex
and sysroot_cmd delimiter from pipe to slash.  Wrap the entire for
loop with "if $opt_dry_run...fi" and print an explanatory message
for the --dry-run case.
2010-08-15 18:54:02 +02:00
Paolo Bonzini
d32c96ccd6 add libtool --mode=finish mode for sysroot
* doc/libtool.texi (Finish mode): Document behavior when *.la files
are passed.
* libltdl/config/ltmain.m4sh (func_mode_finish): Eliminate sysroot
or `=' signs representing it from files in $libs.
* tests/sysroot.at (SYSROOT_TESTS): Test for presence of sysroot
references before running libtool --mode=finish, and for absence
afterwards.
2010-08-15 18:45:39 +02:00
Paolo Bonzini
55e986b8b4 reorganize parsing of --mode=finish arguments
* libltdl/config/ltmain.m4sh (func_mode_finish): Split arguments for
directories and *.la files.
2010-08-15 18:45:31 +02:00
Paolo Bonzini
09a695acf9 fix sysroot handling for deplibs of preopened libtool libs
* libltdl/config/ltmain.m4sh: Pass $dependency_libs of preopened libtool
through func_resolve_sysroot.
2010-08-15 18:40:53 +02:00
Paolo Bonzini
5735d4b16d fix sysroot tests to pass on Fedora 13
* tests/sysroot.at: Link $prefix/include into the sysroot as well, as
required by newer GCC.
2010-08-15 18:40:49 +02:00
Peter Rosin
66ce911b33 Allow the use of a listing file if the archiver supports it.
* libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): Move detection
of a suitable archiver...
(_LT_PROG_AR): ...to here. New macro, also detect if the
archiver supports a listing file with the new variable
archiver_list_spec.
* libltdl/config/ltmain.m4sh: If the archiver supports a listing
file, use it when max_cmd_len is exceeded.  This is needed for
tool chains such as MSVC which do not support piece by piece
linking (-r -o).
* doc/libtool.texi (libtool script contents): Update with
archiver_list_spec description.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-08-13 13:11:54 +02:00
Paolo Bonzini
8f2fcb912f initial version of the NEWS entry
* NEWS: Document sysroot support.
2010-08-11 14:43:04 -04:00
Paolo Bonzini
3f6731bd3f add sysroot test
* Makefile.am (TESTSUITE_AT): Add tests/sysroot.at.
* tests/sysroot.at: New.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-11 14:43:04 -04:00
Paolo Bonzini
a3cff76611 emit sysrooted paths when installing .la files
* libltdl/config/ltmain.m4sh (func_replace_sysroot): New.
(func_mode_link): Prepend paths in $libdir with the sysroot.  Further,
replace the sysroot with = (using func_replace_sysroot) whenever
such a path is written in a .la file.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-11 14:43:04 -04:00
Paolo Bonzini
d77a3a5124 process postdeps to include sysrooted paths
* libltdl/m4/libtool.m4 (_LT_FUNC_STRIPNAME_CNF): New (from Charles Wilson).
(_LT_SYS_HIDDEN_LIBDEPS): Require it.  Use func_stripname_cnf to convert
sysroot (-L= and -R=) usage in postdeps.  Adjust the code because -L, -R
and -l flags will now always be separated from the rest of the argument.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-11 14:43:03 -04:00
Paolo Bonzini
adb8f844f3 handle sysrooted paths when reading dependencies to la files
* libltdl/config/ltmain.m4sh (func_mode_execute, func_mode_install,
func_mode_link): Whenever a .la file occurs in another .la file,
expand the sysroot path in it.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
2010-08-11 14:43:03 -04:00
Paolo Bonzini
c45a288134 teach libtool -L= and -R=
* libltdl/config/ltmain.m4sh (func_resolve_sysroot): New.
(func_mode_link): Always pass result of stripping -L and -R to
func_resolve_sysroot before using it.  Remove absolute path expansion
when func_resolve_sysroot subsumes it.  Expand sysroot in -rpath.
When processing dependent libraries also resolve sysroot paths there.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-08-11 14:43:03 -04:00
Paolo Bonzini
3334f7ed58 add --with-sysroot
* libltdl/m4/libtool.m4 (_LT_HOST_NONCANONICAL, _LT_WITH_SYSROOT): New.
(LT_SETUP): Require _LT_WITH_SYSROOT.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
2010-08-11 14:43:03 -04:00
Paolo Bonzini
a8f549c134 handle sysroot flags
* libltdl/config/ltmain.m4sh (func_mode_link): Recognize --sysroot
option.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
2010-08-11 14:38:08 -04:00
Gary V. Vaughan
9b4ec3cd97 Make testsuite compatible with Autoconf 2.62 again.
* tests/getopt-m4sh.at (AT_CHECK): Autotest 2.62 chokes on unquoted
'#' in AT_CHECK, so replace all uses with '@%:@' quadrigraph.
Suggested by Eric Blake <eblake@redhat.com>
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-10 16:38:03 +07:00
Ralf Wildenhues
3c1027fe21 Fix more problematic code from "Add func_append_quoted and do..."
* libltdl/config/ltmain.m4sh (func_mode_link): Revert back
func_append instances that as assignments relied on the shell
not performing word splitting on the right hand side of the
assignment.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-09 23:18:27 +02:00
Ralf Wildenhues
0f87df7fa6 Fix another typo on "Add func_append_quoted and do..."
* libltdl/config/ltmain.m4sh (func_mode_link): Fix regression in
computation of finalize_rpath introduced in v2.2.10-40-g0da7d80,
fixing several testsuite failures on AIX.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-09 22:51:11 +02:00
Ralf Wildenhues
b7b0e70e98 Avoid unwanted error message in configure output.
* libltdl/m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Try print
in subshell, so eventual `print: not found' is hidden reliably.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-07 19:20:57 +02:00
Ralf Wildenhues
4246f026cb Fix compilation of program sources on AIX.
* tests/lt_dlopenext.at (lt_dlopenext error messages): Do not
use $LIBTOOL when compiling plain object, AIX by default does
not enable static archives.
* tests/ltdl-libdir.at (libdir of installed modules): Likewise.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-07 19:20:57 +02:00
Ralf Wildenhues
3936d01df5 Do not call toplevel configure in non-VPATH build.
* tests/deplibs-mingw.at (deplibs without file command): Use
LT_AT_CONFIGURE for consistency, update comment about why it
might fail.
* tests/pic_flag.at (override pic_flag at configure time): Skip
test if we are building in-tree.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-07 13:08:07 +02:00
Ralf Wildenhues
4055972b1c Allow running pic_flag test with different shell.
* tests/testsuite.at (LT_AT_CONFIGURE): Accept optional second
argument specifying the configure script to run.
* tests/pic_flag.at (override pic_flag at configure time):
Use LT_AT_CONFIGURE.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-07 13:08:07 +02:00
Ralf Wildenhues
3078821c7f Ensure not to reverse preserving of --debug for relinking/finish.
* libltdl/config/ltmain.m4sh (func_check_version_match): Only
preserve '--debug' switch if $opt_debug is not equal to ':'.
* tests/help.at (debug tracing): New test group.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-07 07:41:12 +02:00
Ralf Wildenhues
2fc264a8e2 Fix AC_NO_EXECUTABLES test failure on AIX.
* libltdl/m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Wrap link
test in AC_CACHE_VAL, using cache variable $lt_cv_aix_libpath.
* tests/no-executables.at (AC_NO_EXECUTABLES): Preset it, to
avoid link test.
Bug report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-06 22:03:19 +02:00
Ralf Wildenhues
3e68aa1ac6 Fix ltdl-libdir test for C++ compilers.
* tests/ltdl-libdir.at (libdir of installed modules): Declare
module function as extern "C".

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-06 21:41:11 +02:00
Ralf Wildenhues
21cffd15fb Let libtool' without arguments point to --help' again.
* libltdl/config/ltmain.m4sh (func_check_version_match):
Remove duplicate and wrong error check.
* tests/help.at (standard command line options): Extend test.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-04 22:30:48 +02:00
Ralf Wildenhues
10f650c428 Avoid syntax error due to shift of nonexistent parameter.
* libltdl/config/ltmain.m4sh <command-line handling>: Only shift
if there is a positional parameter to shift.  Fixes `libtool
--help' when dash is used.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-04 22:30:14 +02:00
Ralf Wildenhues
06543b4373 Fix testsuite errors due to shell quoted parameter expansion issue.
* tests/getopt-m4sh.at (_LT_AT_GETOPT_M4SH_SETUP): Insert space
between double-quoted and unquoted shell parameter, as bash
4.0.28 doesn't add one in its output if the expansion of the
second one starts with a space.
(short option splitting, enhanced shell short option splitting)
(long option splitting, XSI long option splitting): Add space in
expected output.
Fixes testsuite failures on AIX, FreeBSD, etc.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-04 21:22:20 +02:00
Ralf Wildenhues
1162eebc69 Fix build failure with AIX sh due to shell quoting error.
* libltdl/config/ltmain.m4sh (func_append_quoted): Document
that this function inserts a separator space.
(func_mode_compile): Do not pass extra space here.
Fixes regression introduced in v2.2.10-49-gc13532a.
Report by Rainer Tammer.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-03 21:49:10 +02:00
Ralf Wildenhues
5892f61de8 Fix pic_flag test unportabilities.
* tests/pic_flag.at (override pic_flag at configure time): Skip
test if the compiler produces a warning containing `fpic'.
Do not use nonportable `grep -e', for Solaris.
Report by Charles Wilson.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-08-02 22:21:05 +02:00
Paolo Bonzini
a107f18041 fix bug in postdeps computation
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Actually concatenate
$prev and $p.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
2010-08-01 10:23:16 +02:00
Charles Wilson
32a6c3b33c Don't always skip XSI tests
tests/getopt-m4sh.at: Use new signature as implemented by
de8a0992b2, when determining
whether to test Extended-shell functions.
2010-07-26 20:32:20 -04:00
Peter Rosin
0e01d00c70 dllimport when the lib is shared and not linking with -static
* tests/stresstest.at: Link with main.lo when liba is shared
and linking main with -no-install.
2010-07-21 18:19:50 +02:00
Peter Rosin
937319cb0a dllimport variables for MSVC in stresstest.at
* tests/stresstest.at [MSVC]: dllimport all imported
variables.
2010-07-18 17:17:06 +02:00
Peter Rosin
653fa66d07 dllimport the variable for MSVC in link-order.at
* tests/link-order.at [MSVC]: Makes the test pass by dllimporting
imported variables when working with shared libraries.
2010-07-17 04:05:33 +02:00
Peter Rosin
0656b19eb9 Make preloading heed libname_spec.
Fixes testsuite failure for lt_dladvise.at on MSYS/MSVC.

* libltdl/ltdl.c (libprefix): New static variable describing
the prefix of static archives.
(try_dlopen): Use libprefix.
* libltdl/m4/ltdl.m4 (_LTDL_SETUP): Export prefix of static
archives to config.h. Also fix assignment of LTDLOPEN to be more
efficient and less error prone while at it.
2010-07-08 18:12:02 +02:00
Gary V. Vaughan
8c4dae1232 Fix a spurious trailing space and a botched merge.
* libltdl/m4/libtool.m4 (_LT_PROG_FUNCTION_REPLACE): Remove
spurious trailing space.
* ChangeLog: Reorder to match commit order after botched
merge.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-08 20:36:39 +07:00
Gary V. Vaughan
de8a0992b2 Rename _LT_PROG_XSI_REPLACE macro to _LT_PROG_FUNCTION_REPLACE.
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): Rename to
_LT_PROG_REPLACE_SHELLFNS.
(_LT_PROG_XSI_REPLACE): Rename to _LT_PROG_FUNCTION_REPLACE.
(_LT_PROG_FUNCTION_REPLACE): Change decorator comment to use
'Extended shell' rather than 'XSI' on successful replacement.
* libltdl/config/general.m4sh (func_dirname, func_basename)
(func_dirname_and_basename, func_stripname): Change decorator
comment to use 'extended shell' rather than 'XSI' on fallback
implementations.
* libltdl/config/getopt.m4sh (func_split_short_opt)
(func_split_long_opt): Ditto.
* libltdl/config/ltmain.m4sh (func_append, func_append_quoted)
(func_arith, func_len, func_lo2o, func_xform): Ditto.
* tests/getopt-m4sh.at (_LT_AT_XSI_FUNC_EXTRACT): Rename to
_LT_AT_EXTENDED_SHELL_FUNC_EXTRACT.
(_LT_AT_EXTENDED_SHELL_FUNC_EXTRACT): Change regular expression to
match new replacable function decorator comments.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-08 20:20:24 +07:00
Peter Rosin
3f22cab581 Optimize assignment of output_la.
* libltdl/config/ltmain.m4sh (func_mode_link): Save two fork/exec
instances.
Report by Ralf Wildenhues.
2010-07-08 14:23:02 +02:00
Gary V. Vaughan
2e5ed25df3 Fix a cut-n-pasto in "2010-07-07 Charles Wilson" patch.
* libltdl/config/ltmain.m4sh (func_mode_link): Remove spurious
variable dereference.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-08 18:33:31 +07:00
Gary V. Vaughan
94d129e2e3 Tidy m4 comment header underline.
* libltdl/m4/libtool.m4 (_LT_CHECK_SHAREDLIB_FROM_LINKLIB): Make
sure hyphens in function name comment header underline line up.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2010-07-07 15:02:07 +07:00
Charles Wilson
e83da49a1f [cygwin|mingw] fix dlpreopen with --disable-static
* libltdl/config/general.m4sh (func_tr_sh): New function.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms) [cygwin|mingw]:
Obtain DLL name corresponding to import library by using value
stored in unique variable libfile_$(transliterated implib name).
If that fails, use $sharedlib_from_linklib_cmd to extract DLL
name from import library directly. Also, properly extract dlsyms
from the import library.
(func_mode_link) [cygwin|mingw]: Prefer to dlpreopen DLLs
over static libs when both are available.  When dlpreopening
DLLs, use linklib (that is, import lib) as dlpreopen file,
rather than DLL. Store name of associated la file in
unique variable libfile_$(transliterated implib name)
for later use.
(func_win32_libid): Accomodate pei-i386 import libs
as well as pe-i386.
(func_cygming_dll_for_implib): New function.
(func_cygming_dll_for_implib_fallback): New function.
(func_cygming_dll_for_implib_fallback_core): New function.
(func_cygming_gnu_implib_p): New function.
(func_cygming_ms_implib_p): New function.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust sed
expressions for lt_cv_sys_global_symbol_to_c_name_address and
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
as trailing space after module name is optional.
(_LT_LINKER_SHLIBS) [cygwin|mingw][C++]:
Set exclude_expsyms correctly for $host. Simplify regular
expression in export_symbols_cmds.
(_LT_LINKER_SHLIBS) [cygwin|mingw|pw32][C]: Set exclude_expsyms
correctly for $host. Enable export_symbols_cmds to identify
DATA exports by _nm_ prefix.
(_LT_CHECK_SHAREDLIB_FROM_LINKLIB): New macro sets
sharedlib_from_linklib_cmd variable.
(_LT_DECL_DLLTOOL): New macro ensures DLLTOOL is always set.
2010-07-07 00:42:00 -04:00
Peter Rosin
b28132eaba * tests/export.at [MSVC]: dllimport all imported variables.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-07-05 13:02:54 +02:00
Peter Rosin
0b56641c03 Support for response files with $NM.
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
<nm_file_list_spec>: New tag variable. Set it to '@' if input
files can be passed to $NM in a file named with the '@' option.
* libltdl/config/ltmain.m4sh (func_mode_link): When
nm_file_list_spec is nonempty, use it to avoid skipped_export.
* doc/libtool.texi (libtool script contents): Document
new variable.
2010-07-05 07:09:07 +02:00
Ralf Wildenhues
1e7ce72416 Fix ccache test for MSVC.
* tests/static.at (ccache -all-static): Ignore compiler stderr.
Reported by Peter Rosin.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2010-07-04 21:50:53 +02:00
Charles Wilson
cec246760f Avoid false failures caused by filesystem interaction
* tests/dlloader-api.at (dlloader API): Use uglified names for
pseudo-modules.

Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
2010-07-04 00:29:04 -04:00
Peter Rosin
c13532ae1f Fix typo in "Add func_append_quoted and do..."
* libltdl/config/ltmain.m4sh (func_mode_compile): Use
func_append_quoted instead of func_append.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-07-03 10:14:35 +02:00
Peter Rosin
3ab9879a99 Don't trigger file name expansion when embedding manifests.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS)
[ cygwin, mingw, cegcc ] <cl*>: Remove all spaces in the
case statement of postlink_cmds to make file name expansion
more unlikely.
(_LT_LANG_CXX_CONFIG): Likewise, but also add the missing |.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-07-02 08:17:19 +02:00
Peter Rosin
60dde3d469 Fix regression caused by "Add func_append_quoted and do..."
* libltdl/config/ltmain.m4sh (func_mode_link): Remove leftover
"_libs" trash.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
2010-07-01 19:22:29 +02:00
Peter Rosin
c20dbb8781 For MSVC, embed the manifest as a resource in the executable.
Fixes a lot of testsuite failures with MSVC 2003 (v8.0) and
above (and perhaps also MSVC .Net) related to running programs
that have been moved (e.g. installed) without their manifests
also having been moved.

* libltdl/m4/libtool.m4 (_LT_PATH_MANIFEST_TOOL): New macro
that locates the Manifest Tool (mt) and verifies that it is
indeed the manifest tool. The result is stored in the new
variable MANIFEST_TOOL.
(_LT_LINKER_SHLIBS) <postlink_cmds>: New tag variable.
[ cygwin, mingw, cegcc ] <cl*>: Embed the manifest file as a
resource. Make sure the embedding work regardless of if the
@OUTPUT@ file name includes a trailing $EXEEXT.
(_LT_LANG_CXX_CONFIG): Likewise.
(_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG): Require the above
_LT_PATH_MANIFEST_TOOL.
* libltdl/config/ltmain.m4sh (func_mode_link): After linking
a program, replace @OUTPUT@ in $postlink_cmds and then execute
the commands.
* doc/libtool.texi (libtool script contents): Document
new postlink_cmds variable.
(LT_INIT): Add that the MANIFEST_TOOL environment variable can
be used to override the manifest tool to use.
* tests/exeext.at: New. Make sure linking with both -o prog
and -o prog$EXEEXT works.
* Makefile.am (TESTSUITE_AT): Update.
(TESTS_ENVIRONMENT): Propagate $(MANIFEST_TOOL) to the
testsuite.
* NEWS: Add note of the new MANIFEST_TOOL environment variable.
2010-07-01 09:04:35 +02:00