Ralf Wildenhues [Fri, 1 Feb 2008 19:06:42 +0000 (19:06 +0000)]
* tests/testsuite.at (LT_AT_TAG): For the CXX tag, if $CXX is
g++, check that `g++ -v' works; AC_PROG_CXX may have set that
as default value even if it found no C++ compiler.
Report by Andreas Schwab.
Gary V. Vaughan [Fri, 1 Feb 2008 19:03:56 +0000 (19:03 +0000)]
* libltdl/Makefile.inc (EXTRA_DIST): Now that we're not using
Autoconf's AC_SOURCES macro, Automake can't trace our extra
source files argz, lt__dirent.c and lt__strl.c. List them
manually here to make sure they are distributed.
* NEWS: Updated.
Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Gary V. Vaughan [Thu, 31 Jan 2008 16:21:19 +0000 (16:21 +0000)]
GNU Libtool 2.1b was released.
* configure.ac (AC_INIT): Bump version number to 2.1b.
* libltdl/Makefile.inc (LTDL_VERSION_INFO): Increment to account
for new interfaces since the last libltdl update.
* HACKING (Release Procedure): Note that LTDL_VERSION_INFO is now
kept in libltdl/Makefile.inc.
Gary V. Vaughan [Thu, 31 Jan 2008 16:19:18 +0000 (16:19 +0000)]
* tests/cdemo, tests/depdemo, tests/fcdemo, tests/pdemo,
tests/demo, tests/f77demo, tests/mdemo, tests/tagdemo
(distclean-local): Remove compiler file droppings left by
Autoconf tests that prevent make dist from finishing on
several machines including Mac OS 10.5.
Gary V. Vaughan [Thu, 31 Jan 2008 16:17:06 +0000 (16:17 +0000)]
Unfortunately, the autoconf implementation of AC_LIBOBJ and
friends requires all libobjs to be in the same directory, as
declared by AC_CONFIG_LIBOBJ_DIR. That might prevent using
either recursive or nonrecursive libltdl if the parent project
has libobjs of its own, except that this patch tracks libltdl's
libobjs in another namespace:
* libltdl/m4/ltdl.m4 (_LT_LIBOBJ, _LT_LIBSOURCES): Versions of
AC_LIBOBJ and AC_LIBSOURCES that save missing sources in a
ltdl_LIBOBJS automake macro, instead of the global LIBOBJS
automake macro. Content of the macros inspired by code from
gnulib-tool.
(_LTDL_MODE_DISPATCH): Initialise lt_libobj_prefix in
nonrecursive mode.
(LTDL_INIT): Push and pop the new definitions around potential
sites that call AC_LIBOBJ. Also, using lt_libobj_prefix,
initialise ltdl_LIBOBJS and ltdl_LTLIBOBJS.
* libtoolize.m4sh (func_fixup_Makefile): Substitute ltdl_LIBOBJS
and ltdl_LTLIBOBJS for LIBOBJS and LTLIBOBJS during copying
either Makefile.am or Makefile.inc, depending on ltdl_mode.
Reported by Eric Blake <ebb9@byu.net>
Gary V. Vaughan [Thu, 31 Jan 2008 16:14:09 +0000 (16:14 +0000)]
There are 5 distinct batches of files that libtoolize might
install into a project, depending on whether libltdl is
being installed in subproject mode, and in that case whether
the parent project shares the config and macro directories
with the subproject ltdl. Make a separate function for each
of those 5 batches (4 new functions below, plus the recently
factored func_install_pkgltdl_files), and make a clearer
distinction between when each of them is needed:
* libtoolize.m4sh (func_install_pkgmacro_subproject):
New function for installing and reporting on m4 files copied
to a subproject ltdl directory.
(func_install_pkgmacro_parent): Similar new function for m4
files copied solely for the use of the parent project,
including serial checking.
(func_install_pkgconfig_subproject): New function for
installing and reporting on config helper files copied to a
subproject ltdl directory.
(func_install_pkgconfig_parent): Similar new function for
config helper files copied solely for the use of the parent
project, including serial checking.
(func_install_pkgmacro_files, func_install_pkgconfig_files):
Rewritten in terms of the above functions.
* tests/libtoolize.at: Adjust test expout's to match newly
regularized libtoolize output.
Move parent project pkgconfig files to build-aux directory
so that progress messages show an obvious difference to
pkgconfig files installed to subproject `config' directory.
(nonrecursive ltdl with AC_CONFIG_MACRO_DIR): New test.
(diagnose missing LT_CONFIG_LTDL_DIR): New test.
(subproject ltdl with non-shared directories): New test.
Reported by Eric Blake <ebb9@byu.net>
Peter O'Gorman [Mon, 28 Jan 2008 15:49:46 +0000 (15:49 +0000)]
Search the compiler path too.
* libltdl/m4/libtool.m4 (compiler_lib_search_dirs): New variable.
* libltdl/config/ltmain.m4sh: Use it.
Reported by Maynard Johnson
Gary V. Vaughan [Mon, 28 Jan 2008 05:39:26 +0000 (05:39 +0000)]
* libtoolize.m4sh: Set opt_ltdl whenever seen_ltdl is set
so that libtoolize behaves as though --ltdl was passed even
if it wasn't as long as LTDL_INIT (or equivalent) was seen
in configure.ac. Adjust redundant '$opt_ltdl || $seen_ltdl'
to simply '$opt_ltdl'.
Reported by Eric Blake <ebb9@byu.net>
Gary V. Vaughan [Mon, 28 Jan 2008 05:04:51 +0000 (05:04 +0000)]
* libtoolize.m4sh (func_scan_files): Be sure to set the
default libltdl mode to 'subproject' when libtoolize is
executed before configure.ac has been updated.
Gary V. Vaughan [Sun, 27 Jan 2008 16:35:36 +0000 (16:35 +0000)]
* libtoolize.m4sh (func_install_pkgconfig_files)
(func_install_pkgmacro_files, func_install_pkgltdl_files):
Factored out from the 'Main' section of the file.
Gary V. Vaughan [Sun, 27 Jan 2008 15:44:04 +0000 (15:44 +0000)]
* libtoolize.m4sh (subproject_auxdir, subproject_macrodir):
New variables to hold the default locations for auxfiles
and macrofiles in a subproject libltdl.
(ac_auxdir, ac_macrodir): New variables to hold the values
passed by AC_CONFIG_AUX_DIR and AC_CONFIG_MACRO_DIR resp.
(auxdir, macrodir): Adjust to contain the values to be
used by libtoolize at runtime.
Gary V. Vaughan [Sat, 26 Jan 2008 06:23:10 +0000 (06:23 +0000)]
* libtoolize.m4sh (Main): Copy (or link) libltdl sources
into project tree when LTDL_INIT was seen, whether or not
`--ltdl' is passed.
(func_check_macros): Recommend LTDL_INIT instead of
LT_WITH_LTDL when `--ltdl' is used before configure.ac is
upgraded.
* tests/libtoolize.at: Test that it works.
(_LT_AT_LTDL_SETUP): Factor out some common test setup.
Reported by Eric Blake <ebb9@byu.net>
Peter O'Gorman [Thu, 24 Jan 2008 06:55:36 +0000 (06:55 +0000)]
* libltdl/m4/libtool.m4 (sys_lib_search_path_spec,
sys_lib_dlsearch_path_spec): Allow for a cache variable
lt_cv_sys_lib_... to set these at configure time.
* doc/notes.texi: Short note about the above change.
Ralf Wildenhues [Thu, 17 Jan 2008 05:36:21 +0000 (05:36 +0000)]
* libtoolize.m4sh (func_scan_files): Avoid matching our own
macro code when scanning configure.ac and aclocal.m4.
Don't produce spurious output if AC_PROG_RANLIB is found.
* tests/old-m4-iface.at (AM_PROG_LIBTOOL): Add a (weak) check
that we don't match our own macro code when searching for user
code calling us.
* TODO: Updated.
Ralf Wildenhues [Thu, 17 Jan 2008 05:32:42 +0000 (05:32 +0000)]
New variable LTDLDEPS for use in output_DEPENDENCIES.
* libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE, _LTDL_INSTALLABLE)
(LTDL_INIT): Set and substitute LTDLDEPS according to chosen
method.
* tests/configure-iface.at (installable libltdl)
(--with-ltdl-include/lib, --with-included-ltdl): Test it.
* doc/libtool.texi (Distributing libltdl): Document LTDLDEPS.
* NEWS: Updated.
Dependency bug exposed by Eric Blake in M4, found by Bob Proulx
build daemon.
Ralf Wildenhues [Thu, 17 Jan 2008 04:47:41 +0000 (04:47 +0000)]
* doc/libtool.texi (Distributing libltdl): Clarify that
LTDL_INIT goes after LT_INIT; also show the latter in the
respective examples.
* tests/subproject.at: Adjust order.
Ralf Wildenhues [Mon, 14 Jan 2008 22:06:00 +0000 (22:06 +0000)]
Silence all non-warning output from `libtool --silent'.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms)
(func_extract_archives, func_mode_link): Use func_verbose
instead of func_echo for all non-warning output.
Ralf Wildenhues [Sat, 12 Jan 2008 17:00:51 +0000 (17:00 +0000)]
* libltdl/m4/ltdl.m4 (_LTDL_SETUP): Define
LTDL_DLOPEN_SELF_WORKS, depending upon lt_cv_dlopen_self.
* libltdl/loaders/dlopen.c (vm_open) [!LTDL_DLOPEN_SELF_WORKS]:
Fail for dlopen(NULL), so that the preopen loader is used. This
fixes mdemo-exec.test failures on AIX where dlopen(NULL)
succeeds but dlsym resolves no symbol.
* NEWS: Update.
Report by Rainer Tammer.
Ralf Wildenhues [Sat, 12 Jan 2008 13:58:14 +0000 (13:58 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Fix warning
about -l and -L for archives and objects as output, to not
trigger for *.la files. Non-convenience archives are diagnosed
Ralf Wildenhues [Sat, 12 Jan 2008 11:25:03 +0000 (11:25 +0000)]
* tests/configure-iface.at: Ensure LTDLINCL is expanded
before CPPFLAGS, so that even CPPFLAGS=-I/usr/local/include
won't make the tests prefer an installed ltdl.h over the
in-package one.
Report by Bob Friesenhahn.
Ralf Wildenhues [Fri, 11 Jan 2008 19:15:08 +0000 (19:15 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) <exclude_expsyms>:
Also exclude `_GLOBAL__F[ID]_.*'. Also set for the C++ tag.
Fixes esp. demo/helldl build failure with GCC on AIX.
Report by Rainer Tammer.
Peter O'Gorman [Fri, 11 Jan 2008 07:08:28 +0000 (07:08 +0000)]
* libltdl/m4/libtool.m4 [darwin]: Reorganize darwin support, use
dsymutil if it is available so that debugging is possible, check
for nmedit and dsymutil with AC_CHECK_TOOL, use the linker flag
-exported_symbols_list in preference to nmedit if it is available.
Drop support for xlc, it is probably broken.
* tests/template.at [darwin]: Skip this test, I can not find a way
to make it work on darwin9 with Xcode-3.0.
* NEWS: Note the dropping of xlc support.
Gary V. Vaughan [Tue, 8 Jan 2008 06:48:49 +0000 (06:48 +0000)]
* tests/configure-iface.at: Build libltdl in a subdir so that
it can be easily removed without trying to remove config.log
on windows (which can't delete a file until it is closed).
Gary V. Vaughan [Tue, 8 Jan 2008 05:21:49 +0000 (05:21 +0000)]
* libltdl/m4/ltdl.m4 (LTDL_INSTALLABLE): Use _LT_BUILD_PREFIX
instead of ${top_builddir} for Autoconf-2.62.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Gary V. Vaughan [Tue, 8 Jan 2008 05:07:41 +0000 (05:07 +0000)]
* tests/configure-iface.at, tests/nonrecursive.at,
tests/recursive.at, tests/subproject.at (_LTDL_SETUP):
Renamed to _LT_AT_LTDL_SETUP to avoid a nameclash with
libltdl/m4/ltoptions.m4:_LTDL_SETUP from yesterday's patch.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Gary V. Vaughan [Sun, 6 Jan 2008 16:33:31 +0000 (16:33 +0000)]
Move libltdl build mode options from LT_CONFIG_LTDL_DIR to
LTDL_INIT. Accept (optional) new 'convenience' and 'installable'
options in lieu of LTDL_CONVENIENCE and LTDL_INSTALL macros. And
also, implement --with-included-ltdl, --with-ltdl-lib and
--with-ltdl-include configure-time options:
* libltdl/m4/ltoptions.m4: Associate existing option settings with
LT_INIT.
(LT_OPTION_DEFINE): Associate options 'nonrecursive', 'recursive',
'subproject', 'installable' and 'convenience' with LTDL_INIT.
(_LT_MANGLE_OPTION, _LT_SET_OPTION, _LT_IF_OPTION)
(_LT_UNLESS_OPTIONS, _LT_SET_OPTIONS): Add MACRO-NAME argument to
support options to named macros instead of hardcoding only LT_INIT
options.
* libltdl/m4/ltdl.m4 (_LTDL_CONVENIENCE): Factor common code from
LTDL_CONVENIENCE and LTDL_INIT([convenience]).
(_LTDL_INSTALLABLE): Factor out common code from LTDL_INSTALLABLE
and LTDL_INIT([installable]).
(_LTDL_SETUP): Renamed from LTDL_INIT. Support new configure-time
options: --with-included-ltdl, --with-ltdl-lib,
--with-ltdl-include.
(LTDL_CONVENIENCE, LTDL_INSTALLABLE): Adjust.
(LT_WITH_LTDL): Removed.
(LTDL_INIT): Parse caller options.
* libltdl/m4/libtool.m4 (LT_INIT): Declare that this macro must be
expanded before LTDL_INIT, and be sure to parse caller options.
* configure.ac: Call directly into internal _LTDL_SETUP macro.
* libtoolize.m4sh (func_scan_files): Ltdl mode argument moved from
LT_CONFIG_LTDL_DIR to LT_INIT.
* tests/nonrecursive.at, tests/recursive.at: Use new interfaces.
* tests/configure-iface.at: Test it.
* Makefile.am (TESTSUITE_AT): Add configure-iface.at.
* doc/libtool.texi (Distributing libltdl): Document improved.
LTDL_INIT interfaces.
* NEWS: Updated.
Ralf Wildenhues [Wed, 2 Jan 2008 19:35:56 +0000 (19:35 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): When creating
reloadable object files, avoid issuing plain `rm -f' without
further arguments, even if the line length limit is ridiculously
low as in the `Run tests with low max_cmd_len' test. This
failure is exposed on NetBSD.
Report by Patrick Welche.
Ralf Wildenhues [Mon, 26 Nov 2007 21:42:51 +0000 (21:42 +0000)]
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [ linux ]: The IBM
XL 8.0 C++ compiler may also be called xlc++*, not only xlC*.
Report by Nysal K Jan <jnysal@in.ibm.com>.
Ralf Wildenhues [Sat, 24 Nov 2007 08:02:21 +0000 (08:02 +0000)]
* libltdl/m4/libtool.m4 (_LT_CHECK_BUILDDIR): New macro.
Warn about whitespace in the absolute build tree name.
(LT_INIT): Use it.
* THANKS: Update.
Report by Jim Meyering.
Ralf Wildenhues [Fri, 16 Nov 2007 07:08:34 +0000 (07:08 +0000)]
Use `${top_build_prefix}' for better compatibility with non-GNU make.
* libltdl/m4/ltdl.m4 (_LT_BUILD_PREFIX): New macro.
If the Autoconf version used is >= 2.62, then expand to
`${top_build_prefix}', otherwise to `${top_builddir}/'.
(LTDL_CONVENIENCE, LTDL_INSTALLABLE): Use it for defining
LIBLTDL. Fixes a build failure with AIX make in a package
using convenience libltdl in nonrecursive mode.
* doc/libtool.texi (Distributing libltdl): Document requirements
to define `top_build_prefix' if Automake is not used.
Report by Bob Friesenhahn.
Ralf Wildenhues [Mon, 12 Nov 2007 19:44:05 +0000 (19:44 +0000)]
Avoid warnings about conftest.dSYM directories on Mac OS X Leopard.
* libltdl/m4/libtool.m4 (_LT_LINKER_BOILERPLATE)
(_LT_LINKER_OPTION, _LT_CMD_GLOBAL_SYMBOLS): Remove
conftest.dSYM directory.
Report and analysis by Jeff Squyres and Peter O'Gorman.
Ralf Wildenhues [Fri, 9 Nov 2007 06:47:15 +0000 (06:47 +0000)]
* libltdl/configure.ac: Drop the broken and long-disabled code
to output a banner for the libltdl configure. Avoids the need
to ship mkstamp with libltdl.
Ralf Wildenhues [Fri, 12 Oct 2007 16:35:15 +0000 (16:35 +0000)]
* libltdl/config/ltmain.m4sh: Also sanitize `LANGUAGE'.
(func_mode_execute): Also restore `LANGUAGE', for old glibc.
Report by Paul Eggert against Autoconf.
* libltdl/lt_dlloader.c (loader_callback, lt_dlloader_get): Use
NULL, not 0, for the benefit of too picky compilers like PGI.
* slist.c (slist_tail): Likewise. Include stddef.h, for NULL.
Report by Jeff Squyres.
* doc/libtool.texi (User defined module data)
<lt_dlinterface_register>: Document that a NULL place matches
all modules.
* libltdl/lt_dlloader.c (lt_dlloader_remove): Actually iterate
over all open modules when looking for modules that use it.
If a resident module is found, return but do not set the error
string.
* libltdl/ltdl.c (lt_dlexit): When removing dlloaders, ignore
errors that stem from earlier failed commands. Exposed by the
lt_dladvise test.
Fixes regression over branch-1-5.
Memleak report as Coverity CID 19 via Jeff Squyres.
* libltdl/ltdl.c (try_dlopen, lt_dlforeachfile): Do not test
array address of sys_dlsearch_path against NULL, rather test for
nonempty contents.
Coverity reports CID 148 and CID 149 via Jeff Squyres.
Ralf Wildenhues [Wed, 29 Aug 2007 21:01:20 +0000 (21:01 +0000)]
* libltdl/slist.c (slist_remove): When a matching item is found,
break out of the loop to return the first match; also fixes
possible NULL dereference.
Ralf Wildenhues [Wed, 29 Aug 2007 20:54:53 +0000 (20:54 +0000)]
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
(_LT_LANG_CXX_CONFIG) [ linux ]: Add support for IBM XL 8.0
C/C++ (xlc*, xlC*) and IBM XL Fortran 10.1 (xlf*) on GNU/Linux,
tested on ppc, pending a $shlibpath_var related fix.
(_LT_SYS_HIDDEN_LIBDEPS): Double-quote $output_verbose_link_cmd
properly during evaluation, obsoleting $no_glob_subst mangling.
* NEWS: Update.
Ralf Wildenhues [Thu, 16 Aug 2007 18:18:39 +0000 (18:18 +0000)]
* Makefile.am (edit): Do not warn against manual editing for the
generated files libtool, libtoolize, libltdl/m4/ltversion.m4,
tests/defs, as they are still in a preferred source code form as
required by GPL.
Report by DJ Delorie.
Ralf Wildenhues [Sun, 5 Aug 2007 11:06:14 +0000 (11:06 +0000)]
* libltdl/ltdl.c (try_dlopen): Use `attempt' rather than
`filename', as the former has the needed extension when called
by lt_dlopenext.
Report by Brian Barrett.
* libltdl/config/ltmain.m4sh (func_mode_link): Remove each
intermediate relinked object after use, to avoid quadratic space
complexity when linking partially.
Report by Isidor Zeuner <eezyy@gmx.net>.
Peter Rosin [Sun, 22 Jul 2007 17:57:10 +0000 (17:57 +0000)]
* libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Add
support for Microsoft Visual C. Also, older MinGW versions
seem to need stdint.h to find intptr_t.