Alexandre Oliva [Sun, 14 Mar 1999 03:14:29 +0000 (03:14 +0000)]
* ltconfig.in (aix3*, aix4*): GNU ld on AIX is very broken: it
cannot create working shared libraries. Print a warning
suggesting the user not to use it and disable shared libraries.
Alexandre Oliva [Sun, 14 Mar 1999 00:34:34 +0000 (00:34 +0000)]
* ltconfig.in (file_magic_test_file): new variable; if set, it
will be used as an argument for $file_magic_cmd to test whether
the regex in deplibs_check_method matches its output
(file_magic_cmd): use full pathnames whenever possible
Alexandre Oliva [Sat, 13 Mar 1999 23:09:57 +0000 (23:09 +0000)]
* ltconfig.in (sys_lib_dlsearch_path_spec): new variable, that
lists the system *run-time* search path. Listed directories are
not implicitly hard-coded into executables.
* ltmain.in: use it, but *never* discard -R flags
* doc/libtool.texi: document it
* NEWS: ditto
Reported by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Alexandre Oliva [Thu, 11 Mar 1999 22:55:48 +0000 (22:55 +0000)]
* ltconfig.in: (global_symbol_pipe) extract symbol tag from the
output of NM too
(global_symbol_to_cdecl): new variable; convert the output of
global_symbol_pipe to valid C declarations; on HP/UX, convert
text symbols to function declarations
* libtool.m4: similar modifications
* doc/libtool.texi: document new variable
* ltmain.in: use global_symbol_to_cdecl to generate lt_dlpreopened
symbols; avoid extracting symbol lists from dlpreopened files
twice; do not filter symbols from dlpreopened libraries
* TODO: fixed HP/UX dlpreopening problem
Alexandre Oliva [Thu, 11 Mar 1999 16:11:05 +0000 (16:11 +0000)]
* ltconfig.in: set dlopen_* variables to unknown when appropriate
* ltmain.in: only emit warning about lack of AC_LIBTOOL_DLOPEN if
*all* dlopen_* variables are set to unknown
Alexandre Oliva [Thu, 11 Mar 1999 01:13:56 +0000 (01:13 +0000)]
* libtool.m4 (AC_LIBTOOL_DLOPEN): just set lt_dlopen=yes
(AC_LIBTOOL_SETUP): if lt_dlopen=yes, add --enable-dlopen to
libtool_flags; drop --enable-dlopen-self
* ltconfig.in: perform all the dirty work of testing for dlopening
support, because we need platform-dependent equivalents for
-export-dynamic, for self dlopening, and -static, for static self
dlopening
(dlopen_self_static): new configuration variable that is set to
yes only if static programs can dlopen themselves
* ltmain.in (-static, -all-static): dlopen_self=dlopen_self_static
Alexandre Oliva [Thu, 11 Mar 1999 00:58:19 +0000 (00:58 +0000)]
* libltdl/configure.in (libltdl_cv_need_uscore): do not assume
dlfcn.h and LTDL_LAZY exist; use LTDL_GLOBAL and LTDL_LAZY_OR_NOW.
This test is likely to fail if self-dlopening does not work,
especially because we do not link the program with
-export-dynamic. Let's just hope that platforms whose symbol
names start with underscores will also accept underscores for
dlopen. We should probably use libtool to compile and link this
test, so that we can use -export-dynamic.
Alexandre Oliva [Wed, 10 Mar 1999 21:23:37 +0000 (21:23 +0000)]
* libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE):
avoid introducing multiple --enable options when re-running
config.status
* libltdl/configure.in: if enable_ltdl_* is not set, assume no
* configure.in: if enable_ltdl_install is not set, enable it
Alexandre Oliva [Wed, 10 Mar 1999 20:39:03 +0000 (20:39 +0000)]
* libltdl/configure.in: only assume implicit installation if
libltdl was libtoolized. If not, print a warning message
suggesting the use of --enable-ltdl-install or of one of the
AC_LIBLTDL_* macros.
Alexandre Oliva [Wed, 10 Mar 1999 20:24:40 +0000 (20:24 +0000)]
* libtool.m4 (AC_LIBTOOL_SETUP): new macro, that does all the
configure-work that AC_PROG_LIBTOOL used to do; add
--cache-file=$cache_file to libtool_flags
(AC_PROG_LIBTOOL): call AC_LIBTOOL_SETUP, save the cache, run
ltconfig and reload the cache
* configure.in: run AC_LIBTOOL_SETUP, then set LIBTOOL_FLAGS to
libtool_flags
* ltconfig.in: support --cache-file switch. If it is used, load
the cache in the beginning and save it just before terminating
Alexandre Oliva [Wed, 10 Mar 1999 18:12:02 +0000 (18:12 +0000)]
* configure.in: create ltconfig and ltmain.sh at the end of
config.status, if they do not exist. This fixes the bootstrap
problem reported by Erez Zadok <ezk@cs.columbia.edu>
Thomas Tanner [Wed, 10 Mar 1999 17:23:28 +0000 (17:23 +0000)]
* NEWS: ordered by importance
* Makefile.am: set LIBTOOL_FLAGS when generating libtool
* configure.in: check for dlopen support and set LIBTOOL_FLAGS
accordingly
Thomas Tanner [Wed, 10 Mar 1999 16:16:03 +0000 (16:16 +0000)]
* configure.in: fix spacing for --disable-ltdl-install,
always configure libltdl, add libltdl/acinclude.m4 to
ACINCLUDE_M4_LIST, disable installation of libltdl if necessary
* libltdl/Makefile.am: set version info for libltdl.la
* libltdl/configure.in: don't check whether
enable_ltdl_convenience/install was set so that libltdl
can be used as independent package (libltdl.tar.gz) without
the need to use --enable-ltdl*
* libltdl/ltdl.c: minor cleanups, allocate the line cache
dynamically (lt_dlopen)
Alexandre Oliva [Wed, 10 Mar 1999 14:33:22 +0000 (14:33 +0000)]
* libltdl/ltdl.c (lt_dlopen): some preprocessors choke if the `#'
of `#define' is not in column 1; let's go back to fortran! :-)
Add #undefs too, to avoid potential warnings or errors.
Alexandre Oliva [Tue, 9 Mar 1999 23:09:01 +0000 (23:09 +0000)]
* libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE):
renamed convenience libltdl, dropped toinst hack for installable
* libltdl/Makefile.am: ditto
* libltdl/configure.in: ditto; abort if none of the macros is used
Alexandre Oliva [Tue, 9 Mar 1999 22:57:26 +0000 (22:57 +0000)]
* Makefile.am (install-data-hook): install libltdl as a directory,
not as a tar-file, so that we do not modify the build tree at make
install time
* libtoolize.in (ltdl, ltdl_tar): update
Alexandre Oliva [Tue, 9 Mar 1999 22:02:09 +0000 (22:02 +0000)]
* libtool.m4 (AC_LIBLTDL_INSTALLABLE, AC_LIBLTDL_CONVENIENCE):
new macros
* NEWS: ditto
* libltdl/configure.in: if none of the new macros or configure
arguments are used, warn and build convenience library only
* libltdl/Makefile.am: conditionally build convenience libltdl.la
* mdemo/configure.in: use AC_LIBLTDL_CONVENIENCE
* mdemo/Makefile.am: refer to @LIBLTDL@
Alexandre Oliva [Mon, 8 Mar 1999 21:55:25 +0000 (21:55 +0000)]
* ltmain.in: extract symbols from program objects to nlist first,
then translate them to the export_symbols format. Now it works,
but it appears to be needlessly extracting the symbol list from
dlpreopened libraries twice
Alexandre Oliva [Mon, 8 Mar 1999 21:21:55 +0000 (21:21 +0000)]
* ltmain.in: temporarily disable dlopen_self when linking with
-static or -all-static, until we figure out how to test whether it
works at configure time
* TODO: remember to fix this later
Alexandre Oliva [Mon, 8 Mar 1999 21:08:09 +0000 (21:08 +0000)]
* tests/build-relink.test: when hell is expected to fail, run it
within a subshell and redirect stderr to stdout, so that dynamic
linker errors are only printed in verbose mode
Alexandre Oliva [Mon, 8 Mar 1999 18:20:26 +0000 (18:20 +0000)]
* libltdl/Makefile.am (@TOINST@/libltdl.la): do not hide the
command that creates the TOINST directory; remove `-o $@' from the
LINK command, $(LINK) already contains it.
Alexandre Oliva [Mon, 8 Mar 1999 17:40:42 +0000 (17:40 +0000)]
* libltdl/Makefile.am, libltdl/configure.in, mdemo/Makefile.am:
libltdl must not be renamed; if there's a problem with the install
option, let's fix it, not just work around it by breaking code of
users of the convenience library
Thomas Tanner [Mon, 8 Mar 1999 15:56:45 +0000 (15:56 +0000)]
* TODO: updated (libltdl build problem fixed)
* doc/libtool.texi (libltdl interface): removed the line which
promised that lt_dlopen will return NULL if it can't resolve all
symbols
* libltdl/Makefile.am, libltdl/configure.in: fixed build problem:
renamed the convenience library to libltdlc.la and the
installed version to libltdl.la
* ltmain.in (wrapper script): replaced the "T" suffix of the program
file name with a "lt-" prefix
* mdemo/Makefile.am: use libltdlc.la
* tests/Makefile.am, tests/demo-nofast.test: added demo to
test --enable-fast-install=no
Alexandre Oliva [Sun, 7 Mar 1999 23:45:22 +0000 (23:45 +0000)]
* tests/Makefile.am (TESTS): run hardcode before build-relink
trashes libhello.la
* tests/hardcode.test (need_prefix): set to yes so that _inst is
not removed
Alexandre Oliva [Sun, 7 Mar 1999 22:46:52 +0000 (22:46 +0000)]
* ltmain.in (relink_command): do not prepend cd `pwd` to it, the
scripts already enters the correct directory, and expanding the
pathname would prevent the build tree from moving
Alexandre Oliva [Sun, 7 Mar 1999 22:34:30 +0000 (22:34 +0000)]
* ltconfig.in (enable_fast_install): force it to no only if we
need relink; in the other cases, set it to needless
* ltmain.in (fast_install): if needless, set relink_command empty
* doc/libtool.texi (fast_install, shlibpath_overrides_runpath):
document the new behavior
Thomas Tanner [Sun, 7 Mar 1999 15:27:23 +0000 (15:27 +0000)]
* TODO: scheduled some items for next release/future
* demo/configure.in: use AC_LIBTOOL_DLOPEN
* libtool.m4: added AC_ENABLE/DISABLE_FAST_INSTALL macro
* ltconfig.in: added --disable-fast-install flag
* ltmain.in: partially reverted Alexandre's patch and implemented
on-demand linking in such a way that the old developer-friendly
linking style is optional,
don't hardcode library paths that are in the system search path,
fixed a typo in lib_search_path,
implemented -export-symbols-regex for programs
Alexandre Oliva [Sat, 6 Mar 1999 20:24:57 +0000 (20:24 +0000)]
* libltdl/ltdl.c (LTDL_LAZY_OR_NOW): renamed from LTDL_NOW; prefer
LAZY loading because it's much faster and NOW is apparently
partially broken on FreeBSD
Reported by Archie Cobbs <archie@whistle.com>
Alexandre Oliva [Sat, 6 Mar 1999 19:26:20 +0000 (19:26 +0000)]
* ltmain.in (freebsd): compile symbol table file with pic_flag
only on FreeBSD and when not static linking; it's been causing
trouble on platforms such as OpenBSD.
Gary V. Vaughan [Fri, 26 Feb 1999 16:17:43 +0000 (16:17 +0000)]
* ltconfig.in (sub_uncdrive): removed. This won't work with
the next version of cygwin.
(sub_uncdir): removed. We use <drive>:/path/to/executable now.
* libtool.m4 (AC_PROG_LD): removed sub_uncdrive and sub_uncdir.
Thomas Tanner [Thu, 25 Feb 1999 06:46:55 +0000 (06:46 +0000)]
* TODO: added items for next alpha release, ILD etc.
* libltdl/ltdl.c: removed unnecessary check from presym_sym,
fixed bug in lt_dlclose, allow lt_dlopenext(NULL),
set deplibs for lt_dlopen(NULL)
Thomas Tanner [Mon, 22 Feb 1999 21:17:56 +0000 (21:17 +0000)]
* ltconfig.in (dlopen, dlopen_self): default is unknown
* ltmain.in: fixed -dlopen self, print a warning
if -dlopen is used without AC_LIBTOOL_DLOPEN
* mdemo/Makefile.am: use -dlopen self
Alexandre Oliva [Mon, 22 Feb 1999 20:47:30 +0000 (20:47 +0000)]
* ltmain.in: create on-demand executable as $progdir/$$-$program,
and rename it to $progdir/$program only when it's finished, to
avoid race conditions. We can still get the program linked
multiple times, if multiple instances are started simultaneously
and the program does not exist, but they are very unlikely to
interfere with each other. There's still a possibility that one
process removes the $program another has just created, and doesn't
replace it before the other tries to run it, in a system whose
`mv' is not atomic, so it will $rm then $mv, but so what? :-)
Locking files have been avoided to prevent dead-locks in case they
are left over after a reboot or crash.
Alexandre Oliva [Mon, 22 Feb 1999 19:43:36 +0000 (19:43 +0000)]
* ltmain.in: remove on-demand executable in the proper place, and
just warn if it can't be removed; add wrapper code to test whether
the install-executable is newer than the build-executable, to
relink it when it appears to be out-of-date
Alexandre Oliva [Mon, 22 Feb 1999 19:24:55 +0000 (19:24 +0000)]
* libltdl/configure.in: check for dld.h
* libltdl/ltdl.c: include dld.h
(dld_open) it's spelled memory_error, not no_memory_error
Reported by Stefan Burstroem <f94sbu@efd.lth.se>
Thomas Tanner [Sun, 21 Feb 1999 15:38:02 +0000 (15:38 +0000)]
* libltdl/ltdl.c (lt_dlopen): use newhandle instead of handle
when dlopening the executable
* libtool.m4 (AC_LIBTOOL_DLOPEN): removed the redundant "yes: "
prefix for lt_cv_dlopen, renamed lt_cv_dlopen_LIBS
to lt_cv_dlopen_libs (more consistent)
* ltmain.in: implemented -dl[pre]open self, necessary for
lt_dlopen(NULL), generation of exported symbols was broken
Alexandre Oliva [Sat, 20 Feb 1999 16:42:07 +0000 (16:42 +0000)]
* ltconfig.in (shlibpath_overrides_runpath): new variable;
determines whether LD_LIBRARY_PATH or equivalent can be used to
override a hard-coded library search path; default to unknown
(linux-gnu*): set it to no
(solaris*, sunos4*): set it to yes
* ltmain.in (build_libdirs_flags, build_libdirs, build_rpath): if
shlibpath_overrides_runpath is not yes, arrange that wrapper
scripts create, on demand, programs that use uninstalled libraries
* doc/libtool.texi: document it