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.
Ralf Wildenhues [Thu, 26 Oct 2006 20:39:04 +0000 (20:39 +0000)]
Assume presence of a config header in all files, to provoke
test failures on all systems.
* libltdl/lt__alloc.c: Likewise.
* libltdl/libltdl/lt__dirent.h: Likewise.
* libltdl/libltdl/lt__glibc.h: Likewise.
* libltdl/libltdl/lt__private.h: Likewise.
* libltdl/libltdl/lt__strl.h: Likewise.
* tests/recursive.at: Use AC_CONFIG_HEADERS.
* tests/nonrecursive.at: Likewise. Invoke autoheader.
* HACKING: Adjust.
Report by Patrick Welche.
Paul Eggert [Tue, 24 Oct 2006 20:33:38 +0000 (20:33 +0000)]
* doc/libtool.texi (Distributing libltdl): In recursive and
nonrecursive mode, a config header is now required.
* libltdl/argz.c: Remove check for HAVE_CONFIG_H, to conform
to gnulib's policy of including config.h unconditionally.
Ralf Wildenhues [Tue, 24 Oct 2006 20:07:35 +0000 (20:07 +0000)]
* libtoolize.m4sh (func_fixup_Makefile): Fix missing
substitution for nonrecursive mode. Remove otherwise-empty
continuation lines in the output file.
Report by Bob Friesenhahn.
* tests/duplicate_deps.at: New file. Test circular depending
convenience archives (currently failing).
* Makefile.am: Update.
Report by Stefan Traby <stefan@hello-penguin.com>.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
[ openbsd ]: Set `hardcode_direct_absolute', to prefer rpath
over putting absolute file names in NEEDED entries.
* NEWS: Update.
Reported by Jake Meuser and others.
* libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]
[ k*bsd*-gnu ]: Test if ld sets DT_RUNPATH; in that case, set
shlib_overrides_runpath to `yes'. Fixes test failure of new
test on Gentoo GNU/Linux.
George Bosilca [Mon, 4 Sep 2006 17:27:27 +0000 (17:27 +0000)]
Make libltdl work when compiled with a C++ compiler.
* libltdl/lt__alloc.c, libltdl/lt_dlloader.c, libltdl/ltdl.c,
libltdl/slist.c, libltdl/libltdl/lt__alloc.h,
libltdl/libltdl/lt_error.h, libltdl/libltdl/slist.h,
libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c, tests/stresstest.at,
tests/testsuite.at, tests/f77demo/foo.h, tests/fcdemo/foo.h,
tests/mdemo/foo.h, tests/mdemo/foo1.c, tests/mdemo/foo2.c,
tests/mdemo/main.c: Allow sources to be compiled by a C++
compiler: Cast appropriately, add C linkage for `get_vtable'
functions, do not use C++ keyword `delete'.
George Bosilca [Mon, 4 Sep 2006 17:25:15 +0000 (17:25 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): In the dlsym
file, define a type for the symbol list, and declare the list
`extern', so that it is extern even if compiled by a C++
compiler. The type definition helps avoid a compiler warning
against anonymous extern struct.
* libltdl/libltdl/lt_system.h: Add `extern' to `LT_SCOPE' for
the same reason.
* tests/am-subdir.at, tests/early-libtool.at: Fix the LF vs.
CRLF related failures on MinGW by grepping for good output
instead of using AT_CHECK's `expout'.
Ralf Wildenhues [Thu, 31 Aug 2006 05:34:01 +0000 (05:34 +0000)]
Avoid mixing functions and data pointers in callback functions.
* libltdl/ltdl.c (file_worker_func): New type.
(lt_dlforeachfile): Instead of passing a function pointer as a
data pointer, pass a pointer to a file_worker_func pointer.
(foreach_callback_func): Adjust.
* tests/mdemo/main.c: Assume C89. Exercise lt_dlforeachfile.
(callback, try_iterate, my_dirname): New functions.
* tests/mdemo-exec.test: Check for its output.
Ralf Wildenhues [Wed, 30 Aug 2006 04:14:21 +0000 (04:14 +0000)]
* libltdl/libltdl/lt__private.h (__attribute__, LT__UNUSED):
New macros.
* libltdl/loaders/dld_link.c: Use LT__UNUSED where
appropriate.
* libltdl/loaders/dlopen.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: Likewise.
* libltdl/ltdl.c: Likewise.
(find_file_callback): Fix declaration names to match definition.
(load_deplibs) [!LTDL_DLOPEN_DEPLIBS]: Use separate definition
for less preprocessor clutter.
Ralf Wildenhues [Wed, 30 Aug 2006 03:18:15 +0000 (03:18 +0000)]
* Makefile.am (check-local, installcheck-local): Use
`TESTSUITEFLAGS' rather than `TESTSUITE_FLAGS', like Autoconf.
* HACKING, README, README.alpha: All uses changed.
Ralf Wildenhues [Mon, 28 Aug 2006 16:02:14 +0000 (16:02 +0000)]
* libltdl/argz.c: Use `#ifdef HAVE_CONFIG_H', to facilitate code
sharing with gnulib. Report by Eric Blake.
* libltdl/lt__alloc.c, libltdl/libltdl/lt__dirent.h,
libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h,
libltdl/libltdl/lt__strl.h: Likewise.
* HACKING: Update.
Ralf Wildenhues [Fri, 25 Aug 2006 15:08:14 +0000 (15:08 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Pass through
`--coverage' and `-pg', for GCC. Report by Rainer Keller
<keller@hlrs.de> and Tor Lillqvist <tml@iki.fi>.