Commit Graph

16 Commits

Author SHA1 Message Date
Ralf Wildenhues
622c4abcb5 * libltdl/configure.ac: Update version; require Autoconf >= 2.59. 2005-03-15 17:30:00 +00:00
Gary V. Vaughan
388b7626dc The Grand Renaming. In preparation for libtool-2.0, move all of
the many and varied m4 symbols accumulated by libtool over the
years, considering also that modern autoconf can detect unexpanded
macros even without AC in the macro name:

* bootstrap: Remove libltdl/config.h from previous releases.
* m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a
giant sed transformation like this:
s,AC_LIB_LTDL,LTDL_INIT,g
s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g
s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g
s,AC_WITH_LTDL,LT_WITH_LTDL,g
s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g
s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g
s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g
s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g
s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g
s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g
s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g
s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g
s,AC_CHECK_LIBM,LT_LIB_M,g
s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g
s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g
s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g
s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g
s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g
s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g
s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g
s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g
s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g
s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g
s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g
s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g
s,AC_PROG_LD,LT_PATH_LD,g
s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g
s,AC_PROG_NM,LT_PATH_NM,g
s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g
s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g
s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g
s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g
s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g
s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g
s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g
s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g
s,_LT_AC_TAGVAR,_LT_TAGVAR,g
s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g
s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g
s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g
s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g
s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g
s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g
s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g
s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g
s,LT_AC_PROG_SED,_LT_DECL_SED,g
* doc/libtool.texi (Autoconf macros): Document exported macros.
* libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT
instead of newly obsoleted AC_LIB_LTDL.
(func_scan_files): Also set seen_ltdl for LTDL_INIT and
LT_WITH_LTDL.


* libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not
an environment variable, it is an actual path.
Reported by Noah Mish <noah@cs.caltech.edu>
2004-08-22 22:02:07 +00:00
Gary V. Vaughan
706e672811 This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone).  First, there is
a new feature that allows libraries to preopen modules.  This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner.  Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders.  The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature.  If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl.  The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):

* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file.  Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* 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: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible.  *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored.  Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 12:14:48 +00:00
Brad
aa6cd3e074 libltdl uses LIBOBJS, which leak out into a parent project if both
share the same configure.ac.  Libtool itself doesn't compile any
code, so it is okay to do it during bootstrap, but other projects
need to treat libltdl as a configurable subproject to keep their
respective LIBOBJS separate:

* libltdl/configure.ac: New file, based on configure.ac.
* libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4
directory.
(ltdldata_DATA): List *all* the files that libtoolize --ltdl will
install.
2004-06-16 17:17:40 +00:00
Gary V. Vaughan
306033a153 * libltdl/configure.ac: Removed.
* configure.ac (AC_CONFIG_HEADERS): Merged from
libltdl/configure.ac.
(AC_LIB_LTDL): Ditto.
(AC_CONFIG_FILES): Add libltdl/Makefile.
(AC_CONFIG_SUBDIRS): Removed.
(AC_CONFIG_COMMANDS): Remove generation of libltdl/ltmain.sh.
* libltdl/Makefile.am (libtool): Removed references, since we now
share $(top_builddir)/libtool.
* NEWS: Updated.
2003-11-27 13:32:33 +00:00
Gary V. Vaughan
c114abf5e4 * tests/cdemo/configure.ac, tests/demo/configure.ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/mdemo/configure.ac, tests/mdemo2/configure.ac,
tests/pdemo/configure.ac, tests/tagdemo/configure.ac: Declare just
the tags we need using AC_LIBTOOL_TAGS, reducing the size of the
configure script by 50% in most cases.
2003-11-14 17:28:29 +00:00
Gary V. Vaughan
c866b386af * m4/libtool.m4 (AC_LIBTOOL_SETUP): Don't define the value for
ltmain unconditionally.
(_LT_PROG_LTMAIN): New macro to ensure that the
shell variable `ltmain' actually points at a suitable `ltmain.sh'.
(_AC_PROG_LIBTOOL): Require it.
(AC_LIBTOOL_CONFIG, _LT_AC_TAG_CONFIG): Invoke it.
* Makefile.am (libtool): ltmain.sh is in the build tree.
* libltdl/configure.ac: Ditto.
2003-11-11 16:49:32 +00:00
Gary V. Vaughan
2512e6ad67 * tests/cdemo/configure.ac, tests/demo/configure.ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/mdemo/configure.ac, tests/mdemo2/configure.ac,
tests/pdemo/configure.ac, tests/tagdemo/configure.ac:
s/AM_PROG_LIBTOOL/AC_PROG_LIBTOOL/. Marching boldly into the 21th
century :-$
2003-11-07 16:25:57 +00:00
Gary V. Vaughan
2d38c0a17d * configure.ac, libltdl/configure.ac, tests/cdemo/configure.ac,
tests/demo/configure.ac, tests/depdemo/configure.ac,
tests/f77demo/configure.ac, tests/mdemo/configure.ac,
tests/mdemo2/configure.ac, tests/pdemo/configure.ac,
tests/tagdemo/configure.ac (AM_INIT_AUTOMAKE): Remove redundant
arguments.
* libltdl/configure.ac: Use quadrigraphs to escape macronames.
2003-10-21 10:56:24 +00:00
Gary V. Vaughan
27a9392fb1 * bootstrap: Rewritten to use autoreconf.
* config.guess, config.sub, mkstamp:  Moved from here...
* config/config.guess, config/config.sub, config/mkstamp: ...to
here, respectively.
* libtool.m4, ltdl.m4: Moved from here...
* m4/libtool.m4, m4/ltdl.m4: ...to here, respectively.
* configure.ac: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
* Makefile.am: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
(AUTOMAKE_OPTIONS): Require CVS automake.
(CONF_SUBDIRS, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, FFLAGS, FLIBS):
Automake now makes a Make variable from every AC_SUBST, so these
are NOP.
(aclocal_macros): These files are now in their own m4 subdir.
Changed all clients.
(EXTRA_DIST): mkstamp has moved to the new config subdir.  Changed
all clients.
(pkgdata_SCRIPTS): Ditto wrt config.guess and config.sub.
(pkgdata_DATA): Ditto wrt ltmain.sh.
* f77demo/configure.ac, libltdl/configure.ac (AM_CONFIG_HEADER):
Is deprecated in favour of AC_CONFIG_HEADERS.  Updated to the
latter.
* Makefile.am, cdemo/Makefile.am, demo/Makefile.am,
depdemo/Makefile.am, f77demo/Makefile.am, mdemo/Makefile.am,
mdemo2/Makefile.am, pdemo/Makefile.am, tagdemo/Makefile.am
(EXTRA_DIST): Remove acinclude.m4.
(ACLOCAL_AMFLAGS): Search new `m4' macro directory.
* configure.ac, cdemo/configure.ac, demo/configure.ac,
depdemo/configure.ac, f77demo/configure.ac, mdemo/configure.ac,
mdemo2/configure.ac, pdemo/configure.ac, tagdemo/configure.ac
(AC_CONFIG_AUX_DIR): Declare that config helper	scripts are now
kept in the new config subdir.
* libltdl/configure.ac (AC_CONFIG_AUX_DIR): Removed.  Defaults to
`.' anyway.
2003-09-25 11:22:29 +00:00
Robert Boehne
65c07ebba9 * libltdl/configure.ac: Use AC_CONFIG_AUX_DIR([.]) to place
auxilary files in the libltdl directory.
* Makefile.am: Add to the ltmain.sh rule to copy it into the
libltdl subdirectory.
* bootstrap: Explicitly handle ltmain.sh in libltdl, and pass
--copy to automake.
2003-02-25 00:30:28 +00:00
Gary V. Vaughan
9c63d67ebe * configure.ac: General modernisation and cleanup.
* cdemo/configure.ac: Ditto.
* demo/configure.ac: Ditto.
* depdemo/configrue.ac: Ditto.
* ltdl/configure.ac: Ditto.
* ltdldemo/configure.ac: Ditto.
* mdemo/configure.ac: Ditto.
* pdemo/configure.ac: Ditto.
* tagdemo/configure.ac: Ditto.
2001-10-06 15:35:17 +00:00
Gary V. Vaughan
2d4c83cc36 * libltdl/configure.ac (AM_INIT_AUTOMAKE): Bump libltdl version to
1.2.
* libltdl/Makefile.am (libltdl_la_LDFLAGS):  Bump libtool library
version info to 4:0:1.
2001-09-11 01:26:44 +00:00
Gary V. Vaughan
5473bb5e38 * ltdl.m4: Bump serial number.
General reformat and tify up in line with Autoconf-2.50 support.
(AC_LTDL_FUNC_ARGZ): Test for system implementations of a
handful of argz API calls, the error_t type, and the argz.h
header.
* libltdl/configure.ac (AM_INIT_AUTOMAKE): Bump version number.
* libltdl/ltdl.c (rpl_argz_append, rpl_argz_create_sep.
rpl_argz_insert, rpl_rgz_next):  Fallback implementations of
the similarly named functions for machines that don;t use glibc.
(lt_dlrealloc):  New memory function pointer that can be set by
the client.  Defaults to rpl_realloc, which in turn uses only
lt_dlmalloc and lt_dlfree.
(LT_EMALLOC, LT_EREALLOC): Set internal out-of-memory error
inside the functions called by these new macros.  Simplified all
callers by removing explicit client error reporting.
(memmove):  Fallback implementation of overlap safe memory copy
function.
(tryall_dlopen):  Factorized common code into...
(tryall_dlopen_module): ...this new helper function.
(canonicalize_path):  Changed function signature to return success
or failure.  Updated all callers.
(foreachfile_callback):  Make use of argz API.
(LT_DLSTRLEN): Moved from here...
* libltdl/ltdl.h (LT_STRLEN): ...to here.  Updated all callers.
(lt_dlrealloc):  Declare new memory management handle.
2001-08-01 06:50:16 +00:00
Tim Van Holder
4925d0771e General cleanup of autoconf-2.50 upgrade:
* configure.ac: Mark as needing autoconf-mode in
emacs.  Pass arguments to AC_INIT.
* cdemo/configure.ac: Ditto.
* demo/configure.ac: Ditto.
* depdemo/configure.ac: Ditto.
* libtldl/configure.ac: Ditto.
* mdemo/configure.ac: Ditto.
* pdemo/configure.ac: Ditto.
* tagdemo/configure.ac: Ditto.
* ltdl.m4: Mark as needing autoconf-mode in
emacs.
* libtool.m4: Mark as needing autoconf-mode in
emacs.  Don't add () to AS_MESSAGE_LOG_FD.
* libltdl/configure.ac: Use config-h.in as
template for config.h.
* tagdemo/configure.ac: Drop the AC_DIAGNOSTIC. Move
AC_LANG([C++]) after the OBJEXT/EXEEXT check.
2001-06-29 22:56:50 +00:00
Gary V. Vaughan
cb2c3d2ed8 Libtool now builds with the help of Autoconf-2.50!
* configure.ac (AC_PREREQ):  Require Autoconf-2.50 or newer.
(AC_PROG_CPP, AC_EXEEXT, AC_OBJEXT):  Removed.  Autoconf-2.50
doesn't have the AC_REQUIRE bug that required these to be called
explicitly from here.  Autoconf-2.50 uses this file instead of...
* configure.in: ...this, which is now deleted.
* cdemo/configure.ac, cdemo/configure.in: Ditto.
* demo/configure.ac, demo/configure.in: Ditto.
* depdemo/configure.ac, depdemo/configure.in: Ditto.
* libltdl/configure.ac, libltdl/configure.in: Ditto.
* mdemo/configure.ac, mdemo/configure.in: Ditto.
* pdemo/configure.ac, pdemo/configure.in: Ditto.
* libltdl/acconfig.h:  Deleted.
* Makefile.am (libtool): libtool now depends on configure.ac.
* libtool.m4 (_LT_AC_LOCK):  Use 2.50's AC_LANG_PUSH/AC_LANG_POP
instead of 2.13's AC_LANG_SAVE/AC_LANG_RESTORE.
(AC_LIBTOOL_LANG_C_CONFIG): Ditto.
(AC_LIBTOOL_LANG_CXX_CONFIG): Ditto.
* libtoolize.in:  Use $configure_ac, instead of hardcoding
configure.in.
2001-06-28 22:02:06 +00:00