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>.
Ralf Wildenhues [Fri, 25 Aug 2006 14:56:35 +0000 (14:56 +0000)]
* libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [ mingw,pw32 ]:
If `file' is present, use `func_win32_libid' rather than
`objdump -f', to facilitate cross-compilation.
Reported by Pierre Ossman <ossman@cendio.se>.
Eric Blake [Tue, 22 Aug 2006 17:51:03 +0000 (17:51 +0000)]
* libltdl/m4/ltdl.m4 (LTDL_INIT): Avoid macros marked obsolete in
latest autoconf.
* libltdl/m4/libtool.m4 (_lt_cv_sys_global_symbol_pipe): Work in
spite of -Wmissing-prototypes.
* libltdl/libltdl/lt__dirent.h: Rewrite to accomodate loss of
AC_HEADER_DIRENT.
Ralf Wildenhues [Mon, 7 Aug 2006 16:25:08 +0000 (16:25 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_execute): Also search
the directory above `$objdir' for the argument of "-dlopen", as
mentioned in the error message.
Ralf Menzel [Thu, 3 Aug 2006 14:06:36 +0000 (14:06 +0000)]
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Fix issues
with previous patch. for ... do' line is superflous. Need
_LT_TAGVAR not _LT_AC_TAGVAR, should be for both linux and
solaris with Sun compiler.
Albert Chin [Wed, 2 Aug 2006 13:35:30 +0000 (13:35 +0000)]
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]:
Don't set $postdeps to "-lCstd -lCrun" if
"-library=stlport4" set in CXXFLAGS as stlport4 C++
library incompatible with Cstd C++ library. Use
'-library=Cstd -library=Crun' instead of '-lCstd -lCrun'.
Ralf Wildenhues [Sat, 24 Jun 2006 04:58:58 +0000 (04:58 +0000)]
* libltdl/m4/libtool.m4 (_LT_COMPILER_BOILERPLATE)
( _LT_LINKER_BOILERPLATE): Rewrite to not use unchecked
`printf', for old systems like SunOS 4.1.
(_LT_COMPILER_OPTION, _LT_LINKER_OPTION)
(_LT_COMPILER_C_O, _LT_LINKER_SHLIBS): Likewise.
(_LT_LANG_C_CONFIG): Adjust: use literal newlines in
`lt_simple_compile_test_code' and `lt_simple_link_test_code'.
(_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG)
(_LT_LANG_GCJ_CONFIG, _LT_LANG_RC_CONFIG): Likewise.
Bug report by Bruce Becker and Mark Andrews.
Ralf Wildenhues [Tue, 13 Jun 2006 19:08:33 +0000 (19:08 +0000)]
Fix the bugs where libtoolize needs to use `dir/file' instead of
`./dir/file', where ltdldir is `.', so that libtoolize correctly
checks for (and suggests) `config' and `m4' instead of
`./config' and `./m4' as auxiliary resp. macro directories.
The change is necessary for unambiguous naming, the chosen way
plays better with non-GNU make in VPATH builds.
* libtoolize.m4sh (ltdlprefix): New variable, to use as prefix
instead of `$ltdldir/'.
(func_check_macros): Use it. Bug report by Eric Blake.
Ralf Wildenhues [Mon, 12 Jun 2006 17:54:15 +0000 (17:54 +0000)]
Fix several libtoolize-related bugs:
- Do not symlink aclocal.m4, to work around a bug in aclocal
overwriting the linked-to file instead of removing the symlink.
- Have `libtoolize --copy' cause current time stamps, so that
dependents will be rebuilt; for this, install files in order.
- Fix list of distribution files for (non)recursive libltdl.
- Fix some failure cases.
* libtoolize.m4sh (func_copy_cb):
If `$opt_link', still copy `aclocal.m4', so a subsequent
`aclocal' will not overwrite the symlink target.
In `--copy' mode, do `cp -p' and `touch' for each file, so
timestamps are updated but permissions preserved.
(main): Reorder installing of files to match logical order
and timestamp requirements.
(func_fixup_Makefile_inc): Renamed to
(func_fixup_Makefile): this. Add sed scriptlet to remove
non-existent files from EXTRA_DIST, for either nonrecursive
or recursive mode.
(main): call it to mangle also in recursive mode.
* tests/libtoolize.at (expout): Adjusted.
* tests/testsuite.at (tst_dist): Default to `dist'.
Ralf Wildenhues [Sat, 10 Jun 2006 07:36:25 +0000 (07:36 +0000)]
Fix libltdl to always have all generated files up to date.
* Makefile.am (all-local): Depend on all generated files in
libltdl, namely...
(libltdl/aclocal.m4, libltdl/configure, libltdl/config-h.in):
...these. List explicitly, including dependencies and
rebuilding rules, using...
(sub_aclocal_m4_deps, sub_configure_deps): ...these new
variables.
Report by Dan Lacher <Dan.Lacher@Sun.Com>.
Ralf Wildenhues [Fri, 9 Jun 2006 15:13:45 +0000 (15:13 +0000)]
* Makefile.am (install-data-local): Do not use $(INSTALL_DATA)
from another directory: it may use a relative path to
`install-sh'.
Bug report by Dan Lacher <Daniel.Lacher@Sun.COM>.
* tests/early-libtool.at: Pass $CPPFLAGS and $CFLAGS to
compiler when compiling for extra flags that might be
needed for ANSI-compliance, 64-bit, etc. The environment
we compile with should match the environment libtool was
compiled with.
Ralf Wildenhues [Thu, 18 May 2006 05:43:01 +0000 (05:43 +0000)]
Fix mode=compile time regression of CVS HEAD over branch-1-5.
* libltdl/m4/libtool.m4 (_LT_CHECK_XSI_SHELL): Rename to...
(_LT_CHECK_SHELL_FEATURES): ...this.
(_LT_SETUP): Adjust caller.
(_LT_CHECK_XSI_SHELL): New libtool variables `lt_unset',
`SP2NL', `NL2SP', to contain results from tests for unset,
taken from AS_BOURNE_COMPATIBLE, and ASCII vs EBCDIC, taken...
* libltdl/config/general.m4sh: ...from here, and used...
* libltdl/config/ltmain.m4sh: ...here everywhere now.
* (AS_SHELL_SANITIZE): Replace by faster, actually necessary
part of its expansion, taken from current Autoconf CVS. Do not
save and set all locale variables any more, but only LANG,
LC_ALL, LC_CTYPE, LC_COLLATE, LC_MESSAGES.
(func_mode_execute): Adjust.
* libltdl/m4/libtool.m4 (_LT_CONFIG): No need to unset CDPATH
here any more.
* libtoolize.m4sh: Compute `SP2NL' and `NL2SP' here, too.
* libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4
(_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG,
_LT_LANG_FC_CONFIG) [ aix4*, aix5*, hpux10*, hpux11* ]:
Introduce a new variable, hardcode_direct_static, which
would ignore hardcode_direct=yes if the result would create a
static library dependency. Static library dependencies are
immune to $shlibpath_var.
* tests/link-order.at: Take hardcode_direct and
hardcode_direct_static into consideration when testing
link order.
Ralf Wildenhues [Wed, 17 May 2006 01:58:40 +0000 (01:58 +0000)]
Eliminate quadratic scaling in argument parsing loop, for
shells that understand `var+=value', such as Bash-3.1, or Zsh.
* libltdl/m4/libtool.m4 (_LT_CHECK_XSI_SHELL): Test whether
the shell understands `var+=value'.
(_LT_PROG_XSI_SHELLFNS): Define `func_append' based on this.
* config/ltmain.m4sh (func_mode_link): Use `func_append' for
compile_command, finalize_command, libtool_args, libobjs,
non_pic_objects.
Bruno Haible [Mon, 15 May 2006 16:40:43 +0000 (16:40 +0000)]
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
(_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ linux ]:
Add support for Sun C 5.9, Sun C++ 5.9, and Sun Fortran 8.3 on
GNU/Linux.
* NEWS: Update.
Ralf Wildenhues [Mon, 15 May 2006 16:14:24 +0000 (16:14 +0000)]
* Makefile.am (check-local): Move `$(TESTS_ENVIRONMENT)' and
`$(BUILDCHECK_ENVIRONMENT)' to be arguments of `testsuite', so
that reruns will remember it; set enviroment variable
`CONFIG_SHELL' so the suite will know which shell it was started
with.
(installcheck-local): Likewise, for `$(TESTS_ENVIRONMENT)' and
`$(INSTALLCHECK_ENVIRONMENT)'.
* tests/testsuite.at (LT_AT_TAG): Do not set the compiler
variable here.
John Bowler [Sun, 14 May 2006 08:20:11 +0000 (08:20 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): For version_type
`none', we still need to set `current', `age', and `revision',
so that our checks don't barf. The values won't be used later.
Apparently reported by several people, several times, for BeOS.
* NEWS, THANKS: Update.
Ralf Wildenhues [Sat, 13 May 2006 18:14:36 +0000 (18:14 +0000)]
* tests/fail.at: Use "test -x" if available, for testing of
executables; code modified from Autoconf's AS_EXECUTABLE_P.
Reported by Albert Chin <china@thewrittenword.com>.
* libltdl/config/ltmain.m4sh (func_write_libtool_object):
New function, factored out from..
(func_mode_compile): .. here. Call it to generate the libtool
object file (the `.lo' file) in one step.
Ralf Wildenhues [Tue, 28 Mar 2006 18:11:28 +0000 (18:11 +0000)]
* libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]:
Avoid warning when "parsing" `/etc/ld.so.conf' and empty
`/etc/ld.so.conf.d'.
Reported by Orion Poplawski <orion@cora.nwra.com>.
Ralf Wildenhues [Thu, 23 Mar 2006 22:39:41 +0000 (22:39 +0000)]
* libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS) [ freebsd ]
[ dragonfly ]: Set libltdl_cv_sys_dlopen_deplibs to yes.
Fixes excessive lt_dlopen times on these systems.
* NEWS, THANKS: Update.
Bug reported by Peter Jeremy <peterjeremy@optushome.com.au>,
patch by Joerg Sonnenberger <joerg@netbsd.org>.
Ralf Wildenhues [Fri, 17 Mar 2006 17:20:11 +0000 (17:20 +0000)]
* tests/tagdemo/foo.cpp, tests/tagdemo/main.cpp [ hpux ] <aCC>:
The HPPA C++ compiler has namespace support but provides no
`std' namespace; just provide it with a dummy.
Ralf Wildenhues [Thu, 16 Mar 2006 20:47:54 +0000 (20:47 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Comment out the
code to remove uninstalled paths, as it is wrong here. Change
the wrong shell quoting that kept it from "working" before.
* THANKS: Updated.
Ralf Wildenhues [Thu, 16 Mar 2006 16:56:34 +0000 (16:56 +0000)]
* libltdl/m4/libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER)
[ freebsd, dragonfly ]: Fix 1.5.22 regression caused by too
strict $host_os match that stopped DragonFly from working.
* THANKS: Updated.
Reported by Jeremy C. Reed <reed@reedmedia.net>,
patch by Todd Vierling <tv@duh.org>.
Ralf Wildenhues [Mon, 20 Feb 2006 19:39:16 +0000 (19:39 +0000)]
* doc/libtool.texi (Tags): Mention `FC'.
(libtool script contents) <CC>: Specify more precisely as the
compiler of the current tag.
<LTCC, LTCFLAGS, build, build_alias, build_os, host_alias,
host_os, macro_version, macro_revision, max_cmd_len>:
Document these variables.
Ralf Wildenhues [Wed, 15 Feb 2006 09:33:47 +0000 (09:33 +0000)]
* libltdl/config/getopt.m4sh (func_help): Substitute `$host'.
* libltdl/config/ltmain.m4sh (help message): Use $host not
@host_triplet@, as the `@..@' substitution is done at bootstrap
time already.
Reported by Julien Lecomte <julien@famille-lecomte.net>.
Ralf Wildenhues [Wed, 15 Feb 2006 07:02:38 +0000 (07:02 +0000)]
* doc/libtool.texi (Implementation issues): Note that both
prefix and suffix of a library may differ.
(Using libtool, Creating object files, Linking libraries):
Remove last documentation traces of the age when `foo.lo' was
the PIC object file and not the `libtool object' text file.
(libtool script contents) <compiler_o_lo>: Remove description
of this variable. It was removed from libtool in 1.5 times.