Ralf Wildenhues [Tue, 1 May 2007 07:54:58 +0000 (07:54 +0000)]
* Makefile.am (clean-ltmain-sh): Removed.
(libtool, $(srcdir)/$(m4dir)/ltversion.m4)
($(srcdir)/$(auxdir)/ltmain.sh): Updated to not depend on any
phony rules. Test `$?' for prerequisites that should always
cause us to update the target. Fixes rebuilding rules, at the
cost of sometimes updating too much with non-GNU make.
Charles Wilson [Thu, 26 Apr 2007 22:24:16 +0000 (22:24 +0000)]
* libltdl/libltdl/lt__glibc.h: Use !HAVE_WORKING_ARGZ
instead of SYSTEM_ARGZ_IS_BROKEN.
* libltdl/m4/argz.m4 (gl_FUNC_ARGZ): Ditto. Also, minor
stylistic improvements.
Report by Bruno Haible <bruno@clisp.org>.
Charles Wilson [Wed, 25 Apr 2007 21:17:59 +0000 (21:17 +0000)]
* libltdl/argz_.h: ensure error_t definition is obtained
in same mechanism system argz.h would have.
* libltdl/libltdl/lt__glibc.h: also detect if
SYSTEM_ARGZ_IS_BROKEN when determining whether to re#def
argz* functions.
* libltdl/m4/argz.m4 (gl_FUNC_ARGZ): add new test to check
if $host's argz facilities are known bad. Err on the side
of caution if cross-compiling.
* libltdl/config/ltmain.m4sh (func_mode_link): Fix accumulation
of `inherited_linker_flags' entries from multiple deplibs, by
adding $new_inherited_linker_flags only once, only in link pass.
* tests/inherited_flags: Amend test to expose this.
* NEWS: Adjust: kill one regression, but add note about the
feature new in 1.9b.
Report by Jeff Squyres and others.
Charles Wilson [Mon, 23 Apr 2007 16:56:48 +0000 (16:56 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): move wrapper
script generation from here...
(func_emit_libtool_wrapper_script): to this new function, and
write to stdout
(func_mode_link): move cwrapper source code generation from
here...
(func_emit_libtool_cwrapperexe_source): to this new function,
and write to stdout
(func_mode_link): call the two new functions and redirect
output to appropriate file.
* libltdl/config/ltmain.m4sh (func_mode_link) <-no-install>
[ darwin ]: Treat like `-no-fast-install', as we cannot
hardcode. Report by Simon Josefsson.
* doc/libtool.texi (Link mode) <-no-install>: Mention that this
still generates a wrapper script on systems without hardcoding.
* tests/stresstest.at: Test `-no-install'.
* THANKS: Update.
Report by Simon Josefsson.
Gary V. Vaughan [Mon, 26 Mar 2007 20:18:43 +0000 (20:18 +0000)]
The stamp-vcl file rules caused non-gnu make programs to rerun
parts of the configuration process on each invocation. Instead
of relying on a stamp file, we now compare version numbers of
generated files with the ChangeLog timestamp manually in the
affected make rules to decide whether regenerating is necessary:
* Makefile.am (EXTRA_DIST): Remove stamp-vcl.
(clean-ltmain-sh): Also remove users' obsolescent stamp-vcl.
(rebuild): Keep some common code here for...
(libtool, libltdl/m4/ltversion.m4, libltdl/config/ltmain.sh):
Rewritten to work without reference to intermediate stamp-vcl
file.
* configure.ac (CONFIG_STATUS_DEPENDENCIES): Change from
stamp-vcl to ChangeLog.
* NEWS: Removed entry saying this fix is needed.
Gary V. Vaughan [Mon, 19 Mar 2007 13:21:37 +0000 (13:21 +0000)]
* libtoolize.m4sh: Handle argz.m4 specially like ltdl.m4, so
that it isn't copied unless libltdl is being used. Copy other
macro files according to their tagged serial numbers.
* tests/libtoolize.at: Adjust.
Ralf Wildenhues [Sun, 18 Mar 2007 18:44:42 +0000 (18:44 +0000)]
* tests/mdemo/Makefile.am (libmlib_la_LDFLAGS): Add
`-export-symbols-regex ".*"' because the convenience libltdl
uses export markers and thus turns off autoexport on w32. Fixes
test failures for Cygwin and MinGW.
Bug analysis by Charles Wilson.
Ralf Wildenhues [Sun, 18 Mar 2007 18:08:50 +0000 (18:08 +0000)]
* libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER)
(_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
(_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ interix ]: When
matching for interix, accept version range [3-9] instead of 3.
* NEWS: Update.
Report by Martin Koeppe <mkoeppe@gmx.de>.
Ralf Wildenhues [Sun, 18 Mar 2007 17:40:35 +0000 (17:40 +0000)]
* libltdl/m4/libtool.m4 (LT_PROG_GCJ): Avoid M4 expansion error
that caused `dnl' to be merged to the previous word.
* THANKS: Update.
Report by Steve Ellcey.
Ralf Wildenhues [Tue, 6 Mar 2007 22:31:09 +0000 (22:31 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Also apply the
symbol filtering for w32 and the include_expsyms feature in the
case of exceeded command line length. Fixes test failure on
MinGW.
Ralf Wildenhues [Tue, 6 Mar 2007 22:30:15 +0000 (22:30 +0000)]
* tests/stresstest.at: For const data object imported from
shared library, define appropriate macros to expand
__declspec(dllimport) on w32. Use two different main objects
and pick the right one for the link flags we are about to test.
Fixes test failure on MinGW.
Ralf Wildenhues [Tue, 6 Mar 2007 22:28:00 +0000 (22:28 +0000)]
* tests/export.at: For const data object imported from shared
library, define appropriate macros to expand
__declspec(dllimport) on w32. Fixes test failure on MinGW.
Gary V. Vaughan [Tue, 6 Mar 2007 00:46:56 +0000 (00:46 +0000)]
* libltdl/config/general.m4sh (M4SH_VERBATIM): New macro to
simplify m4sh quote quoting in blocks of raw shell code.
* clcommit.m4sh, libtoolize.m4sh, libltdl/config/getopt.m4sh,
libltdl/config/ltmain.m4sh, libltdl/config/mailnotify.m4sh,
tests/defs.m4sh: Use it.
* HACKING (Editing `.m4sh' Files): Mention M4SH_VERBATIM Macro.
Ralf Wildenhues [Tue, 27 Feb 2007 21:59:33 +0000 (21:59 +0000)]
* libltdl/Makefile.inc: Fix the file description, so that it
matches recursive and nonrecursive libltdl setup.
* Makefile.am ($(srcdir)/libltdl/Makefile.am): Do not depend
upon the exact text of the copyright header, just copy until
the marker line. Remove the marker lines in the output, and
adjust the description for subpackage setup.
Ralf Wildenhues [Sun, 25 Feb 2007 19:18:35 +0000 (19:18 +0000)]
* tests/static.at: Forgot to fix PATH for the first
func_test_exec invocation. So factor out into new functions
func_fix_path and func_restore_path and use those.
Ralf Wildenhues [Sun, 25 Feb 2007 15:33:24 +0000 (15:33 +0000)]
* README: Document the need for GNU make to build Libtool.
Point the user to the doc/notes.txt file. In the examples, use
`gmake' throughout to make it more obvious. Explain simpler way
to run both testsuites and either one. Referring to individual
tests needs the `tests/' prefix.
* README.alpha: Likewise.
* doc/notes.texi: Likewise, document need for GNU make.
Comment out the FreeBSD make issue for now.
Ralf Wildenhues [Sun, 25 Feb 2007 14:50:08 +0000 (14:50 +0000)]
* tests/static.at: Larger rewrite to make work on w32: Use three
different prefixes instead of three libdirs, so the moving of
the DLLs works as expected. Adjust all code. Since now
$libdirI/../bin is distinct from the directory of the installed
program, take care than on w32 PATH contains the needed bindirs,
in appropriate order.
Report by Charles Wilson.
Ralf Wildenhues [Sat, 24 Feb 2007 16:11:21 +0000 (16:11 +0000)]
* doc/libtool.texi (Install mode, libtool script contents):
Describe current and system-specific DESTDIR limitations.
* tests/destdir.at: XFAIL if `fast_install' is no.
Ralf Wildenhues [Sat, 24 Feb 2007 16:06:50 +0000 (16:06 +0000)]
* doc/libtool.texi (Libtool test suite): Mention the new
testsuite. Point to README rather than INSTALL for testing
instructions.
(Test descriptions): Fix more file names. Also mention
cdemo-undef.test, mdemo2-conf.test, mdemo2-exec.test,
mdemo2-make.test, objectlist.test, pdemo-conf.test,
pdemo-exec.test, pdemo-inst.test, pdemo-make.test,
tagdemo-conf.test, tagdemo-exec.test, tagdemo-make.test,
tagdemo-static.test, tagdemo-shared.test, tagdemo-undef.test,
f77demo-conf.test, f77demo-exec.test, f77demo-make.test,
f77demo-static.test, f77demo-shared.test, fcdemo-conf.test,
fcdemo-exec.test, fcdemo-make.test, fcdemo-static.test,
fcdemo-shared.test. Describe what they do.
(When tests fail, Troubleshooting): Mention how to pass options
to the new test suite.
* tests/tagdemo/README: Fix description.
Ralf Wildenhues [Sat, 24 Feb 2007 14:49:53 +0000 (14:49 +0000)]
* doc/libtool.texi (Test descriptions): Track the grand test
suite renaming from 2003-10-14 in the tests documentation.
assign.test is merged into sh.test. Fix description of sh.test.
* tests/sh.test: Likewise.
Ralf Wildenhues [Sat, 24 Feb 2007 08:49:24 +0000 (08:49 +0000)]
* tests/link-order2.at: Rewrite completely. Do not use `sin'
from the math library, there are too many problems with this.
Instead, use a self-written library, install it without the
Libtool library file, to emulate a native library in a system
directory, and adjust $shlibpat_var. Try overriding its symbol.
Further, also try an installed `wrong' binary.
Avoid failing test bits on AIX without runtimelinking and on
Darwin in some cases, SKIP at the end in this case.
Analysis by Peter O'Gorman.
Ralf Wildenhues [Sat, 24 Feb 2007 08:46:19 +0000 (08:46 +0000)]
* doc/notes.texi: Mention MACOSX_DEPLOYMENT_TARGET issue.
* tests/template.at: Only skip those tests failing on Darwin
if `-flat_namespace' is used by libtool. In that case, SKIP
at the end. Analysis by Peter O'Gorman.
Ralf Wildenhues [Fri, 23 Feb 2007 21:52:50 +0000 (21:52 +0000)]
Fix -export-symbols and -export-symbols-regex for links that
exceed the command line length and use convenience archives.
* libltdl/config/ltmain.m4sh (func_mode_link): Avoid grepping a
nonexistent file if using reloadable objects. Do not create a
linker script nor a linker input file if no objects are passed.
Apply export_symbols_regex in case the command line length is
exceeded.
Ralf Wildenhues [Fri, 23 Feb 2007 21:11:25 +0000 (21:11 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS)
<compiler_needs_object>: New tag variable. Default to `no'.
(_LT_LINKER_SHLIBS) [ linux ]: Set it to yes for Sun C 5.9.
(_LT_LANG_CXX_CONFIG): Also default it to `no'.
[ linux ]: Set it to `yes' for Sun C++ 5.9.
* libltdl/config/ltmain.m4sh (func_mode_link): If we link
no objects but only convenience archives into a library,
force expansion if `compiler_needs_object' is yes.
For creating a linker input filelist due to long cmdline,
extract the first object if `compiler_needs_object' is yes.
* doc/libtool.texi (libtool script contents): Document it.
Fixes test failures of Sun compilers on GNU/Linux.
Report by Terry D. Dontje.
Ralf Wildenhues [Fri, 23 Feb 2007 19:45:42 +0000 (19:45 +0000)]
* libltdl/config/ltmain.m4sh (func_generate_dlsyms) [ osf5 ]:
On Tru64 5.1, const relocations do not work well. Omit the
const here. Fixes failure of demo-make after demo-shared with
link editor error `seg_info_ptr: Couldnt find a seg type 2'.
Ralf Wildenhues [Fri, 23 Feb 2007 18:27:34 +0000 (18:27 +0000)]
* Makefile.am (doc_libtool_TEXINFOS): Renamed from...
(libtool_TEXINFOS): ...this, to fix dependencies. Omit from
EXTRA_DIST.
(check-local): Also depend upon $(bin_SCRIPTS).
Ralf Menzel [Fri, 23 Feb 2007 18:18:34 +0000 (18:18 +0000)]
* libltdl/config/general.m4sh (sed_double_backslash): Fix
hacky sed script to avoid limitations but retain portability to
Solaris /bin/sed. Remove old obsolete cruft.
Ralf Wildenhues [Thu, 22 Feb 2007 19:53:14 +0000 (19:53 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Fix the check for
convenience archives when warning about linking against static
libraries: test against $deplib rather than empty $lib.
Ralf Wildenhues [Mon, 19 Feb 2007 09:10:32 +0000 (09:10 +0000)]
* libltdl/m4/ltdl.m4 (LT_WITH_LTDL): Fix detection of new enough
libltdl by actually checking for the declaration of
lt_dlinterface_register in ltdl.h with AC_CHECK_DECL.
Remove redundant configure output line.
Ralf Wildenhues [Sat, 17 Feb 2007 15:21:36 +0000 (15:21 +0000)]
* tests/deplibs-ident.at [aix, hppa*-*-hpux*, interix, openbsd]:
Do not XFAIL, on these systems we happen to pass.
* tests/duplicate_deps.at [aix]: Likewise.
Ralf Wildenhues [Sat, 17 Feb 2007 08:22:59 +0000 (08:22 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ linux ]
<whole_archive_flag_spec>: For Sun C/C++ 5.9, do not add
/dev/null as dummy object, it fails with GNU ld version
2.16.91.0.7-amd-sles9. Report by Terry D. Dontje.
* THANKS: Update.
Ralf Wildenhues [Wed, 14 Feb 2007 18:55:24 +0000 (18:55 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ osf4, osf5 ]
<archive_expsym_cmds>: Use `${wl}-input' not `-input', for
cc. Could use `-input_to_ld'.
(_LT_LANG_CXX_CONFIG) [ osf4, osf5 ] <archive_expsym_cmds>:
Use `${wl}' instead of `-Wl,', for consistency.
Ralf Wildenhues [Mon, 12 Feb 2007 22:29:05 +0000 (22:29 +0000)]
Fix spurious testsuite failures on AIX due on NFS mounts due to
shared library images that cannot be removed without `slibclean'
which needs superuser privileges.
* tests/testsuite.at (PREPARE_TESTS): Define $mkdir_p globally.
(LT_AT_MVDIR): New macro to emulate `mv dir dest'.
* tests/destdir.at: Use LT_AT_MVDIR.
* tests/shlibpath.at: Likewise.
* tests/static.at: Likewise.
Ralf Wildenhues [Mon, 12 Feb 2007 20:50:36 +0000 (20:50 +0000)]
* tests/export.at: Exporting is not fully functional with
-retain-symbols-file. Do not test for failure to link `broken'
in this case. At the end of the test, SKIP if we are not fully
functional.
Ralf Wildenhues [Mon, 12 Feb 2007 19:55:02 +0000 (19:55 +0000)]
* tests/testsuite.at (LT_AT_NOINST_EXEC_CHECK): New macro, like
LT_AT_EXEC_CHECK but uses `$LIBTOOL --mode=execute' and allows
to pass `-dlopen MODULE' arguments.
* tests/lt_dlexit.at: Use it. Also, do not test `-dlpreopen',
that currently needs library names to begin with `lib'.
Ralf Wildenhues [Sun, 11 Feb 2007 16:47:53 +0000 (16:47 +0000)]
* tests/export.at: New test: expose -export-symbols failure
when the input consists solely of convenience archives, and
failure to not export all symbols when the command line length
is exceeded.
* Makefile.am: Adjust.
Ralf Wildenhues [Sun, 11 Feb 2007 16:22:42 +0000 (16:22 +0000)]
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): New substituted
function `func_lo2o', saving two fork&exec with XSI shells.
* libltdl/config/ltmain.m4sh (func_mode_compile)
(func_mode_install, func_mode_link): Use it for rewrites of
single files.
Ralf Wildenhues [Sun, 11 Feb 2007 16:19:09 +0000 (16:19 +0000)]
* libltdl/m4/libtool.m4 (_LT_PROG_XSI_SHELLFNS): New function
func_opt_split, for XSI and portable shell.
* libltdl/config/ltmain.m4sh: Move the insertion point for the
configure-generated shell functions to before the first option
parsing loop. Rewrite the separation of the long options to use
func_opt_split.
Ralf Wildenhues [Sun, 11 Feb 2007 16:16:38 +0000 (16:16 +0000)]
Eliminate roughly a third of the script execution time overhead
for all modes except for link/relink and uninstall/clean.
* libltdl/m4/libtool.m4 (_LT_CONFIG): Remove unused `TEST SUITE
MARKER', obsolete since 2005-04-17.
* libltdl/config/ltmain.m4sh: Likewise, several instances.
(Main): Tear apart, moving individual bits up as early in the
script as possible, to help the shell to avoid parsing the rest.
Ralf Wildenhues [Sun, 11 Feb 2007 11:07:08 +0000 (11:07 +0000)]
* libltdl/config/general.m4sh (sed_double_backslash): Replace
POSIX sed script with a hack that treats up to 10 backslashes
in the input correctly and is portable to Solaris /bin/sed.
Dave Brolley [Sun, 28 Jan 2007 14:55:01 +0000 (14:55 +0000)]
* libltdl/ltdl.c (lt_dlexit): Make sure that 'cur' is not NULL
before checking that it is still in the list.
* tests/lt_dlexit.at: New test.
* Makefile.am (TESTSUITE_AT): Adjust.
(check-local): Also depend on libltdl/libltdlc.la.
(check-recursive): Removed, unnecessary use of Automake
internals.
Ralf Wildenhues [Sun, 28 Jan 2007 13:03:47 +0000 (13:03 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ cygwin, mingw ]
<export_symbols_cmds>: Avoid shell expansion of '/s/.*' through
double expansion, in case there is a 'S:' drive.
Report by Charles Wilson.
Ralf Wildenhues [Sun, 28 Jan 2007 12:43:37 +0000 (12:43 +0000)]
Introduce a new test keyword `recursive' for tests that create a
modified `libtool' script and run the suite on this script. All
tests with the keyword `libtool' are (by definition) suitable to
be used here.
* tests/cmdline_wrap.at: New test.
* Makefile.am: Adjust.
* tests/testsuite.at (LT_ESCAPE): New macro: clone of Autoconf
AS_ESCAPE that does not escape `$'.
(LT_AT_CHECK): New macro: print a command-to-be-run while
expanding parameters but nothing else.
* tests/stresstest.at: Use LT_AT_CHECK. Create some files to
expose erroneous globbing errors with `-export-symbols-regex',
similar to those reported by Charles Wilson. Use `eval' and
adjusted quoting so the expansion doesn't already happen in the
testsuite commands.
* HACKING: Update.
Ralf Wildenhues [Sun, 21 Jan 2007 16:15:36 +0000 (16:15 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw]:
Use `lib -OUT' rather than `lib /OUT' to avoid MSYS path
translation mangling. Report by Christopher Hulbert.
* THANKS: Update.
Ralf Wildenhues [Thu, 14 Dec 2006 20:59:26 +0000 (20:59 +0000)]
* tests/link-order2.at: Define our override `sin' function with
C binding even if $CC is a C++ compiler. Skip the test with g++
as its command line driver reorders `-lm'.
* tests/search-path.at: Declare `inflate' with C binding.
* tests/stresstest.at: Avoid unused variable warnings.
Ralf Wildenhues [Fri, 27 Oct 2006 22:57:00 +0000 (22:57 +0000)]
* tests/link-order2.at: Add missing $bindir setting. Prevent
compiler optimization of sqrt call. Fix logic inversion and
add some comments about this stunt. Add a test with reversed
library link order that should fail if the system has a libm.
Report by Patrick Welche.