Gary V. Vaughan [Fri, 30 Sep 2005 01:13:38 +0000 (01:13 +0000)]
* tests/libtoolize.at: Add a new test to catch a regression I
almost introduced with respect to copying macro files when
AC_CONFIG_MACRO_DIR is shared with libltdl subproject.
Gary V. Vaughan [Fri, 30 Sep 2005 00:46:52 +0000 (00:46 +0000)]
* tests/old-m4-iface.at: Start of a new test series for m4
interface backwards compatibility.
* tests/testsuite.at: Use it.
(macrodir): Declare the location of uninstalled libtool m4 macros.
* Makefile.am (TESTSUITE_AT): Depend on it.
Peter Ekberg [Thu, 29 Sep 2005 16:59:43 +0000 (16:59 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Don't modify
user provided symbols file. Adjust removal of temporary files
and also remove temporary files used during symbols file
filtering.
Gary V. Vaughan [Tue, 27 Sep 2005 13:09:20 +0000 (13:09 +0000)]
* libtoolize.m4sh (func_scan_files): Support projects that have
upgraded libtool, but still use an old autoconf. When the libtool
macros are not copied (because of missing ACLOCAL_AMFLAGS and
AC_CONFIG_MACRO_DIR ), point them at the libtoolize master tree
for files to manually copy into acinclude.m4 or aclocal.m4.
Gary V. Vaughan [Tue, 27 Sep 2005 13:01:51 +0000 (13:01 +0000)]
* libltdl/lt_error.c (lt__last_error, lt__error_strings): The lt__
prefix is used to indicate internal symbols that are only exported
for use by other parts of libltdl. These are now static, so...
(last_error, error_strings): ...renamed to this. Changed all
callers.
Gary V. Vaughan [Tue, 27 Sep 2005 10:03:51 +0000 (10:03 +0000)]
* libltdl/ltdl.c (lt_dlcaller_register): Renamed to avoid problems
with module visibilty when linked with programs written for the
old API.
(lt_dlinterface_register): New name.
* Makefile.am (VERSION_INFO): Bumped.
* doc/libtool.texi (User defined module data): Updated.
Peter Ekberg [Sun, 25 Sep 2005 07:01:29 +0000 (07:01 +0000)]
* libltdl/libltdl/lt__private.h, libltdl/lt_error.c:
Don't export the lt__last_error and lt__error_strings
variables. Define lt__error_strings so that no relocations
are needed.
* libltdl/libltdl/lt__private.h (LT__STRERROR, LT__GETERROR)
(LT__SETERRORSTR): Adjust to not use the above variables,
instead use the following functions...
* libltdl/lt_error.c: (lt__error_string, lt__get_last_error)
(lt__set_last_error): Reimplement the functionality in
these functions instead.
* libltdl/libltdl/lt_error.h: Add LT_ERROR_LEN_MAX define for
max error string length.
(lt_dlerror_table): Append explicit nul terminators so that
compilers warn more reliably if the above define is too small.
Peter Ekberg [Thu, 22 Sep 2005 07:46:08 +0000 (07:46 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_link): Filter
user supplied symfile to tag relevant symbols as data
symbols. Fixes segfault in stresstest.at on Cygwin and
makes the test pass.
Peter Ekberg [Thu, 22 Sep 2005 06:44:24 +0000 (06:44 +0000)]
* tests/link-order.test: Clean up the uninstalled libraries
before linking the test executables so that they don't pick
up the dlls from the current dir on Cygwin and MinGW.
Peter Ekberg [Thu, 22 Sep 2005 04:53:14 +0000 (04:53 +0000)]
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS, _LT_COMPILER_PIC)
(_LT_LINKER_SHLIBS): Require _LT_TAG_COMPILER to make sure that
$compiler is assigned. Fixes crippled configure output.
Peter Ekberg [Wed, 21 Sep 2005 12:32:43 +0000 (12:32 +0000)]
* libltdl/config/ltmain.m4sh (func_mode_uninstall): Clean
up $dlname as well when cleaning a uninstalled libtool
library. Fixes -mode=clean on Cygwin and MinGW to actually
remove the dll when cleaning up an uninstalled library.
Peter Ekberg [Tue, 20 Sep 2005 12:12:23 +0000 (12:12 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG):
Split up --out-implib option for linker in separate args so that
the MSYS path translation can do its magic on the provided path
to the import library. Fixes problem in stresstest.at on MinGW.
* libltdl/m4/ltdl.m4 (LTDL_INIT) <CONFIG_H>: Rename to..
<LT_CONFIG_H>: this, to contain the name of the config
header.
* Makefile.am <DEFS>: Use it to define LT_CONFIG_H.
* HACKING, libltdl/argz.c, libltdl/lt__alloc.c,
libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h,
libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h:
Adjusted.
Peter Ekberg [Fri, 16 Sep 2005 08:33:24 +0000 (08:33 +0000)]
* tests/testsuite.at (LT_AT_EXEC_CHECK): Make sure
that the exit status of the tested program is
propagated as the exit status of the expression
fed to AT_CHECK.
* libltdl/ltdl.c (lt_argz_insert): Work around newlib
argz_insert bug.
* Makefile.am (VERSION_INFO): Bumped revision.
Reported by Eric Blake <ebb9@byu.net>.
Peter Ekberg [Tue, 13 Sep 2005 07:28:14 +0000 (07:28 +0000)]
* libltdl/config/ltmain.m4sh (func_generate_dlsyms):
Fix escape expression to actually escape relevant
characters from the following grep. Fix Cygwin and
MinGW to use the filtered symbol list when exporting
from self, and not the symbol filter.
* tests/stresstest.at: Export w8, not w8$
Make tagdemo work smoothly with both pre- and ISO C++ compilers,
and remove all use of libstdc from other tests.
* tests/tagdemo/configure.ac (HAVE_NAMESPACES, HAVE_IOSTREAM):
New tests for ISO C++ features. Reimplementation of similar
macros from the autoconf archive.
* tests/tagdemo/foo.cpp, tests/tagdemo/main.cpp: Adjusted.
* tests/am-subdir.at, tests/template.at: Do not use iostream.
* libltdl/m4/ltdl.m4 (LT_WITH_LTDL, LTDL_CONVENIENCE)
(LTDL_INSTALLABLE): Use less quoting for expanded LIBLTDL,
LTDLINCL. Use m4_default instead of m4_if, to work
around AU_ALIAS bug with empty macro arguments.
(LTDL_INIT): Likewise.
* libltdl/m4/ltoptions.m4 (_LT_WITH_PIC): Likewise.
* TODO, HACKING: Updated.
* libltdl/m4/libtool.m4 (_LT_COMPILER_BOILERPLATE)
(_LT_LINKER_BOILERPLATE, _LT_COMPILER_OPTION, _LT_LINKER_OPTION)
(_LT_COMPILER_C_O): When comparing expected and actual compiler/
linker output for warnings, weed out both empty lines as well as
lines starting with possibly indented `+', to allow for shell
debugging with `set -x'.
Check the weeded instead of unweeded contents for emptiness.
* libltdl/config/ltmain.m4sh (func_mode_link): Actually provide
a useful error message. Fixes long-standing shameful user
neglection.
Reported by Martin Paljak <martin.paljak@gmail.com>.
Peter Ekberg [Thu, 8 Sep 2005 08:25:35 +0000 (08:25 +0000)]
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]:
Symbols in "pick any" sections are not global. Use
awk, not sed, in the global_symbol_pipe so that keeping
track of sections is easier.
* doc/libtool.texi (libtool script contents): Update to hint
at new findings concerning "pick any" sections.
Charles Wilson [Thu, 8 Sep 2005 07:00:03 +0000 (07:00 +0000)]
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
[ cygwin, mingw, pw32 ]: Use --enable-auto-image-base instead of
a fixed image base address.
* libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD) [ sysv4*uw2*,
sysv4.2uw2* ]: Fix my last checkin to really match the more special
case before the general case.
Reported by Stepan Kasal <kasal@ucw.cz>.
Roger Cornelius [Tue, 6 Sep 2005 08:18:10 +0000 (08:18 +0000)]
* libltdl/m4/libtool.m4 (AC_DEPLIBS_CHECK_METHOD)
[ sysv5OpenUNIX8, sysv5UnixWare7, sysv5uw[78], unixware7,
sysv4*uw2* ]: Match special cases before general case.
* Makefile.am (TESTS_ENVIRONMENT): Export SHELL.
* bootstrap (SHELL): Set to $CONFIG_SHELL or /bin/sh.
Name `make' targets in portable fashion. Work around `rm'
warnings. Unconditionally create fake `libtoolize'.
Reported by Patrick Welche <prlw1@newn.cam.ac.uk>.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [ aix ]
<export_symbols_cmds>: Work around shell expansion issue in
func_show_eval by separating `$' and field number; drop then
unnecessary m4 quoting.
* libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): m4_defun this..
* libltdl/m4/libtool.m4 (LT_INIT): so it can be m4_require'd
from here with user-supplied options. Fixes output macro
ordering issue.
Ralf Wildenhues [Wed, 31 Aug 2005 11:50:46 +0000 (11:50 +0000)]
* libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): Move option macro
dipatch..
(_LT_SET_OPTION): here. Do not fail but warn on unknown
options.
(_LT_UNLESS_OPTIONS(win32-dll), LT_OPTION_DEFINE(dlopen)):
Add whitespace.
Reported by Robert Ögren <lists@roboros.com> and
Akim Demaille <akim@lrde.epita.fr>.
Gary V. Vaughan [Tue, 30 Aug 2005 14:31:40 +0000 (14:31 +0000)]
* libltdl/m4/ltoptions.m4 (AC_LIBTOOL_PIC_MODE): Renamed...
(AC_LIBTOOL_PICMODE): ...this in the backwards compatibility
code. There never was an AC_LIBTOOL_PIC_MODE macro.
Ralf Wildenhues [Mon, 29 Aug 2005 14:37:56 +0000 (14:37 +0000)]
* Makefile.am: Install libltdl data files in correct order.
Use pre-defined programs for installation; use NORMAL_INSTALL
and NORMAL_UNINSTALL. Really fix ownership and timestamp
problems. Fix typo in uninstallation of aclocal files.
Reported by Peter Breitenlohner <peb@mppmu.mpg.de> and
Charles Wilson <cygwin@cwilson.fastmail.fm>.
Ralf Wildenhues [Mon, 29 Aug 2005 13:58:07 +0000 (13:58 +0000)]
Allow for portability with Autoconf 2.59, Automake 1.9.6,
which lack AC_CONFIG_LIBOBJ_DIR support.
* bootstrap: Unless environment variable WORKING_LIBOBJS_SUPPORT
is set to true aka `:', symlink ..
* argz.c lt__dirent.c lt__strl.c: .. these from the copies in
libltdl.
* configure.ac (SUBDIR_LIBOBJS): Automake conditional, set if
bootstrap didn't make the extra copies of libobj sources in
top srcdir...
* Makefile.am: Add these to EXTRA_DIST if SUBDIR_OBJS is not set,
as well as the originals in libltdl/, in order to work when
bootstrapped both with old and newer Automake/Autoconf.
Gary V. Vaughan [Sun, 28 Aug 2005 23:30:06 +0000 (23:30 +0000)]
Some macros had relied on accidentally correct ordering in order
for $MV to be defined before use. Factor out setting of some
common file commands and m4_require it before use:
* libltdl/m4/libtool.m4 (_LT_FILEUTILS_DEFAULTS): Allow user to
override some common file commands at configure time.
(_LT_SETUP, _LT_CONFIG, _LT_COMPILER_OPTION, _LT_LINKER_OPTION)
(_LT_COMPILER_C_O, _LT_COMPILER_FILE_LOCKS)
(_LT_SYS_DYNAMIC_LINKER, _LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
(_LT_SYS_HIDDEN_DEPLIBS): m4_require it to ensure the commands are
defined before they are called.
Ralf Wildenhues [Sun, 28 Aug 2005 15:34:19 +0000 (15:34 +0000)]
* libltdl/config/ltmain.m4sh (func_lalib_unsafe_p) [osf]:
Save file descriptor to original STDIN, and restore after
redirection. Fixes memory corruption with Tru64 and OSF sh.
Reported by Nicolas Joly <njoly@pasteur.fr>.
Ralf Wildenhues [Fri, 26 Aug 2005 10:00:18 +0000 (10:00 +0000)]
* tests/standalone.at, tests/template.at: Do not compare
output because of EOL issues. Resolve warnings, make cross-
compilation aware.
Reported by Peter Ekberg <peda@axentia.se>.
Peter Ekberg [Thu, 25 Aug 2005 13:39:54 +0000 (13:39 +0000)]
* tests/standalone.at: (without autotools): Add
$(CFLAGS) to LTCOMPILE and LTLINK. Separate compiling
and linking. Remove compiling flags from link. Add
--tag. Add -no-undefined flag.
Bruno Haible [Wed, 24 Aug 2005 15:57:32 +0000 (15:57 +0000)]
* libltdl/config/ltmain.sh (func_mode_install): Try "ln -s -f"
and "rm -f && ln -s" to make a symlink for a shared library: the
former is needed for libraries `ln' depends on, the latter for
Solaris /bin/ln.
Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.
Ralf Wildenhues [Wed, 24 Aug 2005 13:39:51 +0000 (13:39 +0000)]
* tests/defs.m4sh (m4dir, auxdir, scripts): Fix for source tree
reorganization.
* tests/sh.test: Adjust. Also barf on sed diagnostics so this
test will not fail again silently.
Stepan Kasal [Tue, 23 Aug 2005 16:04:27 +0000 (16:04 +0000)]
* libltdl/m4/ltdl.m4 (LTDL_INIT): Use AH_HEADER if defined.
Compute CONFIG_H only before creating config.status.
Reported by Peter Ekberg <peda@axentia.se>.
Gary V. Vaughan [Tue, 23 Aug 2005 01:49:37 +0000 (01:49 +0000)]
Reorganise the libtool tree to create a bootstrapped libltdl for
installation to the libtoolize master tree, so that libltdl is
useable even in the extreme case of when automake and autoconf are
not installed on the developers machine. Part of this change
requires some duplication of rules between Makefile.am (which
builds libltdl for this distribution) and libltdl/Makefile.am
(which is used by projects that libltoolize --ltdl --copy), so
libtool now really does use a single toplevel Makefile.am, and we
generate libltdl/Makefile.am from that:
* m4, config: Moved from here...
* libltdl/m4, libltdl/config: ...to here, to reduce the amount of
kludging needed in bootstrap for autoreconf to run.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am,
tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am,
tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to
compensate.
* tests/cdemo/configure.ac, tests/demo/configure.ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/fcdemo/configure.ac, tests/mdemo/configure.ac,
tests/mdemo2/configure.ac, tests/pdemo/configure.ac,
tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto.
* libltdl/m4/ltdl.m4: Increment serial number.
(LTDL_INIT): Accept an optional directory argument to prefix each
of the LD_DLLOADERS locations. Default to empty for backwards
compatibility.
* Makefile.maint: Adjust to compensate.
* configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust.
(AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS
from in a subdirectory from the amalgamated Makefile.am.
(AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects.
(AC_CONFIG_FILES): Remove libltdl/Makefile.am.
* libltdl/Makefile.am: Removed from repository, and merged into
Makefile.am as we now generate it...
* Makefile.am (libltdl/Makefile.am): ...from here, by extracting
the merged rules, and tweaking paths to accomodate the difference
in directory from Makefile.am to libltdl/Makefile.am.
(nobase_dist_pkgdata_DATA): Automake generated installation rules
change timestamps of installed files, so renamed this...
(configauxfiles): ...to this...
(libtoolize): ...substitute it...
(install-data-local): ...install manually, preserving
timestamps...
(install-data-hook): ...and set execute bit as appropriate.
(uninstall-hook): Not forgetting to remove them at uninstall.
(libltdl/Makefile.in): New rule. Called from...
* bootstrap: ...here to avoid relying on config.status at
bootstrap time.
(auxdir, m4dir): Extract from configure.ac for ease of future
maintenance. Adjust all references.
(reconfdirs): Call autoreconf for libltdl too -- even
though we don't use it for the build, libltdl/configure and
friends are installed with `libtoolize --ltdl --copy'.
* libtoolize.m4sh: Add files from the installed config master tree
to libtoolize --ltdl project subdirectory.
Diagnose duplicated files when --ltdl is used in an autotooled
project.
It's perfectly fine to run `libtoolize --ltdl --copy' in a tree
that has no configure.ac or configure.in; we want libltdl to be
useful even to projects that don't use autotools themselves.
(libtoolize_flags): Removed. Changed all callers.
(func_massage_pkgconfig_files): New function.
* tests/standalone.at: New tests for using libltdl without
supporting configury in the parent project.
* tests/testsuite.at: Run them!
* NEWS: Updated.
Peter Ekberg [Mon, 22 Aug 2005 11:07:00 +0000 (11:07 +0000)]
* m4/libtool.m4: Bump serial number.
(LT_PATH_NM): If nm is not found on the path, look for
dumpbin. Then check if $NM responds as dumpbin would
and if not, assume the name lister is BSD nm compatible.
(_LT_CMD_GLOBAL_SYMBOLS): If the name lister uses the
dumpbin interface, adjust the test to find a working
global_symbol_pipe.
* doc/libtool.texi: Document $NM to possibly be MS
dumpbin compatible, and also document the format of the
relevant output from MS dumpbin.
Ralf Wildenhues [Thu, 18 Aug 2005 17:07:17 +0000 (17:07 +0000)]
* m4/libtool.m4 (LT_OUTPUT): New macro to generate
libtool before config.status.
(_LT_CONFIG_COMMANDS): If LT_OUTPUT has been invoked, then
generate code in config.status to call config.lt instead of
generating libtool directly.
* doc/libtool.texi (LT_INIT): Document LT_OUTPUT.
* tests/early-libtool.at: New test.
* Makefile.am (TESTSUITE_AT): Updated.
* tests/testsuite.at: Updated. Define defaults for $ACLOCAL,
$AUTOCONF.