Commit Graph

220 Commits

Author SHA1 Message Date
Paul Eggert
757646d28b Don't assume that egrep and fgrep exist. POSIX 1003.1-2001 no
longer requires them; you're supposed to use grep -E and grep -F
instead.  Also, don't assume that "test -a" works, since POSIX
doesn't require it.
* libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER, _LT_AC_LANG_C_CONFIG,
_LT_AC_LANG_CXX_CONFIG, AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,
AC_LIBTOOL_PROG_LD_SHLIBS):
egrep -> grep, when that makes no difference.
* libtoolize.in: Likewise.
* ltdl.m4 (AC_LTDL_SYMBOL_USCORE): Likewise.
* ltmain.in: Likewise.
* demo/Makefile.am (hc-direct): Likewise.
* pdemo/Makefile.am (hc-direct): Likewise.
* tests/build-relink.test, tests/build-relink2.test,
tests/cdemo-conf.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/demo-conf.test,
tests/demo-nofast.test, tests/demo-shared.test,
tests/demo-static.test, tests/depdemo-conf.test,
tests/depdemo-nofast.test, tests/depdemo-shared.test,
tests/depdemo-static.test, tests/hardcode.test,
tests/mdemo-conf.test, tests/mdemo-shared.test,
tests/mdemo-static.test, tests/pdemo-conf.test,
tests/tagdemo-conf.test, tests/tagdemo-shared.test,
tests/tagdemo-static.test: Likewise.
* libtool.m4 (AC_PROG_EGREP):
New macro, defined if Autoconf doesn't define.
(AC_PATH_TOOL_PREFIX, AC_PROG_LD_GNU): Use it.
(AC_PROG_LD, AC_PROG_NM, AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE):
Use shell pattern matching rather than egrep.
(AC_LIBTOOL_CONFIG): Set lt_EGREP and EGREP.
* demo/Makefile.am (SET_HARDCODE_FLAGS): Use sed instead of egrep.
* pdemo/Makefile.am (SET_HARDCODE_FLAGS): Likewise.
* tests/defs (EGREP, FGREP): New vars.
* ltmain.in: egrep -> $EGREP
* tests/assign.test, tests/demo-exec.test, tests/demo-inst.test,
tests/pdemo-exec.test, tests/pdemo-inst.test, tests/sh.test:
Likewise.
* tests/hardcode.test: fgrep -> $FGREP
* tests/f77demo-exec.test: test -a -> test &&
2002-11-19 09:42:39 +00:00
Kevin Ryde
4551d055b6 * doc/libtool.texi (Library tips): Note array dimensions. 2002-11-18 16:09:42 +00:00
Robert Boehne
f0378efa1f * doc/libtool.texi: Add --mode=* to every example using libtool. 2002-11-08 19:38:42 +00:00
Ossama Othman
d2c4f8f8fc * ltmain.in: add support for installing into temporary
staging area (e.g. 'make install DESTDIR=...')


* libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): restore setting
allow_undefined_flag=unsupported for cygwin and mingw.
(AC_LIBTOOL_PROG_LD_SHLIBS): ditto, for both "normal" gcc/ld
and for the (unmaintained?) MSVC case.


* doc/libtool.texi (Install mode): document new
-inst-prefix option.
2002-11-03 17:35:37 +00:00
Robert Boehne
900d3d6911 * ltmain.in: Print a warning if the mode is not specified.
* doc/libtool.texi: Document the change that the mode must be
specified.
2002-11-03 02:16:06 +00:00
Robert Boehne
4102e43461 * ltmain.in (-XCClinker): New flag passes a linking option
directly to the compiler driver without appending ${wl}.
2002-10-28 15:38:37 +00:00
Gary V. Vaughan
1d69b1c81b From Kevin Ryde <user42@zip.com.au>:
* doc/libtool.texi (Platform quirks): s/dependan/dependen/
* libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Ditto.
* TODO: Ditto.
2002-06-20 06:58:38 +00:00
Robert Boehne
58f6692c38 * doc/libtool.texi (C++ libraries): Finally updated to reflect
Libtool's support for C++.
2002-04-19 19:22:45 +00:00
Robert Boehne
5b4575cf0a With help from Michael Matz <matz@kde.org>:
* ltmain.in:  Add a new command line argument
--preserve-dup-deps for preserving duplicate
dependent libraries.
* libtool.texi: Document it.
2001-11-27 19:31:22 +00:00
Gary V. Vaughan
ee4a8bb8bd * libtool.m4 (AC_LIBLTDL_CONVENIENCE): s/INCLTDL/LTDLINCL/ for
consistency with gettext's INTLINCL.  Keep the old symbol too for
backwards compatibility.
(AC_LIBLTDL_INSTALLABLE): Ditto.
* doc/libtool.texi (Distributing libltdl):  Adjust documentation.
2001-09-30 10:20:29 +00:00
Gary V. Vaughan
8e368fb194 From Brad <brad@comstyle.com>:
* doc/libtool.texi: Remove obsolete references to ltconfig.
* tests/quote.test: s/ltconfig/$0/
2001-09-10 22:27:23 +00:00
Ossama Othman
354927a468 * libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): Corrected and improved
error message that is displayed when there was a problem
  compiling the C++ test program.  It still mentioned the now
  non-existent `ltcf-cxx.sh' file.

* doc/libtool.texi (LTDL_SET_PRELOADED_SYMBOLS): Removed
  parentheses at end of starting "defmac" line, as pointed out by
  makeinfo.
2001-08-19 20:20:25 +00:00
Gary V. Vaughan
8fe352b363 * libltdl/ltdl.c (rpl_argz_stringify): New fallback implementation.
* ltdl.m4 (AC_LTDL_FUNC_ARGZ):  Test for argz_stringify in libc.
* libltdl/ltdl.c (lt_argz_insertinorder): Renamed from
lt_argz_insert to make room for...
(lt_argz_insert): Wraps argz_insert with libltdl error handling.
(lt_dlpath_insertdir): Insert new path elements into an
argzized path.
(lt_dlinsertsearchdir): New function to insert new search
directories anywhere into user_search_path using the above.
(lt_dladdsearchdir): Rewritten to use lt_dlpath_insertdir.
* libltdl/ltdl.h (lt_dlinsertsearchdir): Prototype for export.
* doc/libtool.texi (Libltdl interface): Document it.
* NEWS: Updated,
2001-08-13 17:25:49 +00:00
Gary V. Vaughan
6c7f7fe214 * ltdl.m4: Bump serial number to 3.
(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.
2001-06-26 00:50:39 +00:00
Robert Boehne
f960e6e4ac * docs/libtool.texi: Updated the libltdl interface documentation
to bring it up to date.
2001-06-16 17:33:05 +00:00
Gary V. Vaughan
e943e1bf57 * doc/PLATFORMS: More updates from subscribers to
libtool@gnu.org.
2001-04-24 18:07:31 +00:00
Gary V. Vaughan
91f97d31eb * doc/PLATFORMS: Updated with more platforms successfully
tested by members of libtool@gnu.org.
2001-04-23 21:59:36 +00:00
Peter Eisentraut
3a75446c04 * doc/PLATFORMS: With this patch, freebsd4.3 passes the test
suite.
* libltdl/ltdl.c (lt_dlexit): Quit loop if only resident modules
are left.
2001-04-23 21:16:38 +00:00
Gary V. Vaughan
4ff38d2fd2 * doc/PLATFORMS: With this patch, my Solaris boxes now pass the
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.
2001-04-23 20:08:33 +00:00
Gary V. Vaughan
d2880280d8 * doc/PLATFORMS: Updated with various platforms successfully
tested by members of libtool@gnu.org.
2001-04-22 22:05:29 +00:00
Gary V. Vaughan
e35a1e9e50 From Nick Hudson <skrll@netbsd.org>
* doc/Makefile.am (libtool_TEXINFOS): Add fdl.texi so that it
is included in the distribution.
2001-04-08 00:29:06 +00:00
Gary V. Vaughan
b9cca8a2d6 * doc/libtool.texi (Multiple dependencies): A note about the
problems I've reintroduced by reverting the my patch of 2001-03-31.
2001-04-05 23:43:39 +00:00
Gary V. Vaughan
066ce19719 * NEWS: Updated.
* 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.
2001-02-23 22:58:20 +00:00
Gary V. Vaughan
61510e8475 * NEWS: Updated.
* doc/libtool.texi (User defined module data): Updated.
* libltdl/ltdl.c (lt_dlhandle_next): New function.
* libltdl/ltdl.h (lt_dlhandle_next): Prototypes.
2001-01-08 01:52:12 +00:00
Gary V. Vaughan
bd96d1928a * NEWS: Updated.
* 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.
2001-01-05 09:33:39 +00:00
Gary V. Vaughan
1d8f975749 From vvv@vsu.ru:
* 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.
2000-12-23 16:30:43 +00:00
Sascha Schumann
181f4634b7 * libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Use the HPUX 10.20
methods to check for library dependencies on HPUX 11.
2000-12-16 03:51:00 +00:00
Michael Schmitz
51fdd772c6 * libtool.m4: Port to *-sni-sysv4 (Reliant Unix)
* README: added Reliant Unix to hte list of supported platforms
* doc/PLATFORMS: added note on tests on Reliant Unix
2000-12-14 02:53:45 +00:00
Gary V. Vaughan
4ae2e67203 * doc/libtool.texi (Libltdl interface): Add documentation.
* 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.
2000-12-02 23:50:54 +00:00
Gary V. Vaughan
99daa5464b * libltdl/Makefile.am (libltdl_la_LDFLAGS): increment the version
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.
2000-11-21 08:53:34 +00:00
Paul Berrevoets
99d3e1b7bd * ltmain.in: Some versions of expr respond with "0" if a
regexp fails to match.
2000-11-20 22:03:43 +00:00
Gary V. Vaughan
e637d738c9 * ltdl.c: Relegate non-POSIX-compliant symbols (e.g. those
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.
2000-11-19 01:23:17 +00:00
Gary V. Vaughan
f24599a87c * doc/fdl.texi: New file. The license for distributing the
libtool manual.
* doc/libtool.texi: Reference the new license.
2000-11-11 11:40:55 +00:00
Gary V. Vaughan
3c45f87229 * doc/libtool.texi: Corrected nother attack of CRLF line
endings.
2000-10-30 23:31:45 +00:00
Robert Boehne
a701df2d0a * docs/libtool.texi: Added pointers to documentation
of Hewlett-Packard, Compaq Tru64 and IBM AIX systems.
2000-10-27 20:04:28 +00:00
Gary V. Vaughan
b030600990 * doc/PLATFORMS: Updated.
* 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.
2000-09-21 00:10:41 +00:00
Gary V. Vaughan
2235e08e8a * doc/libtool.texi: Removes references to ltconfig, and a small
amount of tidying up to compensate.
2000-09-15 17:04:04 +00:00
Gary V. Vaughan
0e6d7942ca * doc/PLATFORMS: Updated. 2000-09-07 07:28:39 +00:00
Mo DeJong
a58c335936 typo fix from Mo DeJong 2000-07-20 01:59:15 +00:00
Thomas Tanner
264e859d07 * NEWS: update
* doc/libtool.texi (libltdl): rename lt_(find|next|add|remove)_dlloader
  to lt_dlloader_*
* libltdl/ltdl.c: ditto
* libltdl/ltdl.h: ditto, add declaration of lt_dlloader_(find|remove)
2000-05-11 15:17:27 +00:00
Thomas Tanner
ff61ea2971 * 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

* ltmain.in (ILD): tidy up, add some comments
2000-05-03 13:26:03 +00:00
Thomas Tanner
508df1487b * NEWS: reformatting
* ltmain.in (ILD): add extra convenience library scanning pass

* ltmain.in (ILD): accept -R flags for libraries, too

* ltmain.in (ILD): correclty merge the dlpreopened libraries
  with deplibs

* ltmain.in (install mode): remove directories from filenames
  before relinking (reported by Elrond <Elrond@Wunder-Nett.org>)

* doc/libtool.texi (libltdl): rename Library -> Lesser,
  clarify exception clause
* libltdl/ltdl.c, libltdl.h (License): ditto
2000-03-26 23:01:20 +00:00
Gary V. Vaughan
e884b6d673 * 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.
2000-02-24 02:15:35 +00:00
Gary V. Vaughan
65e997bb2c * libltdl/ltdl.c (lt_find_dlhandle): New function.
(tryall_dlopen): Use it.
* libltdl/ltdl.h:  Prototype it.
* doc/libtool.texi: Document it.
* NEWS: updated.
2000-02-21 22:27:24 +00:00
Gary V. Vaughan
2ca76b52bd * libltdl/ltdl.h (lt_dlloader_data_t): New type for loader
instance data.
(lt_user_dlloader): New lt_dlloader_data_t field.
(lt_module_open_t): Add lt_dlloader_data_t parameter.
(lt_module_close_t): Add lt_dlloader_data_t parameter.
(lt_find_sym_t): Add lt_dlloader_data_t parameter.
(lt_dlloader_exit_t): Add lt_dlloader_data_t parameter.
* libltdl/ltdl.c:  A sprinkling of /*ARGSUSED*/ markers to
reassure lint that the unused arguments are intentional.
(lt_dlloader_t): New lt_dlloader_data_t field.
(lt_dlloader_data): New function to return the contents of the
dlloader_data field.
(sys_dl_open): Take an additional lt_dlloader_data_t argument.
(sys_dl_close): Ditto.
(sys_dl_sym): Ditto.
(sys_dl): Initialise lt_dlloader_data_t field.
(sys_shl_open, sys_shl_close, sys_shl_sym, sys_shl): As above.
(sys_wll_open, sys_wll_close, sys_wll_sym, sys_wll): As above.
(sys_bedl_open, sys_bedl_close, sys_bedl_sym, sys_bedl): As
above.
(sys_dld_open, sys_dld_close, sys_dld_sym, sys_dld): As above.
(presym_init, presym_exit, presym_open, presym_close, presym_sym,
presym): As above.
(lt_dlinit): Call presym_init with additional argument.
(lt_dlexit): Call dlloader_exit method with additional argument.
(tryall_dlopen): Call module_open method with additional argument.
(lt_dlclose): Call module_close method with additional argument.
(lt_dlsym): Call find_sym method with additional argument.
(lt_add_dlloader): Initialise dlloader_data field.
(lt_remove_dlloader): Call dlloader_exit method with additional
argument.
2000-02-07 18:17:21 +00:00
Gary V. Vaughan
f802484346 * 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.
2000-02-02 22:43:14 +00:00
Thomas Tanner
112b7cb29f * 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

* libltdl/ltdl.c (lt_dlgetdata, lt_dlsetdata): removed
* libltdl/ltdl.h: ditto
* doc/libtool.texi (libltdl interface): ditto
2000-02-02 10:05:42 +00:00
Thomas Tanner
332942dd32 * ltmain.in: support -dlopen/dlpreopen for libraries
* NEWS: updated
* TODO: updated
* ltmain.in: rename dlopen to dlopen_support
* ltconfig.in: ditto
* doc/libtool.texi: ditto

* ltmain.in: check whether libraries are moved out of $libdir,
  replace .a and .lib with .$libext, .o and .obj with .$objext
2000-02-01 16:43:34 +00:00
Gary V. Vaughan
e5fbd005ca * libltdl/ltdl.h (ltdl_error_table): Added missing error code, and
fixed typo in another code.
* doc/libtool.texi (Libltdl interface): Added missing @end
clause.
2000-01-28 01:33:33 +00:00
Gary V. Vaughan
c1f19d38df * NEWS: Updated.
* doc/libtool.texi (Libltdl interface): Document new entry
points.
* libltdl/ltdl.c (lt_dladderror): New function to add a user
defined error message to the tables used by lt_dlerror().
(lt_dlseterror):  New function to allow setting of last_error by
user modules.
(ltdl_error_strings): New preprocessor generated table of internal
error diagnostic strings.
(user_error_strings): New internal list of registered user error
diagnostic strings.
(throughout!): Use error messages from ltdl_error_strings.
* libltdl/ltdl.h (ltdl_error_table): New macro to tabulate
internal diagnostic error strings alongside enum keys.
2000-01-27 16:13:07 +00:00