* libltdl/ltdl,c (LT_DLMUTEX_LOCK): Renamed from MUTEX_LOCK to
avoid potential namespace clash.
(LT_DLMUTEX_UNLOCK, LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR):
Ditto.
(lt_dlmutex_lock_func): Renamed from mutex_lock to avoid a
namespace clash of NCR MP-RAS.
(lt_dlmutex_unlock_func, lt_dlmutex_seterror_func,
lt_dlmutex_geterror_func): Ditto.
Reported by Edouard G. Parmelan <Edouard.Parmelan@France.NCR.COM>
(AC_LIB_LTDL): Require AC_HEADER_DIRENT for ltdl.c.
* libltdl/ltdl.h (lt_dlforeachfile): Prototype for new function.
* libltdl/ltdl.c: Include an appropriate header for the
opendir/dirent api.
(foreach_dirinpath): Visit each file in a list of directories.
(find_file_callback): Factor out the core of find_file() to make
use of foreach_dirinpath().
(find_file): Use it!
(find_handle_callback, find_handle): Ditto.
(lt_dlforeachfile): New function to find files in a searchpath.,,
(foreachfile_callback): ...using this callback.
* doc/libtool.texi (Libltdl interface): Document new
lt_dlforeachfile api call.
examination in a loop, restore it inside the loop as well as
outside incase IFS is needed by commands in that loop.
Reported by Pavel Roskin <proski@gnu.org>
transform linux to linux-gnu in $host.
(AC_LIBTOOL_SYS_DYNAMIC_LINKER): Match $host_os against
linux*, not linux-gnu*.
(AC_DEPLIBS_CHECK_METHOD): Likewise.
PATH_SEPARATOR appropriately if it is not set already,
(_LT_AC_TAGCONFIG): Use it.
(AC_ENABLE_SHARED): Ditto.
(AC_ENABLE_STATIC): Ditto.
(AC_ENABLE_FAST_INSTALL): Ditto.
(AC_PATH_TOOL_PREFIX): Ditto.
(AC_PATH_MAGIC): Ditto.
(AC_PATH_PROG_NM): Ditto.
From Tim Van Holder <tim.van.holder@pandora.be>:
* libtool.m4: Use the canonical absolute path test
([\/]* | ?:[\/]) and $PATH_SEPARATOR wherever
appropriate.
(AC_LIBTOOL_PROG_CC_PIC): Properly recognize DJGPP as a
platform that doesn't support shared libraries.
(AC_LIBTOOL_SYS_MAX_CMD_LEN): Avoid this test on DJGPP; use a
fixed value (12K) instead.
(AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Don't forget $ac_exeext
when testing for link success.
the ltcf-*.sh and ltconfig.in files from multi-language-branch:
* libtool.m4: More refactoring and reformatting.
(_LT_AC_LANG_GCJ_CONFIG): Merged ltcf-gcj.sh from
multi-language-branch.
(_LT_AC_LANG_CXX_CONFIG): Merged ltcf-cxx.sh from
multi-language-branch.
* configure.in (AC_PROG_CXX, LT_AC_PROG_GCJ): Compiler checks must
be done before AC_PROG_LIBTOOL which appends tags based on their
results.
extracting configuration values, since a given value may
be present in each tag.
(hc-libpath): Ditto.
(hc-minusL): Ditto.
* libtool.m4 (_LT_AC_TAGCONFIG): Add tagged configurations from
the --with-tags option.
(_LT_AC_LTCONFIG_HACK): Factored out into separate configuration
macros -- The interdependencies and running order are still
immutable, and need a lot of work to fix.
(AC_LIBTOOL_CONFIG): Taken from the previous incarnation of
_LT_AC_LTCONFIG_HACK -- this macro is used both to create the
primary (C language) libtool configuration from
_LT_AC_LTCONFIG_HACK and also to append tagged configurations from
_LT_AC_TAGCONFIG.
* NEWS: Merged from multi-language-branch.
multi-language-branch.
* configure.in: Added pdemo and tagdemo to CONF_SUBDIRS
and merged references to CXX and GCJ from multi-language-branch.
*pdemo: Added test directory from multi-language-branch.
*tagdemo: Added test directory from multi-language-branch.
*tests/Makefile.am: Merged additional tests from
multi-language-branch.
*tests/pdemo-*.test: ditto.
*tests/tagdemo-*.test: ditto.
* libltdl/ltdl.c (strdup, strcmp, strchr, strrchr, memcpy, trim,
free_vars): Revoke inline keyword from declarations. `static
inline' is not very portable, and in addition Unixware 7.1.1's
compiler says you can't access static variables from inline
functions.
Reported by Peter Eisentraut <peter_e@gmx.net>
* ltmain.in (ILD): tidy up, add comments, remove dead code,
merge duplicate code
* ltmain.in (ILD): don't touch newdependency_libs after scan or
dlopen pass
* ltmain.in (ILD): don't dlpreopen dependency_libs of a dlopened
module (remove absolutely wrong quick hack)
* ltmain.in (ILD): remove wrong comments about duplicate removal
* ltmain.in (ILD): build a static-only module if it has
static libraries in its dependencies (so that libltdl can
safely load dependency_libs)
* ltmain.in (argument parsing): prefix comparsions of -l args with X,
replace -lc with `-framework System' _after_ the ILD passes
* ltmain.in (argument parsing): support dl[pre]open
for both .o and .lo files
* ltmain.in (deplibs_check): use portable test syntax
* ltmain.in (help): document -prefer-[non-]pic flags
* ltmain.in: improve readablity by adding some comments,
rename uninst_* to notinst_* (more adequate name)
test suite, Yay!
From Albert Chin-A-Young <china@thewrittenword.com>
* ltmain.in: `test -L' is not portable, and infact breaks uninstall
mode on Solaris. Fallback to `test -h' and finally `test -f',
but be careful not to let the failure status cause libtool to
stop.
check for that here.
* libltdl/ltdl.c (HAVE_SYS_DL_H): Include it if necessary for
the dlopen loader.
Reported by Matthew Schalit <mschalit@pacbell.net>
more like AIX does, with a shared object archived into lib<xxx>.a.
On AIX -bexpall flag does strange things... Don't use it.
Fix quotes around -berok flag. Add support for AIX 5.
Add support for run time linking on AIX POWER. (should work
on AIX 4.2 and up). Turn this feature on by adding -brtl flag
to LD_FLAGS. Add support for AIX on IA64. Note: AIX on IA64
uses a SYSV type linker. Add a comment telling what to do if the
TOC starts getting too large on AIX.
* NEWS: mention aix5 support.
module, since HPUX adds module symbols into the `self' pool if
it is opened later. Return the cached pointer if the caller
subsequently tries to open `self'.
(sys_shl_sym): Diagnose NULL modules.
* ltmain.in (clean,uninstall): test -e is not portable. Well,
neither is -L, but I'm hoping that redirecting error messages
to /dev/null and relying on non-zero exit status will work okay
on the few hosts that don't support -L.
* tests/depdemo-dups.test: Removed, as part of the patch
reversion below.
* ltmain.in: Revert my change from 2001-03-31. Although it
was technically correct, it opens a whole can of worms we don't
want to deal with right now.
* libltdl/ltdl.c (sys_shl_open): Return a NULL module handle
for self opening.
(sys_shl_close): Be careful not to close a NULL module handle.
(sys_shl_sym): Allow shl_findsym() to open NULL modules, but
discard the modified module address it returns.
hardcodes the library path and adds versioning. Other small
fixes.
* ltmain.in: Fixed special cases for libc and libm on Rhapsody and
Darwin. One of them was misplaced. Added version_type case for
Rhapsody and Darwin, named "darwin".
from libtool link lines -- duplicates are somtimes necessary
to satisfy inter-library dependencies, and never cause link to
fail even if they are spurious.
* tests/depdemo-dups.test: New file. Make sure this bug doesn't
creep back in again!
* tests/Makefile.am (TESTS): Use the new test above.
to the following: libFOO.a (static lib), libFOO.dll.a (import
lib), cygFOO-version.dll (dll). Update postinstall_cmds and
postuninstall_cmds to reflect this.
* ltmain.in: Generate installed .la files with dlnames set to
../bin/cygFOO-version.dll for normal dlls. dlls for modules
remain with the .la file.
* libtool.m4 (export_symbols): On Windows, if the export_symbols
file (which has been passed to libtool with the -export-symbols
command line switch) already is a .def file, use it as is.
* doc/libtool.texi (Thread Safety in libltdl): New node describing
the application the new MT API.
* libltdl/ltdl.h: Prototypes.
* libltdl/ltdl.c: Use these functions throughout the rest of
the file to provide thread locking.
(lt_dlmutex_register): New function to set callbacks for
multi-threaded calls into libltdl.
(lt_dl_mutex_lock): Type of a locking callback function.
(lt_dl_mutex_lock): Type of an unlocking callback function.
(lt_dl_mutex_seterror): Type of a callback function to save the
last libltdl error message in thread local storage.
(lt_dl_mutex_geterror): Type of a callback function to retrieve
the last saved error message from thread local storage.
don't sweat -- it may be a lib that is already statically linked
into the loading application.
* libltdl/ltdl.c: Clean up the shadowing of the global handles
variable.
(LT_DLRESIDENT_FLAGS): Add extra parens to satisfy -Wall.
(load_deplibs): Cast isspace() argument to an int to satisfy
-Wall.
* doc/libtool.texi (User defined module data): Document it all.
* ltdl.m4: Check for memcpy, or else bcopy.
* ltdl.c (lt_caller_data): New type.
(lt_dl_handle_struct): Add an lt_caller_data field.
(lt_dlcaller_register, lt_dlcaller_set_data,
lt_dlcaller_get_data): New functions.
(rpl_memcpy): A minimal fallback implementation.
(rpl_realloc): A realloc implemented with lt_dlmalloc and
lt_dlfree.
(LT_DLMALLOC, LT_DLFREE, LT_DLREALLOC, LT_DLMEM_REASSIGN):
New memory handling convenience macros. Use them
appropriately throughout the rest of this file.
* ltdl.h (lt_dlcaller_register, lt_dlcaller_set_data,
lt_dlcaller_get_data): Prototyped.
* doc/fdl.texi (GNU Free Documentation License): contained @bye
command which prevented part of document to be generated (indices,
etc).
* doc/libtool.texi (Dlpreopening): the @deftypevar did not contain
a space after a type.
below can detect preopened library deplibs correctly in libltdl,
we need to ensure that libtool library deplibs are also preloaded
into the binary for that phase to work.
out ac_cv_global_symbol_to_cdecl inside the loop, incase we
need to go around again and try with underscore prefix.
(_LT_AC_TRY_DLOPEN_SELF): On some hosts (cygwin for instance)
self dlclosing unloads the main program and causes a SIGSEGV. So
don't do it for now.
way. This should fix it some:
* libtool.m4 (extract_expsyms_cmds): There is a quoting problem
with autoconf-2.13 that prevents [$]0 from expanding. Use shell
quotes instead to delay eval of $0.
(impgen.c) The '# ' sequence stripped by sed works again.
* libltdl/ltdl.h (lt_dlmakeresident, lt_dlisresident): Add
prototypes.
(LT_DLERROR_CLOSE_RESIDENT_MODULE): New error status.
* libltdl/ltdl.c (lt_dlmakeresident, lt_dlisresident): Allow
making and testing of resident module status, which prevents a
module from being lt_dlclosed.
(lt_dlopen): If lt_dlopen()ing self, make the module resident.
(lt_dlclose): Return an error if the module is resident.
from here...
(AC_LTDL_DLOPEN_SELF): ...to here.
(_LTDL_AC_CHECK_DLFCN): Factor out repeated code for dlfcn.h
(_LT_AC_TRY_DLOPEN_SELF): Factor out repeated code for
checking dlopen status.
* ltdl.m4 (AC_LIB_LTDL): Use _LTDL_AC_CHECK_DLFCN.
dlopen compile time checking. Use _LTDL_AC_CHECK_DLFCN.
(AC_LTDL_DLSYM_USCORE): Use _LTDL_AC_TRY_DLOPEN_SELF.
for modules. If the named module has no directory component,
always start the search with the user_search_path directories,
and then fall back on the current directory only if that fails.
number to reflect the breakage of binary compatibility.
* doc/libtool.texi (Libltdl interface): Document
LT_NON_POSIX_NAMESPACE.
* libltdl/ltdl.h (LT_POSIX_NAMESPACE): Deleted. The default is
now to use this namespace, so the cpp macro is no longer
necessary.
ending in ``_t'') to deprecated #define compatibility macros.
Also ease up on the namespace pollution, so that only ``lt_''
and ``LT_'' prefixes are taken from the global namespace.
* ltdl.h: ditto.
Quote all the macro names when defined.
Some minor formatting changes.
(AM_PROG_LIBTOOL, AM_ENABLE_SHARED, AM_ENABLE_STATIC)
(AM_DISABLE_SHARED, AM_DISABLE_STATIC, AM_PROG_LD, AM_PROG_NM):
Don't use indir when useless. Don't add trailing `dnl' either.
* demo/configure.in: Revert to the `libtool --features' test.
* Makefile.am (libtool): This needs to rerun configure now that
libtool is generated entirely by AC_PROG_LIBTOOL again.
(ltconfig): Removed.
(ltmain.sh): Is now regenerated when ltmain.in changes.
* libtool.m4 (_LT_AC_LTCONFIG_HACK): Now does all of the work for
generating libtool immediately in configure.in, rather than
deferring part of the creation until config.status runs.
necessary.
* Makefile.am (libtool): Reworked rule for regeneration of libtool,
now that it is built entirely withing config.status.
(libtoolize): Tidied for orthogonality with the other generation
rules.
(ltconfig): This is now generated by AC_PROG_LIBTOOL, called from
make by running config.status --recheck.
(ltmain.sh): Moved primary generation of this file into here...
* configure.in (AC_OUTPUT): ...instead of here.
* libtool.m4 (AC_OUTPUT_COMMANDS): Write the config to ltconfig
where it can be reused, rather than directly to libtool.
* demo/configure.in: libtool is no longer present immediately
after AC_LIBTOOL_M4 has completed, so the tests now grep through
ltconfig instead -- which *will* be present.
similar item to remind us to change the ltdl.m4 macros again when
_LT_AC_LTCONFIG_HACK is divided into proper macros.
* ltdl.m4 (AC_LTDL_SNARF_CONFIG): Removed. No longet required
now that ltconfig has migrated to libtool.m4.
(AC_LTDL_SHLIBEXT): Require _LT_AC_LTCONFIG_HACK.
(AC_LTDL_SHLIBPATH): ditto.
(AC_LTDL_SYSSEARCHPATH): ditto.
macro.
(AC_LTDL_SYMBOL_USCORE): ditto.
(AC_LTDL_GLOBAL_SYMBOL_PIPE): Removed, since it is a duplicate
of...
* libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): ...this new
macro, extracted from _LT_AC_LTCONFIG_HACK.
more conformity with cvs autoconf.
Removed emacs hack-local-variables, since there is now a
proper Autoconf major mode.
Removed a couple of changequote()s.
* libtool.m4 (pw32): Initial support for pw32, assuming that
libtool's behaviour in this environment is identical to under
cygwin.
* ltmain.in (pw32): ditto.
* NEWS: Updated.
bug in Autoconf-2.13 AC_REQUIRE implementation which inserted
some of the expanded tests too early in the generaated configure.
(_AC_PROG_LIBTOOL): renamed to AC_PROG_LIBTOOL, and defines
itself to an empty expansion to prevent multiple expansions.
configure.in (AC_LIBTOOL_SETUP): Replaced by a call to
AC_PROG_LIBTOOL now that the AC_REQUIRE bug has been worked
around.
configure.in interacts badly with the AC_PROVIDE calls and
results in several tests being inserted into configure too
early. Use AC_LIBTOOL_SETUP instead.
* TODO: Add a reminder to get rid of ltconfig in mlb.
* README: Until things even out, I have added a note and a
patch to make the installed automake cooperate with the new
ltconfig free libtool.
doesn't exist!!
* bootstrap: Fake an ltconfig incase the installed automake
calls an installed libtoolize (as part of its --add-missing
process) which thinks ltconfig should be there.
from ltconfig, so that ltmain.sh and then libtool are
generated at configure time.
* Makefile.am: Don't generate ltmain.sh or ltconfig anymore.
* bootstrap: ltconfig is no more!
* configure.in: Call AC_PROG_LIBTOOL directly.
(AC_OUTPUT): Generate tmain.sh.
* libtool.m4: Don't build an argument list for ltconfig.
(_LT_AC_LTCONFIG_HACK): Refactoring of the former contents of
ltconfig.in to take advantage of the m4 macros from autoconf.
* ltmain.in: Don't do a version check against ltconfig.
* tests/assign.test: Remove reference to ltconfig.
* tests/hardcode.test: ditto.
* tests/sh.test: ditto.
hardcode_into_libs=all. 2000-09-03's patch was wrong.
* ltmain.in: Likewise.
* tests/build-relink.test, tests/build-relink2.test: Adjust.
* mdemo/Makefile.am (lib_LTLIBRARIES): Move libsub.la before
libfoo2.la, so that they're installed in the right order.
at the top ofltconfig.in is ugly, but will go away when the rest
of ltconfig is migrated.
* Makefile.am (libtool): Pass the value of $ECHO to ltconfig as
an environment variable.
* libtool.m4 (_LT_AC_PROG_ECHO_BACKSLASH): Quote the ECHO value
correctly so that it inserts the correct code into configure.in
suitably quoted for M4 expansion. This code needs to be near
the top of configure.in as it calls itself recursively, so I
am using AC_DIVERSION_NOTICE (or simply NOTICE on CVS
Autoconf). The value of ECHO is also substitued into the
Makefile to be used when Make calls ltconfig to generate
libtool, so another layer of quotation is required for the
Makefile.
(AC_LIBTOOL_SETUP): Use it.
* ltconfig.in: Accept a value for ECHO from the environment, and
carefully substitue for $0 if it is present in the ECHO value.
Because ECHO was quoted for Make, when ltconfig is called by
configure, it is overquoted, and one layer of quotes must be
stripped.
available to the generated libtool script.
* ltmain.in (compile_command, finalize_command): The native C
and C++ compilers on IRIX require the -LANG:std in order to to
compile correctly. The same options should _not_ be passed
through to gcc on IRIX, or at all on other architectures for
backwards compatibility (among others).
Reported by Bob Freisenhahn <bfreisen@simple.dallas.tx.us>
Reported by Albert Chin-A-Young <china@thewrittenword.com>
* ltconfig (old_AR_FLAGS): Add.
(old_archive_cmds): Use AR_FLAGS rather than hardcoding "cru".
(archive_cmds): Use AR_FLAGS rather than hardcoding "cru".
(AR_FLAGS): Default to "cru" if not set.
INCLTDL starts with top_srcdir, replace NULL with @code{NULL}
* ltmain.in (ILD): search in newlib_search_path, too
* ltmain.in (ILD): fix bugs in conv pass, expand convenience
libs to deplibs and link them later on
* ltmain.in (ILD): don't allow convenience libs to be
-dlopen/preopen'ed
* ltmain.in (ILD): it's not required to link all deplibs
in fast-install mode
* ltmain.in (ILD): if hardcode_into_libs=all, only relink
a library if it is linked against uninstalled libtool libraries,
rename link_against_libtool_libs to uninst_deplibs
* ltmain.in (ILD): tidy up, add some comments
$shlibpath_var $runpath_var'. If with_gcc, add gcc-related
environment variables. Add it to the configuration section.
* ltmain.in (relink_command): Expand those variables.
far cleaner to use lt_dlforeach and lt_dlgetinfo.
* libltdl/ltdl.h: Prototype deleted.
* doc/libtool.texi: Documentation deleted.
* NEWS: annoncement deleted.