* 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.
* ltconfig.in: Likewise.
* ltcf-c.sh: Likewise.
* ltcf-cxx.sh: Likewise.
* ltcf-gcj.sh: Likewise.
* 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.
* 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.
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.
Add ltcf-c.sh to LIBTOOL_DEPS. Run AC_LIBTOOL_CXX and
AC_LIBTOOL_GCJ on demand.
(AC_PROVIDE_IFELSE): Define for non-CVS autoconf compatibility.
(AC_LIBTOOL_CXX): Accept multiple executions. Add ltcf-cxx.sh
to LIBTOOL_DEPS. Reset config.log output.
(AC_LIBTOOL_GCJ): New macro.
* libtoolize.in: Copy ltcf-cxx.sh if AC_PROG_CXX is found.
Copy ltcf-gcj.sh when appropriate.
* doc/libtool.texi (AC_LIBTOOL_CXX): Doesn't have to be
explicitly called.
(AC_LIBTOOL_GCJ): Document.
* tagdemo/configure.in (AC_LIBTOOL_CXX): Don't call.
files, search for "*.$objext," not "*.o."
(compile_command, finalize_command, progfiles): No need to
transform `.lo' objects into standard `.o' objects. `.lo' files
are converted to the appropriate `.o' file earlier in the link
mode code.
* doc/libtool.texi (AC_LIBTOOL_CXX): Documented this
macro, and the `tagdemo' test that utilizes it. Updated C++ and
tagged configuration documentation.
(sub): Added tagdemo to list of subdirectories to be
bootstrapped.
* ltcf-cxx.sh (AR): Removed redefinition of $AR to C++ compiler on
Solaris for the Sun C++ and Green Hills C++ compilers. `ar' must
be used to extract object files from the archives, despite the
fact that the archive must be created by the compiler.
Reported by Stephan Kulow <coolo@kde.org>
(predeps, postdeps): Remove any space between "-{L,R}" and the
path. Some compilers, such as HP aCC add space between them.
* ltconfig.in (dlopen, dlopen_support): Merged updates from HEAD
branch.
* ltmain.in: Merged updates from HEAD branch.
(libext): Do not reset $libext to `al' when creating convenience
libraries. Some compilers have problems with such a non-standard
extension.
Reported by Stephan Kulow <coolo@kde.org>
* doc/libtool.texi: Merged updates from HEAD branch.
* libltdl/Makefile.am, libltdl/configure.in, libltdl/ltdl.c,
libltdl/ltdl.h: Merged updates from HEAD branch.
tagged configuration is appended to this list. This is done at
ltconfig time so that the generated `libtool' script need not
determine which tags it supports everytime it is used. The
available_tags variable is used by `ltmain.in' to iterate over
each of the tagged configurations when attempting to automatically
choose which one to use for the supplied compile/link command.
* ltmain.in: Added ability to automatically determine which tagged
configuration to use based on the compiler found in the supplied
base compile command.
(available_tags): This new variable contains a list of available
tagged configurations. This gets generated at ltconfig time.
(object_name, old_object): Renamed these to pic_object and
non_pic_object, respectively.
* doc/libtool.texi (Configuration tags): Updated documentation.
Libtool now has the ability to infer which tagged configuration to
use based on the compiler found in the supplied base compile
command.
* tagdemo/configure.in, tagdemo/configure: Removed explicit
substitution of "--tag=CXX" in $LIBTOOL. The newly added
automatic selection of tagged configurations obviates the need to
explicitly specify which tag to use.
inadvertently do something like the following:
CC=$CXX LTCC=$CC ./ltconfig --add-tag=...
Doing the above would set LTCC to the C++ compiler ($CXX), which
is incorrect since LTCC should be the C compiler. Also added
documentation explaining this potential problem.
Integrated Alexandre's configuration tags patch, part of Thomas'
patch and part of my patch.
These patches make it possible for libtool to support
compilers besides C compilers. This also includes support for
linkers besides `ld', and similarly for other tools commonly used
for development. See the libtool documentation for more details.
Moved all C compiler related configuration code to `ltcf-c.sh',
described below.
Multi-compiler/language still isn't complete but testing is now
possible.
* THANKS: added Olly Betts and Pavel Roskin
* doc/libtool.texi: fix typo
* fix major bugs which rendered libtool virtually
unusable (i.e. not portable):
* ltconfig.in: don't hardcode system dependent variables in ltconfig!!
but set sane defaults
* Makefile.am: pass variables from AC_LIBTOOL_SETUP to ltconfig
* libtool.m4: ditto, fix typo in AC_PROG_LD_RELOAD_FLAG
* ltconfig.in: use old_deplibs for archives, too
remove second occurence of sysv5
* ltmain.in: fix typo, fix the second occurence of -DPIC, too
* libltdl/Makefile.am: increment version number, fix typo
* libltdl/ltdl.c (lt_dlsym): don't report an error if the
libltdl-style symbol name wasn't found
* ltconfig.in: add support for Unixware (sysv4.2uw2*)
* doc/PLATFORMS: GNU/Hurd update
* depdemo: make use of variables
* ltconfig.in: use CC -E when checking for ELF support
on NetBSD (reported by Todd Vierling <tv@pobox.com>),
replace all occurences of 'linkopts' with 'linker_flags'
* ltmain.in: move ltdll.c and impgen.c to ltconfig.in and
only add them to the libtool script if it's necessary
* ltconfig.in: add support for UnixWare 7.X.X
* doc/PLATFORMS: add new platforms
* doc/libtool.texi: document use of noinst_LTLIBRARIES for
convenience libraries
* ltconfig.in: check for freebsdelf3, not just freebsd3.
Set hardcode_into_libs=yes for FreeBSD 3.0 and 3.1
* ltmain.in: enable workaround for freebsdelf3.0
* ltconfig.in: export_dynamic_flag_spec is -rdynamic on BSD/OS
(Link mode): and another.
(Release numbers): and another.
(Distributing libltdl): and another.
(Test descriptions): and another.
(libtool script contents): and one more.
AC_CHECK_TOOL in AC_LIBTOOL_SETUP.
* libtool.m4 (AC_PROG_LIBTOOL): Pass the $build variable to
ltconfig.
(AC_PROG_RANLIB): replaced with AC_CHECK_TOOL.
* ltconfig.in (build): new variable to hold the build triplet
which is now checked for unless --no-verify is specified.
(--build): new argument to set the build triplet.
(ranlib): Prefer ${host_alias}-ranlib[.exe] if $build is different
to $host.
* doc/libtool.texi (Invoking ltconfig): Document --build option.
* NEWS: Note --build option.
* libtool.m4 (AC_PROG_LIBTOOL): added --with-pic flag
* ltconfig.in: new pic_mode variable and --prefer[-non]-pic flags,
fixed the strip check (reported by Keith Bostic <bostic@bostic.com>)
* ltmain.in (compile mode): build only PIC/non-PIC code depending
on pic_mode
* libltdl/README: document the supported dlopen interfaces
* doc/libtool.texi (tests): documented new tests
* tests/Makefile.am: added new tests
* tests/demo-pic.test: new test to test --with-pic
* tests/demo-nopic.test: new test to test --without-pic
* tests/build-relink2.test: variant of build-relink.test that
uses depdemo
* doc/PLATFORMS: 1.3b passes all tests on GNU/Linux,
FreeBSD (2.2.6 and 3.1)
* doc/libtool.texi: it's possible to link libtool libraries
using -L and -l, better documentation of uninstall and clean mode,
rename dummy to force, documented -no-fast-install,
AC_LIBLTDL_* must be called before AC_PROG_LIBTOOL,
documented hardcode_into_libs and striplib/old_striplib,
* ltconfig.in: search for strip program, added hardcode_into_libs
and striplib/old_striplib variables, set strip commands for GNU strip,
on FreeBSD >= 3.2 set hardcode_into_libs to yes,
fast-install mode doesn't work if hardcode_into_libs = yes
* ltmain.in: reimplemented hardcoding into libraries:
new relink mode, preserve all libtool args, relink libraries
when installing if necessary
added -no-fast-install flag, removed unnecessary `dlname'
initialization, use striplib/old_striplib for stripping libraries,
dlname is always soname or in library_names so we don't need
to handle different file names
regex (reported by Chris P. Ross <cross@eng.us.uu.net>)
* ltmain.in: support `-dlopen self', define lt_preloaded_symbols
if dlself != no
* doc/libtool.texi (Compile and Link mode): document it,
documented the -Wc, -Wl flags, libtool does also support non C
source code
* ltconfig.in: CR/LF fix for broken DJGPP bash
* ltmain.in: CR/LF fix for DJGPP
* TODO: -Wc, -Wl, implemented
* AUTHORS: changed my email address
* doc/libtool.texi: fix "wierd" typo :)
* ltmain.in: linking against convenience libraries was broken,
implemented the "-Wc," "-Wl," "-Xcompiler" "-Xlinker" flag for
compiler and linker-specific flags,
add -lc before we do the deplibs check
* ltconfig.in: linkopts -> compiler_flags for $CC and linker_flags
for $LD, link_all_deplibs=yes on IRIX
* NEWS: insert todays date alongside 1.3.1 release.
* Makefile.in: use gnu not gnits rules
* config.guess: synch with gnu common & apply Takabatake-san's
MIPS *000 patch.
* config.sub: synch with gnu common.
* TODO: Recommend libtool.m4 to be inserted in acinclude.m4. AIX
4.3.2.0 no longer fails on static dlopening. GNU DLD no longer
has to support .la files, since libltdl already does. Convenience
libraries and reloadable objects should be tested in the
testsuite. We could support some amount of control on the soname
of libraries.
* doc/libtool.texi: Notes about convenience libraries and
automake. Documented INCLTDL.
ltconfig if this is set.
(AC_LIBTOOL_WIN32_DLL): New macro required for libtool to attempt
a dll build on win32 hosts.
* ltconfig.in (--enable-win32-dll): new flag for the cli.
(cygwin*|mingw*|os2*, ltconfig_enable_win32_dll): if this is not set
to yes, then do not attempt to build shared libraries.
* doc/libtool.texi: document AC_LIBTOOL_WIN32_DLL.
* NEWS: noted new macro.
* THANKS: added Ossama Othman
* doc/libtool.texi: documented the new `clean' mode
* ltconfig.in: set need_version=no on OSF (reported by
Marcus Sundberg <mackan@stacken.kth.se>)
* ltmain.in: allow absolute non-existant -L paths,
always use output_objdir instead of objdir for temporary files,
delete generated temporary symbol lists,
don't add .la twice in the pseudo-library header,
implemented and documented clean mode (deletes libraries,
programs and object files and the files associated with them),
if build_libtool_libs=no and no static library is available,
try to link the program against the shared library,
don't add a statically linked library to the dependency_libs
* ltmain.in (help uninstall): added a missing backslash
after echo (reported by Ossama Othman)