* tests/*.test (CONFIG_SITE): Ultrix's /bin/sh fails on
`. /dev/null'. Set CONFIG_SITE to /dev/null/config/site, to make
sure we pick a non-existent file.
* ltconfig.in: Get rid of hardcode_into_libs=all; use
hardcode_into_libs=yes && shlibpath_overrides_runpath!=yes
instead.
[FreeBSD 3.[01]] (shlibpath_overrides_runpath): Set to no.
* ltmain.in: Likewise.
* tests/build-relink.test, tests/build-relink2.test: Adjust.
* ltconfig.in [with_gnu_ld] (archive_cmds, archive_expsym_cmds)
<solaris*, sysv5*, beos*>: Use compiler_flags instead of linker
flags.
Reported by Alex Hornby <alex@anvil.co.uk>
Gary V. Vaughan [Thu, 31 Aug 2000 17:23:44 +0000 (17:23 +0000)]
Move the echo detection code to a macro in libtool.m4. The code
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.
Gary V. Vaughan [Sun, 27 Aug 2000 10:50:23 +0000 (10:50 +0000)]
* ltconfig.in (with_gcc): Make the value of this option
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>
H.J. Lu [Thu, 20 Jul 2000 02:28:44 +0000 (02:28 +0000)]
* ltconfig.in: Check if -lc is necessary for building shared
libary. Set build_libtool_need_lc to indicate it.
* ltmain.in: Add -lc when building shared libary only if
necessary.
Gary V. Vaughan [Tue, 30 May 2000 00:13:11 +0000 (00:13 +0000)]
* ltconfig.in (netbsd*): archive_cmds and archive_expsym_cmds
were reversed with respect to definition of __ELF__.
From Keisuke Inoue <keisuke@csl.sony.co.jp>
Gary V. Vaughan [Mon, 29 May 2000 18:02:07 +0000 (18:02 +0000)]
* libtool.m4 (netbsd*): Use -L option to file_magic_cmd as for
freebsd (below).
* libtool.m4 (netbsd ELF): support file_magic.
From Dan Winship <danw@helixcode.com>.
* libtool.m4 (bsdi4*): Add -L option to bsdi4's file_magic_cmd
command. Under BSD/OS 4.1 several libraries are now symlinks
rather than regular files. Adding -L tells the file program
to follow the symlink.
Fred Fish [Mon, 29 May 2000 16:09:56 +0000 (16:09 +0000)]
Support AR=mwld AR_FLAGS='-xml -o' for PPC Beos:
* 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.
Gary V. Vaughan [Mon, 29 May 2000 15:11:52 +0000 (15:11 +0000)]
* ltconfig.in (echo): The following code actually prints the
double quotes -- so I removed them:
echo='printf "%sn"' $echo 't'
From Tuukka Toivonen <tutoivon@mail.student.oulu.fi>
Alexandre Oliva [Sun, 14 May 2000 08:23:57 +0000 (08:23 +0000)]
* libtool.m4 (AC_LIBLTDL_CONVENIENCE, AC_LIBLTDL_INSTALLABLE):
Pick LIBLTLD from top_builddir and INCLTDL from top_srcdir.
* mdemo/configure.in: Remove comments on
AC_LIBLTLD_CONVENIENCE.
Thomas Tanner [Wed, 3 May 2000 13:26:03 +0000 (13:26 +0000)]
* doc/libtool.texi (libltdl): fix typos,
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
Alexandre Oliva [Wed, 29 Mar 2000 06:48:06 +0000 (06:48 +0000)]
* ltmain.in (tmpdir): Do not accept an existing directory, and
force its mode to 700, for security reasons.
Reported by Joseph S. Myers <jsm28@cam.ac.uk>
Alexandre Oliva [Tue, 21 Mar 2000 12:39:33 +0000 (12:39 +0000)]
* ltconfig.in (variables_saved_for_relink): Set to `PATH
$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.
* ltconfig.in: added main() definition in compile
check for header `dlfcn.h' to fix link errors
when built with Sun Workshop Pro CC 4.2 (and perhaps
others).
Gary V. Vaughan [Thu, 24 Feb 2000 02:15:35 +0000 (02:15 +0000)]
* libltdl/ltdl.c (lt_find_dlhandle): Deleted. This was B.S.
far cleaner to use lt_dlforeach and lt_dlgetinfo.
* libltdl/ltdl.h: Prototype deleted.
* doc/libtool.texi: Documentation deleted.
* NEWS: annoncement deleted.
Thomas Tanner [Wed, 23 Feb 2000 23:10:05 +0000 (23:10 +0000)]
* ltmain.in: remove duplicates from deplibs, handle
interdependent libraries (e.g. -la -lb -la),
this requires adding deplibs in reverse order
* ltmain.in: link dlpreopened libraries before other libraries
(reported by Pavel Roskin)
* mdemo/Makefile.am: build and link libsub.la
* mdemo/sub.c: new file used by both dlopened modules
* mdemo/foo*: use sub() defined in libsub
* tests/dryrun.test: build libsub.la
* mdemo/Makefile.am: always link mdemo.static with -static
* mdemo/configure.in: ditto
* ltmain.in: fix dlopen/dlpreopening of objects
* ltmain.in (ILD): fix misplaced `continue' in -R* argument handler
* ltmain.in: merge duplicated code of clean and uninstall mode
* libtool.m4: recognize powerpc*linux* (reported by
Dirk A. Mueller <dmuell@gmx.net>)
Gary V. Vaughan [Wed, 23 Feb 2000 01:47:14 +0000 (01:47 +0000)]
* ltconfig.in (old_MAGIC, old_STRIP, old_reload_flag,
old_deplibs_check_method, old_file_magic_cmd): New variabes.
Treat these as old_CC etc.
(STRIP, MAGIC): Create and set these variables in the generated
libtool script.
Reported by Pavel Roskin <pavel_rosin@geocities.com>
Gary V. Vaughan [Tue, 22 Feb 2000 23:35:52 +0000 (23:35 +0000)]
* configure.in: Due to a bug in autoconf-2.13 implementation of
AC_SUBST, `AC_SUBST(FILE)' can never work. Use MAGIC as the
holder of the command to run in file_magic_cmd instead.
* ltconfig.in: s/FILE/MAGIC/g.
* libtool.m4 (AC_PROG_LIBTOOL): set MAGIC in the environment when
calling ltconfig.
(AC_PATH_MAGIC): renamed from AC_PATH_FILE.
(AC_PATH_TOOL_PREFIX): s/FILE/MAGIC/g. Also set file_magic_cmd
to '${MAGIC}' so that make can grok it.
* Makefile.am (libtool):
(clibtool): ditto.
Gary V. Vaughan [Mon, 21 Feb 2000 22:27:24 +0000 (22:27 +0000)]
* libltdl/ltdl.c (lt_find_dlhandle): New function.
(tryall_dlopen): Use it.
* libltdl/ltdl.h: Prototype it.
* doc/libtool.texi: Document it.
* NEWS: updated.
Gary V. Vaughan [Wed, 2 Feb 2000 22:43:14 +0000 (22:43 +0000)]
* NEWS: updated.
* doc/libtool.texi (Libltdl interface): Moved user defined module
loader documentation from here...
(Module loaders for libltdl) ...to here, and updated the text and
added examples.
* ltdl.m4 (AC_CHECK_FUNCS): check strcmp for lt_find_dlloader.
* libltdl/ltdl.h: Reformatted and commented for readability.
(struct lt_user_dlloader): New data type for passing
initialisation pointers to lt_add_dlloader.
(LTDL_ERROR_INVALID_LOADER): New error message when non loader
handles are passed to the user loader API.
(LTDL_ERROR_INIT_LOADER): New error when loader initialisation
fails.
(LTDL_ERROR_REMOVE_LOADER): New error when loader removal fails.
(lt_module_open_t): renamed from lt_lib_open_t.
(lt_module_close_t): renamed from lt_lib_close_t.
(lt_dlloader_exit_t): renamed from lt_dlloader_exit_t.
* libltdl/ltdl.c: Reordered builtin loaders so that the "dld"
loader no longer occurs before "dlopen" on some platforms and
after it on others.
(lt_dlloader_t): Moved here from ltdl.h, added a field,
"loader_name", for identifying the loader, and renamed from
lt_dltype_t. Renamed type variables to loader IFF of type
lt_dlloader_t.
(lt_module_t): Renamed from lt_syshandle. Renamed handle variables
to module IFF of type lt_module_t.
(LTDL_TYPE_TOP): Deleted. No longer required.
(sys_dl): Initialised as a struct lt_user_dlloader.
(sys_dl_init): Deleted. No longer required.
(sys_dl_exit): Ditto.
(sys_shl): Initialised as a struct lt_user_dlloader.
(sys_shl_init): Deleted. No longer required.
(sys_shl_exit): Ditto.
(sys_wll): Initialised as a struct lt_user_dlloader.
(sys_wll_init): Deleted. No longer required.
(sys_wll_exit): Ditto.
(sys_bedl): Initialised as a struct lt_user_dlloader.
(sys_bedl_init): Deleted. No longer required.
(sys_bedl_exit): Ditto.
(sys_dld): Initialised as a struct lt_user_dlloader.
(sys_dld_init): Deleted. No longer required.
(sys_dld_exit): Ditto.
(sys_presym): Initialised as a struct lt_user_dlloader.
(lt_mod_init_t): Moved to here from ltdl.h.
(lt_dlinit): Add builtin loaders using the user loader API.
(lt_dlexit): Unregister and free all loaders.
(lt_add_dlloader): New function to add a new module loader after the
loader specified in the argument.
(lt_remove_dlloader): New function to remove a module loader.
(lt_next_dlloader): New function for iterating over module loaders.
(lt_dlloader_name): Accessor function for name of dlloader.
(lt_find_dlloader): New function to get a reference to a registered
module loader.
(strcmp): static implementation incase the host has none.
(lt_dlgettypes, lt_dlsettypes): Removed.
Thomas Tanner [Wed, 2 Feb 2000 10:05:42 +0000 (10:05 +0000)]
* libltdl/ltdl.c: replace NULL with 0, remove unused system
and app_private pointers from lt_dlhandle_t
* libltdl/ltdl.c (presym_add_list): new preloaded symbols
don't need to be added to the end
Ossama Othman [Tue, 1 Feb 2000 05:42:00 +0000 (05:42 +0000)]
* configure.in (CONF_SUBDIRS): Added the `tagdemo' directory to
the list.
* ltcf-cxx.sh: Remove any residual `a.out' files resulting from
the "eval $output_verbose_link_cmds."
* ltconfig.in: Cleaned up nested quotes that were introduced with
the tags patch. This fixes part sh.test failure.
* ltmain.in: Check if "$run" is of zero length before creating a
`.lo' file. This fixes the dryrun.test failure.
Cleaned up nested quotes that were introduced with
the tags patch. This fixes another part sh.test failure.
Remove "$libobj" not "libobj."
Exit with an error if both $object_name and $old_object are set to
"none" in the corresponding `.lo' file. This should never happen.
Changed remaining uses of "mkdir" to "$mkdir."
Added dry run case to `.lo' case in link mode. This fixes the
link-2.test failure.
(object_name, old_object): Prepend the subdirectory the `.lo'
resides in to the object names extracted from the `.lo' file.
This fixes the build-relink2.test failure.
(tempemovelist): Use $echo "X..." instead of echo "..." since
$Xsed is being used. This fixes the last part of the sh.test
failure.
* tagdemo/Makefile.am, tagdemo/Makefile.in, tagdemo/README,
tagdemo/acinclude.m4, tagdemo/aclocal.m4, tagdemo/configure,
tagdemo/configure.in, tagdemo/foo.cpp, tagdemo/foo.h,
tagdemo/main.cpp, tests/tagdemo-conf.test tests/tagdemo-exec.test
tests/tagdemo-make.test tests/tagdemo-shared.test
tests/tagdemo-static.test: Added a new tagdemo that exercises
libtool's tagged configuration support found in the multilanguage
branch.
* tests/Makefile.am (TESTS): Added the tagdemo tests to the list.
* tests/quote.test: Updated to HEAD branch version. This fixes
the quote.test failure.
Ossama Othman [Mon, 31 Jan 2000 00:15:31 +0000 (00:15 +0000)]
* libtool.m4 (lt_cv_cc_needs_belf): Set the test language to C
prior to executing the test that checks if the C compiler needs
"-belf."
Reported by Chris Butler <chrisb@sandy.force9.co.uk>