Commit Graph

489 Commits

Author SHA1 Message Date
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
40e8332d43 * TODO: removed ILD, soon to be merged, and added convenience
libraries docs
1999-02-22 20:11:08 +00:00
Alexandre Oliva
e8a588bb4f * ltconfig.in (irix5*, irix6*, shlibpath_overides_runpath): yes 1999-02-22 19:53:59 +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
f95e55ad09 * 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>
1999-02-22 19:24:55 +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
b5e4a1b24d * ltconfig.in (freebsd*, finish_cmds): expand objformat here
Reported by Vladimir Kushnir <kushn@mail.kar.net>
1999-02-20 18:47:11 +00:00
Vladimir Kushnir
fc594366ce * ltconfig.in (freebsd-elf*, need_version, need_lib_prefix): no
(freebsd-elf*, library_names_spec): add $libname.so instead of
$libname.so$versuffix; add $libname$release.so
1999-02-20 18:39:54 +00:00
Alexandre Oliva
83aa376aa2 * doc/libtool.texi: remove ticks from menu items; it breaks TeX
Reported by Erez Zadok <ezk@cs.columbia.edu>
1999-02-20 18:28:05 +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
Alexandre Oliva
2dc0082648 * libtool.m4 (AC_LIBTOOL_DLOPEN): check for dlopen in libc before
trying in dl.  Add the actual dlopening type to lt_cv_dlopen, and
add any needed libraries to lt_cv_dlopen_LIBS.  Add test for
MS-Windows' LoadLibrary.  Check whether a program can dlopen
itself only if we really have dlopen(), not some equivalent
function, but leave room for testing with other mechanisms.
(AC_PROG_LIBTOOL): assume some form of dlopen, but not
dlopen(NULL), is available if AC_LIBTOOL_DLOPEN is not used, for
backward compatibility.
1999-02-20 15:07:54 +00:00
Archie Cobbs
7666c21afd * libltdl/ltdl.c (lt_dlopen): use newhandle instead of handle
where appropriate, when dlopening a non-libtool library
1999-02-20 05:23:31 +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
Alexandre Oliva
843f6e33f3 * ltconfig.in (ld_shlibs): move -soname and similar flags to the
end of archive_cmds and archive_expsym_cmds, so as to prevent
gcc's collect2 from inserting an object file between -soname and
the library name
1999-02-18 20:58:14 +00:00
Alexandre Oliva
d29ebe0d6b * ltconfig.in (archive{,_sym}_commands): Be careful not to
re-export the dll entry points DllMain@12, _cygwin_dll_entry@12 and
_cygwin_noncygwin_dll_entry@12 to avoid bugs with the wrong entry
function being called with inter-dll dependencies.
Reported by DJ Delorie <dj@delorie.com>
* THANKS: Added DJ Delorie, since his code inspired the impgen.c
program and because he has patiently answered all of the
irritating dll and win32 questions I have fired at him.
1999-02-18 18:50:24 +00:00
Alexandre Oliva
90324ded00 * ltconfig.in (openbsd*, netbsd*, library_names_spec): append
alternate name without ${release}, otherwise build fails when
-release is used
1999-02-18 17:57:29 +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
Alexandre Oliva
e906347209 * libltdl/ltdl.c (lt_dlmalloc, lt_dlfree): SunOS' cc can't cope
with argument lists, we __P even in the definition
1999-02-17 11:56:27 +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
Gary V. Vaughan
b5f5cb9c41 * demo/dlmain.c (_WIN32): The lt_symlist structure is now const,
so my original horrible temporary win32 hack no longer worked.
Here is a new horrible temporary hack to prevent helldl from SEGVing
on win32.  I will fix this properly when we figure out how to do
data exports from dlls.
1999-02-15 14:23:02 +00:00
Alexandre Oliva
2e6d9dc7a7 * libtool.m4 (AC_CHECK_LIBM): do not set MATHLIB or AC_SUBST it,
this has a negative side-effect of causing automake to add MATHLIB
to every single Makefile.  Let's use plain AC_CHECK_LIB, so that
LIBS get set, until we find a better alternative
* *demo/Makefile.am: remove $(MATHLIB)
1999-02-14 03:04:51 +00:00
Alexandre Oliva
e578da5e16 * libltdl/configure.in: add a DESCRIPTION argument to AC_DEFINEs
where appropriate, so as to get rid of acconfig.h
* libltdl/acconfig.h: removed
1999-02-13 19:55:58 +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
Gary V. Vaughan
ec379bc0dc * libltdl/ltdl.h (_LTDLL_EXTERN): libltdl is no longer linked as a
shared library, so the _declspec's were preventing the linker from
resolving symbols on win32.  They have been removed now.
1999-02-12 17:35:39 +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
Alexandre Oliva
b37f61a8d4 * libltdl/ltdl.c (tryall_dlopen): strcmp filenames was reversed 1999-02-12 12:59:32 +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
ebd5366e02 * ltconfig.in (irix5*, irix6*, osf3*, osf4*): do not use
-set_version in archive_cmds if verstring is empty
(irix6*, shlibpath_var, sys_lib_search_path-spec,
deplibs_check_method): set appropriate values depending on
selected ABI, -32, -n32 or -64, as set in LD by libtool.m4
(uts4*): remove dot between .so and versuffix
1999-02-10 16:27:52 +00:00
Alexandre Oliva
bc11e86b35 * ltconfig.in (irix5*, irix6*, deplibs_check_method): use
file_magic for inter-library dependency tracking
1999-02-08 22:01:31 +00:00
Alexandre Oliva
b103f3d203 * ltconfig.in (irix5*, hardcode_libdir_separator): set it to a
colon, because on IRIX 5 only the last -rpath switch prevails, and
it can be a list of colon-separated directories.  This change will
affect irix6 too, but that's not a problem.
1999-02-08 21:33:17 +00:00
Alexandre Oliva
2e55a128fd * ltconfig.in (irix5*, library_names_spec): add soname_spec,
otherwise we can't dlopen
1999-02-08 09:33:38 +00:00
Thomas Tanner
36f9c4b71d * ltconfig.in: according to Marcus Sundberg <mackan@stacken.kth.se>
HP/UX, IRIX, OpenBSD, Digital Unix and SunOS support
  need_version=no and need_lib_prefix=no,
  fixed a bug in Solaris' archive_sym_cmds
1999-02-08 00:10:28 +00:00
Alexandre Oliva
54ee3fb2b1 * libtool.m4 (ac_cv_sys_global_symbol_pipe): accept TAB in
addition to space as separator, and allow more than one space
between the symbol code and the symbol name; HP/UX's nm, for
example, uses two spaces
* ltconfig.in (global_symbol_pipe): ditto
(bsdi4, deplibs_check_method): variable name was misspelled
* libltdl/configure.in (libltdl_cv_preloaded_symbols): rewrite
test, so as not to depend on the way global_symbol_pipe is
initialized; the current test would get false positives, as
global_symbol_pipe was initialized `x=""', not `x='
1999-02-04 15:09:14 +00:00
Alexandre Oliva
425940e0ab * libltdl/ltdl.c (find_module): initialize filename if dir is NULL
Reported by Godmar Back <gback@cs.utah.edu>

1999-02-04  Godmar Back  <gback@cs.utah.edu>

* libltdl/ltdl.c (lt_dlopenext): missing space for terminator when
allocating memory for shlib_ext
1999-02-04 12:39:24 +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
Alexandre Oliva
b579b04417 * ltdl.c (lt_dlopenext): tmp would be trashed if shlib_ext was
longer than 3 characters
1999-02-03 07:55:40 +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
Alexandre Oliva
baeca5233a * libtoolize.in: search for A[MC]_PROG_LIBTOOL, not
AM_PROG_LIBTOOL
Reported by Jeff Garzik <jgarzik@pobox.com>
1999-01-27 19:38:13 +00:00
Gary V. Vaughan
831dbd149e * THANKS: Now that we have a policy, applied it to the existing
list.  This in no way demeans the work of those people removed
from the THANKS file, who are still credited in the ChangeLogs and
without who's work, libtool would not work so well on many
platforms, but serves to highlight the outstanding and continued
contribution the remaining people have made.  And I quote, "We
reserve THANKS for people who have made major contributions, and
leave the credit to the others for the ChangeLog only."
1999-01-27 13:41:08 +00:00
Gary V. Vaughan
a503e958aa * THANKS: added Sam Vilain. 1999-01-27 11:51:08 +00:00
Gary V. Vaughan
9cc1cd7f09 * ltconfig.in ($echo): When using printf to replace echo the shell
expands %sn to %sn.  Changed to use "%sn" (with quotes).
Reported by Sam Vilain <sam.vilain@nz.unisys.com>
1999-01-27 11:14:35 +00:00
Alexandre Oliva
0e57eec185 * libltdl/ltdl.c (find_file): fix endless loop condition
(find_module): filename allocation was off by 1
1999-01-27 07:41:15 +00:00
Alexandre Oliva
dc07a72c9a * libltdl/Makefile.am (distclean-local): renamed from
distclean-hook, that didn't work
1999-01-27 07:22:04 +00:00
Alexandre Oliva
09616d6977 * libltdl/ltdl.c (lt_dlopen, non-.la): find_file now returns 0 on
failure
1999-01-27 06:55:40 +00:00
Alexandre Oliva
9b2ff91e8e * Makefile.am (ltconfig, ltmain.sh): some broken makes don't like
macros in targets; replace $(srcdir) with @srcdir@
* configure.in (ACINCLUDE_M4_LIST): same problem; expand $srcdir
1999-01-27 06:23:47 +00:00
Alexandre Oliva
e54b1b6916 * libltdl/Makefile.am (@TOINST@/libltdl.la): if installation is
enabled, create to-be-installed libltdl.la within @TOINST@
directory
(noinst_LTLIBRARIES): even if installation is enabled, build
convenience libltdl.la, otherwise builds of random packages may
fail if the user happens to enable installation
(distclean-hook): wipe out $(TOINST)
* libltdl/configure.in: set TOINST and LIBLIBS as appropriate;
don't set NOINSTLIBS any more
* mdemo/Makefile.am: use libltdl.la
1999-01-27 06:15:21 +00:00
Alexandre Oliva
bf0865ed59 * libltdl/ltdl.c (find_file): oops, filenamesize was miscomputed 1999-01-27 06:05:44 +00:00
Alexandre Oliva
c2db1b3525 * libltdl/ltdl.c (find_file): allocate filename dynamically 1999-01-27 05:42:21 +00:00
Alexandre Oliva
ad4654e94a * libltdl/configure.in (AC_PROG_LIBTOOL): automake does not
recognize it and fail, better keep using AM_PROG_LIBTOOL until the
next release of automake
* demo/configure.in, cdemo/configure.in: ditto
* depdemo/configure.in, mdemo/configure.in: ditto
1999-01-27 05:36:49 +00:00
Alexandre Oliva
77eba97d29 * libltdl/ltdl.c: make all global strings char[], not char*; check
that all calls to malloc() are properly cast
(strdup, strchr, strrchr, trim, free_vars): declare as inline
(find_module): allocate filename dynamically; support null dir
(free_vars): free dir and name only if non-null
(lt_dlopen): keep dir as NULL if not given; fix expression that
calculated the size of name; only free and name if non-null
(lt_dlopenext): allocate tmp dynamically
1999-01-27 04:31:23 +00:00
Alexandre Oliva
7d71a524e0 * configure.in (pkgdatadir): expand ${PACKAGE} at configure-time,
just like automake does
1999-01-27 03:07:15 +00:00
Alexandre Oliva
ec63fb9c6b * configure.in (pkgdatadir): define pkgdatadir explicitly, and
* Makefile.am (aclocaldir): do not set it explicitly, automake
does already
1999-01-27 03:04:34 +00:00
Alexandre Oliva
818e264bc7 * configure.in (TIMESTAMP): use mkstamp here too 1999-01-27 02:40:39 +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
Alexandre Oliva
880755c68b * ltconfig.in (LTCONFIG_VERSION): damn!, adding TIMESTAMP doesn't
ltmain.sh to be updated every time ChangeLog changes, better
revert it
1999-01-26 20:59:01 +00:00
Alexandre Oliva
d7b2f64304 * ltconfig.in (LTCONFIG_VERSION): add TIMESTAMP, remove
explicit quotes and add it to the list of variables to quote
1999-01-26 20:50:58 +00:00
Alexandre Oliva
0573e2ca3b * ltmain.in: reworded `dropped inter-library dependencies'
message, and added a warning about inter-library dependencies even
for non-module builds
1999-01-26 19:21:29 +00:00
Gary V. Vaughan
0b8d821a54 * Makefile.am (install-data-hook): Don't show the if expression
that tests for gzip with a conditional error message; just do it
quietly and show the error if it fails, or the next action if it
succeeds.
1999-01-26 15:22:52 +00:00
Gary V. Vaughan
062f499ae0 * configure.in: It seems Alexandre accidentally removed the
AC_SUBST(pkgdatadir) line recently which breaks libtoolize.
Reverted that small change.
1999-01-26 14:45:24 +00:00
Alexandre Oliva
60d43b8236 * libltdl/ltdl.c (find_module): test old_name and dlname for NULL,
not len==0
1999-01-25 20:58:14 +00:00
Alexandre Oliva
3a2cf81834 * libltdl/configure.in (libltdl_cv_objdir): yes, appending the "/"
in configure.in was much simpler
* libltdl/ltdl.c (objdir): ditto
1999-01-25 15:59:56 +00:00
Alexandre Oliva
f1d990faa4 * libltdl/ltdl.c (objdir): string collation isn't portable; strcat
"/" explicitly.  Or should this be moved to configure.in?
1999-01-25 15:48:45 +00:00
Thomas Tanner
2ad9832810 * libltdl/ltdl.c: allocate the variables in lt_dlopen() dynamically 1999-01-25 10:54:23 +00:00
Alexandre Oliva
01d7b2340e * ltmain.in (file_magic): use egrep instead of expr to support
more general regular expressions
(file_regex): remove it; the name is misleading, it's not used
* ltconfig.in, doc/libtool.texi: ditto
* ltconfig.in (linux-gnu*, deplibs_check_method): extend regex to
support `LSB dynamic lib' in the output of `file'
Reported by Scott D. Heavner <sdh@po.cwru.edu>
1999-01-25 10:01:23 +00:00
Alexandre Oliva
961df577e4 * ltmain.in (dependency_libs, xrpath): add -R switches to
dependency_libs only just before creating the .la file; they
should not be passed to the C compiler or linker at
library-creation time, since we don't know whether it is supported
1999-01-25 08:06:09 +00:00
Alexandre Oliva
5ad1c933cf * ltconfig.in (freebsd2.2*, hardcode_minus_L): for FreeBSD 2.2.6,
this must be `no'
1999-01-25 07:22:03 +00:00
Alexandre Oliva
6d87da784d * mkstamp: move the sed script to extract revision and date
information into a separate shell-script, so that we can break
lines between commands; FreeBSD's sed doesn't like `;' after `t'
Reported by Axel Thimm <Axel.Thimm@physik.fu-berlin.de>
* Makefile.am: use mkstamp
* THANKS: added Axel Thimm
1999-01-25 06:57:48 +00:00
Alexandre Oliva
d10273f38c * ltmain.in: 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...
1999-01-25 06:22:23 +00:00
Alexandre Oliva
5d11f38809 * ltmain.in (pass_all=none, droppeddeps): set only if deplibs was
non-empty
1999-01-25 04:04:18 +00:00
Thomas Tanner
d045d768ee * libltdl/ltdl.c: minor bugfixes, append a "/" the search
directory only if necessary
* ltconfig.in: added support for FreeBSD >= 3.0
  (patch from Kurt D. Zeilenga)
* THANKS: added Kurt D. Zeilenga
1999-01-24 20:43:52 +00:00
Thomas Tanner
05ba011011 * doc/libtool.texi (libltdl): list supported dlopen mechanisms,
added function lt_dlopenext(), removed reference to
  LTDL_PRELOADED_SYMBOLS in LTDL_SET_PRELOADED_SYMBOLS
* libltdl/ltdl.c: partially reverted Alexandre's dynamic string
  allocation change (it was not necessary and the code was unreadable),
  cleanups, removed usr_search_path_size, renamed usr_search_path
  to user_search_path, in find_module() also check for moved
  modules, merged find_file() and find_library(),
  added lt_dlopenext(), in lt_dladdsearchdir() no longer reset
  the search path if 'search_dir' == NULL and don't use realloc()
  (might not be available on all platforms),
  removed __P((void)) in the declaration of lt_dlgetsearchpath()
* libltdl/ltdl.h: added lt_dlopenext()
* ltconfig.in: AIX archive commands were broken,
  fixed a MAJOR bug in global_symbol_pipe which caused
  "demo-shared.test;demo-make.test" to fail (libtool must not extract
  undefined symbols of libraries, i.e. symcode must not contain 'U')
* tests/Makefile.am (clean-local): "make distclean" in cdemo, too
1999-01-24 14:24:17 +00:00
Alexandre Oliva
92ee62a8dc * Makefile.am (ltconfig, ltmain.sh): add ChangeLog Revision to
TIMESTAMP
* configure.in: get values of PACKAGE and VERSION set by
AM_INIT_AUTOMAKE, and extract only TIMESTAMP from the ChangeLog
1999-01-22 18:04:51 +00:00
Alexandre Oliva
6fffb233f1 * libltdl/ltdl.c (lt_dlopen): if we're reusing a previously opened
handle, don't reset its name nor add it to the list, and free the
name we have allocated
Reported by Edouard G. Parmelan <Edouard.Parmelan@France.NCR.COM>
1999-01-22 17:08:26 +00:00
Alexandre Oliva
b5f7c8b282 * Makefile.am (ltconfig, ltmain.sh, TIMESTAMP): let's not assume
anything about the format of the date, just that it does not
contain `$'
1999-01-22 15:19:51 +00:00
Gary V. Vaughan
5bd624040c * configure.in (date): echo the version number during
configuration, and show $date for cvs versions.
1999-01-22 14:09:12 +00:00
Gary V. Vaughan
675c928466 * Makefile.am ($(srcdir)/ltconfig): Oops. cvs co keyword
expansion ate the sed expression! Changed sed separator to '%'
because there are '/' in the date.  Added missing '(' to search
expression.  Inserted a null string to stop cvs from expanding it
next time =)O|
($(srcdir)/ltmain.sh): ditto.
1999-01-22 13:27:51 +00:00
Alexandre Oliva
3b6142f95e * Makefile.am (TSDEPS_DIST): dist-time dependencies for timestamps
(timestamps, update-timestamps): check whether TSDEPS_DIST are
up-to-date and update ltconfig and ltmain.sh if needed
(ltconfig, ltmain.sh): depend on TSDEPS; replace @TIMESTAMP@ with
the Date tag in the ChangeLog
(TSDEPS): empty unless overridden by update-timestamps
* ltconfig.in, ltmain.in (TIMESTAMP): append timestamp to most
references to VERSION
1999-01-22 12:21:05 +00:00
Gary V. Vaughan
b69cf9e6cd * ltmain.in (ild): Revert the change which allowed libtool to
link libraries with dependencies on .la libs.
* NEWS: Removed reference to win32, incase 1.3 ships before
ild is ready.
* doc/PLATFORMS: Removed i686-pc-cygwin32, for the same reason.
* doc/libtool.texi: Removed win32 refs, for the same reason.
1999-01-22 12:13:58 +00:00
Alexandre Oliva
4f58a28c53 * ltmain.in (Xsed): add 1 to Xsed definition that goes into
temporary wrapper scripts
* libtool.m4: we don't have Xsed here, expand it manually
Reported by Pavel Roskin <pavel_roskin@geocities.com>
1999-01-22 10:26:47 +00:00
Edouard G. Parmelan
bcdffabfe9 * ltmain.in (finalize_hardcode_libdirs, finalize_rpath): in
platforms that use -rpath, programs must be finalized at
installation time, otherwise build-tree programs will
prefer installed libraries over build-tree ones
1999-01-22 10:01:10 +00:00
Alexandre Oliva
f212b8d7df * mdemo/Makefile.am (../libltdl/libtool): if it does not exist,
the sub-make for libltdlc.la will take care of it, but we must at
least provide an empty rule for it, otherwise the sub-make will
never run
1999-01-22 09:39:15 +00:00
Alexandre Oliva
340552894a * demo/configure.in, demo/Makefile.am (DLPREOPEN): reverted; it
didn't make any difference.
1999-01-22 06:37:26 +00:00
Gary V. Vaughan
7badfd3dcf * THANKS: Added Chris Laas <golem@MIT.EDU>
From Chris Laas <golem@MIT.EDU>
* ltmain.in (compile):  corrected a typo in compile mode which
caused "gcc: unrecognized option -c-fPIC" errors due to a missing
space.
1999-01-21 17:37:42 +00:00
Alexandre Oliva
981a66b4df * libltdl/configure.in: reintroduce code to detect native library
extension
* libltdl/ltdl.c (lt_dlopen): if a .la file name is given, that's
all.  Otherwise, lt_dlopen now tries to append .la first.  If this
fails, it tries the given filename, and, at last, tries to append
the native library extension to the given filename.
* doc/libtool.texi (lt_dlopen): explain new lookup strategy
1999-01-21 05:08:23 +00:00
Alexandre Oliva
24c33318ba * libltdl/ltdl.c: major rewrite to avoid almost all fixed-size
buffers; only `tmp' in lt_dlopen remained.  But the code got ugly
:-(
1999-01-21 04:27:26 +00:00
Alexandre Oliva
81df2fb6e3 * ltconfig.in (linux-gnu*, finish_cmds): remove erroneous backslash 1999-01-21 04:16:22 +00:00
Alexandre Oliva
0506cf492e * demo/configure.in: set DLPREOPEN to -dlopen if we don't have
shared libraries
* demo/Makefile.am (DLPREOPEN): use instead of -dlpreopen
(STATIC): use $(STATIC), not @STATIC@
* mdemo/Makefile.am (STATIC): ditto
* demo/Makefile.am, mdemo/Makefile.am (STATIC): do not use
1999-01-21 04:09:39 +00:00
Alexandre Oliva
72abadcd76 * tests/demo-shared.test, tests/demo-static.test: new tests
* tests/mdemo-shared.test, tests/mdemo-static.test: ditto
* tests/Makefile.am: ditto
* doc/libtool.texi: document them
* demo/Makefile.am, mdemo/Makefile.am (@STATIC@): do not use
-static unconditionally, it can't work with --disable-static
* demo/configure.in, mdemo/configure.in: check whether libtool was
configured to build static libraries and, if not, set STATIC to an
empty string
1999-01-21 03:50:07 +00:00
Alexandre Oliva
f038450910 * ltmain.in (module, droppeddeps): if libtool could not satisfy
all dependencies of a module, it will only build a static version
of it, and display a warning message
1999-01-21 03:32:53 +00:00
Erez Zadok
d172a16cb3 * ltconfig.in (aix4*, with_gcc, archive_cmds): fix typo in Andrey
Slepuhin's last patch
1999-01-20 22:17:39 +00:00
Alexandre Oliva
96f5eb0883 * Makefile.am (@DIST_MAKEFILE_LIST@): work around Ultrix /bin/sh bug
* tests/nomode.test (must specify a MODE): ditto
Reported by Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* THANKS: Added Rainer Orth
1999-01-20 22:12:51 +00:00
Rainer Orth
fadbda341d * ltconfig.in: No known version of Solaris 2 hardcoded -L paths. 1999-01-20 21:59:03 +00:00
Erez Zadok
7821def39b * ltmain.in: s/n\'t/ not/
* doc/PLATFORMS: updates for sunos4/m68k and aix
1999-01-20 20:45:50 +00:00
Andrey Slepuhin
bf5399d059 1999-01-20 Andrey Slepuhin <pooh@msu.ru>
* ltconfig.in (aix4*): check for reworked collect2, always pass
	-bnoentry option to linker when building a shared library
1999-01-20 20:35:54 +00:00
Alexandre Oliva
951fc9f244 * ltmain.in (file_magic): follow soft-links before running `file'
on the candidate library; try to avoid entering endless loop
	Suggested by Nix <nix@esperi.demon.co.uk>
1999-01-20 20:24:54 +00:00
Alexandre Oliva
a58e998b44 * ltconfig.in (linux*, solaris*, bsdi4*, sys_lib_search_path):
remove expansion of $LD_LIBRARY_PATH
	* ltmain.in (lib_search_path): append the expansion of $shlibpath_var
	* doc/libtool.texi: document it
1999-01-20 19:48:44 +00:00
Alexandre Oliva
8fbb1535e6 * THANKS: Added Steven Schultz
1999-01-20  Steven M. Schultz <sms@wlv.iipo.gtegsc.com>

	* ltconfig.in (bsdi4*, check_shared_deplibs_method): file_magic
	(bsdi4*, sys_lib_search_path): add /shlib and other dirs
1999-01-20 19:30:13 +00:00
Alexandre Oliva
5053e11d81 * cdemo/main.c (main): use K&R definition syntax
* mdemo/main.c (test_dl, main): ditto
	(test_dl): casts return value of lt_dlsym to appropriate types
1999-01-20 18:42:10 +00:00
Alexandre Oliva
19ddb9d9b2 * ltmain.in (dlsyms): #define const to nothing if not __STDC__ 1999-01-20 18:15:19 +00:00
Alexandre Oliva
6935dcde62 * ltconfig.in (global_symbol_pipe): #define const to nothing if
not __STDC__
1999-01-20 18:10:18 +00:00
Alexandre Oliva
79089aad81 * demo/dlmain.c (main): cast s->address to the appropriate pointer
types, otherwise StunOS4's cc refuses to compile it
1999-01-20 18:06:47 +00:00
Alexandre Oliva
8d22e74b08 * ltconfig.in (sunos4*, without_gnu_ld, with_gcc, archive_cmds):
add -fPIC, because libgcc is multilibbed, and we want the PIC
 	version of it for shared libraries, otherwise ld complains
1999-01-20 17:47:48 +00:00
Alexandre Oliva
ca91b60c01 * demo/dlmain.c (main): add missing const to declaration of name 1999-01-20 17:05:29 +00:00
Alexandre Oliva
c914286f6a updated TODO 1999-01-20 13:45:21 +00:00
Alexandre Oliva
c50684a06e * libltdl/ltdl.c (find_module): remove the libdir argument, and
try to  open library only as old_name and dir/dlname
	(lt_dlopen): use `installed' variable in .la file to decide
	whether to use libdir or objdir
1999-01-20 13:08:50 +00:00
Alexandre Oliva
3770203057 * demo/configure.in (AC_C_CONST): added, for portability
* mdemo/configure.in (AC_C_CONST): ditto
	* libltdl/configure.in (AC_C_CONST, AC_C_INLINE): ditto
	* libltdl/ltdl.c (LTDL_FILENAME_MAX): use FILENAME_MAX if defined
	(FILENAME_MAX): replace all explicit uses with LTDL_FILENAME_MAX
	(presym_free_symlists, trim): don't return void, for portability
	(lt_dlgetsearchpath): replace (void) with __P((void))
1999-01-20 13:01:27 +00:00
Alexandre Oliva
ee93981385 * ltmain.in (compile): when compiling both PIC and non-PIC, write
the PIC object to .libs/.lo and only rename it to .lo after
 	compiling the .o, to avoid fooling make dependencies
1999-01-20 12:44:50 +00:00
Alexandre Oliva
bce83af75f * mdemo/main.c (LTDL_PREOPENED_SYMBOLS): remove 1999-01-20 12:28:43 +00:00
Gary V. Vaughan
2d957688f4 freebsd-elf deplibs port 1999-01-20 12:15:35 +00:00
Alexandre Oliva
c2d159681b * TODO: should we also build a `static' copy of a convenience
library out of .o files?
1999-01-20 10:21:01 +00:00
Alexandre Oliva
2a98311f7b * ltconfig.in (bsdi4*, netbsd*, uts4*, library_names_spec,
soname_spec): removed duplicate dot before $major
	Reported by Steven M. Schultz <sms@wlv.iipo.gtegsc.com> (bsdi4*)
1999-01-20 10:07:04 +00:00
Alexandre Oliva
3f48b18b50 * THANKS: added Manfred Weichel
* ltconfig.in (sysv5*): same as sysv4.3*
1999-01-20 09:47:57 +00:00
Alexandre Oliva
9b0e18ca34 * libltdl/ltdl.c (lt_dlopen): properly detect error condition when
full pathname of non-libtool library is provided
1999-01-20 09:11:29 +00:00
Alexandre Oliva
8c83b51788 * libltdl/configure.in (libltdl_cv_preloaded_symbols,
HAVE_PRELOADED_SYMBOLS): test whether we support -dl*open
	* libltdl/ltdl.c (!HAVE_PRELOADED_SYMBOLS, lt_preloaded_symbols):
	define it to an empty list if libtool won't generate it, so as to
	avoid link errors.  This will cause silent dlopening failures, but
	maybe this is better than failing to link the program...
1999-01-20 09:06:46 +00:00
Alexandre Oliva
c74935fc47 * libltdl/ltdl.h (LTDL_PRELOADED_SYMBOLS): remove it; better to
declare lt_preloaded_symbols
	* doc/libtool.texi (LTDL_PRELOADED_SYMBOLS): ditto
1999-01-20 08:58:51 +00:00
Alexandre Oliva
f11c3e83c5 * ltmain.in (dlpredeps): removed, reverting 1999-01-17's change 1999-01-20 08:39:52 +00:00
Alexandre Oliva
508d8894a0 * libltdl/Makefile.am (Makefile): depend on libtool 1999-01-19 23:56:32 +00:00
Alexandre Oliva
a4191f6ab5 * ltmain.in (lt_preloaded_setup): function added to symbol list
source file to work around FreeBSD problem
1999-01-19 23:52:19 +00:00
Alexandre Oliva
8d2800fa9a * Makefile.am (check-local): depend on libltdl/Makefile 1999-01-19 23:50:26 +00:00
Alexandre Oliva
27767b945e * mdemo/Makefile.am (mdemo_LDFLAGS, mdemo_LDADD): moved -dlopen
flags to LDADD
	* doc/libtool.texi (Using Automake): how to add -dlopen to LDADD
1999-01-19 23:45:01 +00:00
Gary V. Vaughan
4e2bd756eb reapply andreys patch correctly. 1999-01-19 14:58:29 +00:00
Gary V. Vaughan
e66dd53d15 track deplibs for hardcode_action switch 1999-01-19 14:04:16 +00:00
Alexandre Oliva
ec1248eb7b * libtool.m4 (LIBTOOL_DEPS): set it
* libltdl/configure.in (LIBTOOL_DEPS): AC_SUBST it
	* libltdl/Makefile.am (libtool): use it
	* doc/libtool.texi (AM_PROG_LIBTOOL): document it
1999-01-18 13:30:43 +00:00
Alexandre Oliva
086c174e8f * Makefile.am (libltdl.tar.gz): don't create it as part of the
build, since it is likely to become stale if we do
	(install-data-hook): create and install libltdl.tar.gz, without
	depending on GNU tar
	Reported by Manfred Weichel <Manfred.Weichel@pdb.siemens.de>
1999-01-18 13:16:55 +00:00
Thomas Tanner
6b7c38b36c *** empty log message *** 1999-01-17 11:19:40 +00:00
Alexandre Oliva
9f6e865761 * ltconfig.in (wlarc): set to either '${wl}' or an empty string,
depending on whether archive_cmds runs CC or LD
	(gnu_ld=yes, whole_archive_flag_spec): "$wlarc" instead of '${wl}'
1999-01-17 09:18:54 +00:00
Alexandre Oliva
3dfd80fb0d * mdemo/Makefile.am (../libltdl/libltdlc.la): depend on
../libtool, because ../libltdl/libtool depends on it
	(mdemo_debug_*): copy from mdemo_*, adding -static to LDFLAGS
1999-01-17 05:47:10 +00:00
Alexandre Oliva
77d2b6319c * ltmain.in (dlpredeps): append dependencies from dlopened modules
(but not dlpreopened ones) after all explicitly linked libraries
1999-01-17 05:44:56 +00:00
Alexandre Oliva
8d903ac44d missing entry 1999-01-17 05:00:32 +00:00
Alexandre Oliva
458a451208 * ltconfig.in (need_lib_prefix, need_version,
deplibs_check_method): default to unknown, so that we're
 	remembered that this needs porting; unknown is interpreted as yes,
 	yes and none, respectively
	(freebsd2*, freebsd3*, sunos4*, need_version): set to yes
	(freebsd2*, freebsd3*, library_names_spec): libraries without a
	version number are not used by `ld'; add $versuffix;
	Reported by Ben Jackson <ben@ben.com>
	* ltmain.in (deplibs_check_method): alias unknown to none
	(need_version): if vinfo was not provided and release info was,
	zero out versuffix only if we don't need_version.
	* doc/libtool.texi: document what `unknown' means
1999-01-17 04:21:52 +00:00
Alexandre Oliva
a2f4fa559b * libltdl/ltdl.h (lt_dlpreopen_default): reverted to a macro
without arguments, that calls lt_dlpreopen_default_ with
	lt_dlpreloaded_symbols
	* libltdl/ltdl.c (lt_dlpreopen_default_): renamed from
	lt_dlpreopen_default
1999-01-17 04:15:06 +00:00
Gary V. Vaughan
b5a58b449a improved aix support 1999-01-15 12:31:10 +00:00
Thomas Tanner
1b42249d43 *** empty log message *** 1999-01-15 09:21:04 +00:00
Thomas Tanner
031bd5cb38 *** empty log message *** 1999-01-14 20:07:09 +00:00
Alexandre Oliva
22d81a591e * Makefile.am: Moved ltconfig and ltmain.sh back into srcdir, and
add them to the distribution.  Added work-around if `mv -f' fails.
	fix @AINCLUDE_M4_LIST@ and @DIST_MAKEFILE_LIST@ for relative and
	absolute specifications of srcdir
1999-01-14 19:08:18 +00:00
Thomas Tanner
bfe6d93ab4 *** empty log message *** 1999-01-14 16:31:23 +00:00
Thomas Tanner
1f37f97bf1 *** empty log message *** 1999-01-14 15:07:12 +00:00
Gary V. Vaughan
3611ad0c44 don't hardcode the UNIX ; PATH separator 1999-01-14 13:05:21 +00:00
Thomas Tanner
52ea40640a *** empty log message *** 1999-01-14 09:33:48 +00:00
Alexandre Oliva
751b01ef7b * mdemo/Makefile.am (../libltdl/libtool): mkdir and configure
../libltdl
1999-01-13 22:07:33 +00:00