2
0
mirror of git://git.savannah.gnu.org/libtool.git synced 2025-03-19 15:50:25 +08:00

163 Commits

Author SHA1 Message Date
Alexandre Oliva
deac33cf8e * ltmain.in: silence ``unbug'' :-) detected by sh.test 1999-03-15 16:53:39 +00:00
Thomas Tanner
7378519a1b * TODO: libltdl is now documented
* doc/libltdl.texi (linking with installed libtool libraries):
  fixed typo
* doc/libltdl.texi (libltdl): added documentation for building
  libtool modules and examples how to embed libltdl
* ltmain.in: don't ignore user-specified run-paths (fixed it
  at the right place)
1999-03-14 11:18:37 +00:00
Alexandre Oliva
d4d597e0ed * ltmain.in (deplibs_check_method=none): discard -L and -R
switches when testing whether deplibs contains some library
1999-03-14 10:56:23 +00:00
Alexandre Oliva
e15156d206 * ltmain.in (exclude_expsyms): exclude symbols before sorting,
otherwise only the sorted list will have them excluded
1999-03-14 06:00:49 +00:00
Alexandre Oliva
6518dbe0dd oops, cut&paste error 1999-03-13 23:18:49 +00:00
Alexandre Oliva
eae67ea2bf * 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>
1999-03-13 23:09:57 +00:00
Alexandre Oliva
0762ab0a48 * tests/sh.test: look for $Xsed' without $echo "X...'
* ltconfig.in, ltmain.in: fixed a few such occurrences
1999-03-13 22:20:33 +00:00
Alexandre Oliva
d80906a5d0 * ltmain.in (-static, -all-static): revert March 11's patch, I was
barking up the wrong tree
1999-03-13 21:18:33 +00:00
Alexandre Oliva
d3d44b7803 * 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
1999-03-11 22:55:48 +00:00
Alexandre Oliva
d3fefd9d6c * ltmain.in (-static, -all-static): set dlopen_self to
$dlopen_self_static regardless of link_static_flag or pic_flag
1999-03-11 22:46:07 +00:00
Alexandre Oliva
16d8b07615 * ltmain.in: FreeBSD bug that needs symbol table compiled with
-fPIC is fixed in release 3.1; use it only for 2.* and 3.0
1999-03-11 22:38:51 +00:00
Thomas Tanner
72db861fe7 * ltmain.in: when building a library it doesn't make
sense to remove a relinked program ("lt-" prefix)
1999-03-11 22:25:01 +00:00
Alexandre Oliva
f126b86fc8 * 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
1999-03-11 16:11:05 +00:00
Thomas Tanner
6d988bc854 * ltmain.in: delete the old output files (incl. the relinked binary)
before linking.
1999-03-11 12:31:46 +00:00
Alexandre Oliva
5c59d096e1 * ltmain.in: properly create an export file for a program,
avoiding error messages about not finding it
1999-03-11 01:21:57 +00:00
Alexandre Oliva
b933475f97 * 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
1999-03-11 01:13:56 +00:00
Alexandre Oliva
7618652fd8 * ltmain.in: $output_objdir/$objdir/ -> $output_objdir/lt- 1999-03-09 23:04:14 +00:00
Alexandre Oliva
d917d79899 * 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
1999-03-08 21:55:25 +00:00
Alexandre Oliva
2f024c7555 * 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
1999-03-08 21:21:55 +00:00
Alexandre Oliva
8edf7d315b * ltmain.in (hardcode_libdir_separator, compile_rpath,
finalize_rpath): only substitute hardcode_libdir_flag_spec if
hardcode_libdirs is non-empty
1999-03-08 20:55:57 +00:00
Thomas Tanner
0984f95203 * 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
1999-03-08 15:56:45 +00:00
Alexandre Oliva
a47816df28 * ltmain.in (compile_command): append finalize search path to
compile search path
1999-03-07 23:32:34 +00:00
Alexandre Oliva
e7762d50c6 * 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
1999-03-07 22:46:52 +00:00
Alexandre Oliva
39088c67ab * 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
1999-03-07 22:34:30 +00:00
Thomas Tanner
d71a558fe0 * 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
1999-03-07 15:27:23 +00:00
Alexandre Oliva
fadc0b85a8 * 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.
1999-03-06 19:26:20 +00:00
Alexandre Oliva
a3ea7d4616 * ltmain.in (file_magic_regex): sed 10q' is faster than 11,$d' 1999-02-24 10:44:55 +00:00
Thomas Tanner
3a381a67c0 * 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
1999-02-22 21:17:56 +00:00
Alexandre Oliva
635040153e * ltmain.in: added missing mkdir $progdir for on-demand executable 1999-02-22 20:55:45 +00:00
Alexandre Oliva
231f7fd15f * 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.
1999-02-22 20:47:30 +00:00
Alexandre Oliva
f9953ae926 * 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
1999-02-22 19:43:36 +00:00
Alexandre Oliva
6f4f1a3734 * ltmain.in: fix typos in my last change (s/ocmpile/compile/) 1999-02-22 14:31:53 +00:00
Thomas Tanner
b965590d78 * 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
1999-02-21 15:38:02 +00:00
Alexandre Oliva
1287eb4f7e * ltmain.in: avoid duplication of -L switches, it sometimes breaks
IRIX 5.2's linker
1999-02-20 19:38:26 +00:00
Alexandre Oliva
f890f1be12 * ltmain.in: fixes for export-symbols dry-run 1999-02-20 17:53:19 +00:00
Alexandre Oliva
ea10f428c4 * 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
1999-02-20 16:42:07 +00:00
Gary V. Vaughan
a6d55dd9c1 * ltconfig.in (export_symbols_cmds): renamed from
export_symbols_cmd.
(cygwin, mingw): Be sure to compile the ltdll.c object before
extracting the exported symbol list.  Extract only the names
of the exported symbols from the def file [otherwise we might
run into trouble with -export-symbols-regex].
(archive_expsym_cmds): Regenerate the def file from the symbol
export list.
(delay_variable_subst): New sed expression to allow us to delay
evaluation of $foo in a double_quote_subst evaluated variable by
using $.
* ltmain.in (export_symbols_cmds): evaluate each ~ delimitted cmd
separately.
* doc/libtool.texi (libtool script contents): new paragraph to
explain the difference between _cmd and _cmds suffixes for
variable names.
(export_symbols_cmds): renamed from export_symbols_cmd.
1999-02-19 17:41:51 +00:00
Gary V. Vaughan
4fba23e37b * ltmain.in (version_type): Oops. Irix versioning implies that
major version numbers are 1 based (not zero based).  Fixed.
1999-02-18 15:24:03 +00:00
Gary V. Vaughan
4d2a114a68 * ltmain.in (version_type): Implement irix versioning.
* ltconfig.in (irix{5,6}*): Use new irix shared object versioning.
* TODO: remove irix versioning from TODO list.
1999-02-18 15:14:41 +00:00
Gary V. Vaughan
918d2d10d7 * ltmain.in (impgen.c): Added a new embedded C file that can be
used under win32 to extract a def file (symbol export list) from a
dll that has none.  Code to use it might need to wait for the ILD
merge before it will be useful...
1999-02-18 14:46:46 +00:00
Thomas Tanner
01e414be0d * TODO: updated
* autogen: only libltdl needs autoheader
* doc/libtool.texi (link mode): documented -export-symbols-regex
  and updated -export-symbols
* doc/libtool.texi (script contents): documented
  always_export_symbols, export_symbols_cmd, exclude_expsyms,
  include_expsyms, dlopen and dlopen_self
  more detailed description of need_lib_prefix
* ltconfig.in: a "'" was missing in the default value
  of export_symbols_cmd
* ltmain.in: implemented -export-symbols-regex
1999-02-18 11:38:36 +00:00
Alexandre Oliva
d56d56eafc * ltconfig.in: (freebsd2*, sunos4*, exclude_expsyms): exclude
_GLOBAL_OFFSET_TABLE_
* ltmain.in: implement exclude_expsyms with egrep
1999-02-17 13:02:41 +00:00
Thomas Tanner
c361d1cfeb * cdemo/Makefile.am: renamed *foo1 to *foo, removed $(MATH_LIB)
* cdemo/foo1.c: renamed to foo.c
* libltdl/ltdl.c: eliminated lt_dltype, in presym_open():
  search for @PROGRAM@ if filename == 0, in lt_dlopen():
  fixed bug for filename == 0
* libltdl/ltdl.h: use __P macro for lt_dlmalloc/free
* libtool.m4: new macro AC_LIBTOOL_DLOPEN: checks for dlopen
  and dlopen(NULL) support
* ltconfig.in: added new variables dlopen and dlopen_self,
  --enable-dlopen[-self] flags for AC_LIBTOOL_DLOPEN
* ltmain.in: use dlopen[_self], dlpreopen files if there's no
  dlopen support, build lt_preloaded_symbols only if
  -dl[pre]open was used, include program symbols if -export-dynamic
  was specified and there's no dlopen(NULL) support
* mdemo/configure.in: use AC_LIBTOOL_DLOPEN
* mdemo/main.c: demonstrate lt_dlopen(0)
1999-02-15 16:46:55 +00:00
Thomas Tanner
6d34bd85f0 * *demo/Makefile.am: use $(MATHLIB)
* *demo/configure.in: use AC_CHECK_LIBM
* doc/libtool.texi: renamed file_magic_command to file_magic_cmd,
  renamed archive_sym_cmds to archive_expsym_cmds
* ltconfig.in: ditto
* ltmain.in: ditto
* libltdl/ltdl.c: use lt_dlmalloc/free
* libltdl/ltdl.h: define lt_dlmalloc/free
* libtool.m4: added AC_CHECK_LIBM macro
* ltconfig.in: renamed archive_sym_cmds to archive_expsym_cmds,
  added always_export_symbols, export_symbols_cmd, exclude_expsyms,
  include_expsyms, removed archive_cmds for cygwin/mingw and AIX,
  on Solaris store the exported symbols list in objdir
* ltmain.in: allow -export-symbols for modules, use thread_safe flag,
  add include_expsyms to the exported symbols
1999-02-13 15:43:04 +00:00
Alexandre Oliva
9d3dd65937 * ltmain.in: don't try to read objdir/libname.la before it is
created!
1999-02-12 16:24:15 +00:00
Alexandre Oliva
fcf1aa777f * ltmain.in: create libname.lai at link time, not at install time,
Reported by Akim Demaille <demaille@inf.enst.fr>
1999-02-12 13:13:54 +00:00
Thomas Tanner
17915a088c * autogen: libltdl needs autoheader
* demo/Makefile.am: renamed hell.debug to hell.static
  (we're demonstrating static linking, not debugging)
* tests/demo*: ditto
* doc/libtool.texi (libltdl): documented new lt_dlopen(NULL)
  feature
* libltdl/acconfig.h: required for config.h
* libltdl/configure.in: use config.h
* libltdl/ltdl.c: use config.h, support lt_dlopen(NULL)
  (returns a handle for the program itself)
* ltconfig.in: minor reformatting
* ltmain.in: in lt_preloaded_symbols always define
  the program's symbols first, for -export-dynamic list all
  program symbols together, -export-symbols was broken for
  programs, minor reformatting
* mdemo/Makefile.am: renamed mdemo.debug to mdemo.static
* tests/mdemo*: ditto, mdemo.test was completely broken
1999-02-11 23:48:25 +00:00
Alexandre Oliva
3fe7947205 * ltconfig.in: new config.guess returns *-*-cygwin now instead of
*-*-cygwin32.  sed -e 's%(cygwin|mingw)32%1%g' ltconfig.in
* ltmain.in:   sed -e 's%(cygwin|mingw)32%1%g' ltmain.in

* ltconfig.in (hardcode_libdir_flag_spec, allow_undefined_flag,
archive_cmds, archive_sym_cmds, old_archive_from_new_cmds):
removed duplication of config by assuming that `test $with_gcc =
yes' implies gnu ld, otherwise MSVC++ (which I haven't tested
since I inheritted the code from Ian Lance Taylor btw!) is implied.
1999-02-03 11:34:52 +00:00
Gary V. Vaughan
176e4be3c5 * ltmain.in: Reverted this change of Alexandre's from the
1999-01-25; "don't try to use .o instead of .lo just because
there's no PIC flag.  It loses if --disable-static, and there's
not much point if we're referring to the same file anyway...",
because not all linkers will accept .lo object names.
* ltmain.in: In the case where --disable-static is specified (as
noted in Alexandre's log entry), we just link some .o files to
prevent the original error.
Reported by Andrey Slepuhin <pooh@msu.ru>
1999-01-28 13:33:33 +00:00
Thomas Tanner
a5f6b87d4a * cdemo/configure.in: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL
* demo/configure.in: likewise
* depdemo/configure.in: likewise
* libltdl/configure.in: likewise
* mdemo/configure.in: likewise
* libltdl/ltdl.c: in find_module() check whether libdir is defined,
  tryall_dlopen(): move deallocation of an already opened handle
  to lt_dlopen(), allocate the directory in lt_dlopen() dynamically,
  minor cleanups, fixed memory leak (name)
* libtool.m4: renamed all AM_ macros to AC_ and added aliases for
  compatibilty, updated AC_SYS_NM_PARSE (no undefined symbols,
  don't count the symbols)
* ltconfig.in: added thread_safe_flag_spec (not used yet),
  added generic variable for linker options "linkopts" in
  all archive_cmds
* ltmain.in: added -thread-safe flag (unused)
1999-01-27 00:49:06 +00:00