Commit Graph

2027 Commits

Author SHA1 Message Date
Gary V. Vaughan
04e0cebad7 * libltdl/argz.h: Moved from here...
* libltdl/argz_.h: ...to here, so as not to shadow system
argz.h when we `#include <argz.h>' for example.
#include stdlib.h and sys/types.h to ensure we get a size_t
definition.
* libltdl/argz.c (HAVE_CONFIG_H): Set it up how ltdl likes it when
used by another client.
* m4/argz.m4: New file.
(gl_FUNC_ARGZ): Try to find an error_t definition, and a system
argz.h.
* m4/ltdl.m4: Use it.
(AC_LTDL_FUNC_ARGZ): Removed.
* libltdl/lt__glibc.h: #include <argz.h> to pick up either the
system argz.h or our libltdl/argz.h if necessary.
* libltdl/Makefile.am (libltdl_la_SOURCES): Move argz.h from
here...
(ltdldata_DATA): ...here. Along with argz.c.
(argz.h): Generate from argz_.h if the system file is missing.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2004-04-22 22:47:20 +00:00
Gary V. Vaughan
486d02709f forgot to cvs rm -f libltdl/lt_mutex.[ch] 2004-04-22 22:11:34 +00:00
Gary V. Vaughan
14ae34906f According to Howard Chu <hyc@highlandsun.com>:
Applications should assume that the native dlopen is NOT
thread-safe, and take care of locking themselves. All application
calls into libltdl should thus be protected by the caller.

* libltdl/lt_mutex.c, libltdl/lt_mutex.h: Removed.
* libltdl/Makefile.am (pkginclude_HEADERS): Removed lt_mutex.h.
(libltdl_la_SOURCES): Removed lt_mutex.c and lt_mutex.h.
* libltdl/ltdl.h: Don't include lt_mutex.h.
* libltdl/lt__private.h (LT__MUTEX_GETERROR, LT__MUTEX_SETERROR)
(LT__MUTEX_SETERRORSTR): Renamed to...
(LT__GETERROR, LT__SETERROR, LT__SETERRORSTR): ...this.  Changed
all callers.
(LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, lt_dlmutex_lock)
(lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror):
Removed.  Changed all callers.
* doc/libtool.texi (Thread Saftey in libltdl):
* NEWS: Updated.
2004-04-22 22:08:19 +00:00
Gary V. Vaughan
4acb7905fa * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Detect Intel C++ compiler
version more idiomatically.
2004-04-19 15:04:17 +00:00
Albert Chin-A-Young
3b835daafc * m4/libtool.m4: Use cc rather than ld to created
a shared library on HP-UX 11.x. On HP-UX 10.x, the
C compiler doesn't grok -b so we continue to use ld.
2004-04-19 14:47:29 +00:00
Albert Chin-A-Young
a2c4685b03 * m4/libtool.m4: Use cc rather than ld to create a
shared library on Solaris. When using the Sun
Workshop compiler 5.0 (and I presume any previous
version), revert to ld due to compiler errors.
2004-04-19 14:37:35 +00:00
Albert Chin-A-Young
0c7defc0fb * m4/libtool.m4: Use cc rather than ld to create
a shared library on Tru64 UNIX.
2004-04-19 13:31:28 +00:00
Albert Chin-A-Young
25ae231bf6 * m4/libtool.m4: Use cc rather than ld to created
a shared library on IRIX.
2004-04-19 13:19:11 +00:00
Albert Chin-A-Young
02ed99c47b * libltdl/loader-shl_load.c: Fix typos during reorg. 2004-04-19 13:05:24 +00:00
Alexandre Duret-Lutz
645ce0c48c * doc/libtool.texi (LT_INIT): Properly display options in a table. 2004-04-19 12:57:25 +00:00
Gary V. Vaughan
1b77aa3abb * m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Intel C++ compiler 8.0 and
newer adds predep_objects and postdep_objects itself, so don't
duplicate them in $archive_cmds and $archive_expsym_cmds.
* NEWS: Updated.
Reported by Roberto Bagnare <bagnara@cs.unipr.it>
2004-04-19 12:49:56 +00:00
Peter O'Gorman
b3e0d13c64 * libltdl/loader-dyld.c: Fix compilation issues. Set Original author
to me.
2004-04-17 16:07:42 +00:00
Todd Vierling
9e72c23fc8 Peter O'Gorman <peter@pogma.com>
* m4/libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use sysctl to get the
max cmd length on BSD* and darwin. Make sure that there is a safety
factor too.
2004-04-17 15:30:40 +00:00
Scott James Remnant
51126ba3fd * m4/libtool.m4 (_LT_LANG_DEFAULT_CONFIG): Remove code to handle 'none'
and 'all' options, this now always assumes automatic mode as that
works so well.
(_LT_LANG_DEFAULT): Remove definition
* m4/ltoptions.m4: Remove 'no-lang', 'auto-lang' and 'all-lang' options.
* configure.ac: Invoke LT_LANG for each desired supported language.
* doc/libtool.texi: Remove documentation for the LT_INIT options,
rewrite LT_LANG documentation.
2004-04-15 17:05:26 +00:00
Alexandre Duret-Lutz
592eec7850 * bootstrap: Delete acinclude.m4. 2004-04-14 10:40:46 +00:00
Gary V. Vaughan
b8d530159c * libltdl/lt_dlloader.h: Forgot to cvs add this file earlier. 2004-04-14 10:27:11 +00:00
Gary V. Vaughan
82d805df21 * libtoolize.in (configure_ac): Don't complain about the lack of
aclocal.m4.
Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>
2004-04-14 10:24:25 +00:00
Gary V. Vaughan
bd8eed40e2 * m4/ltdl.m4 (AC_LIB_LTDL): Remove AC_REPLACE_FUNCS for memmove
and strcpy.
2004-04-13 22:13:16 +00:00
Gary V. Vaughan
7caaca4a5c * libltdl/lt__pre89.h, libltdl/memcpy.c, libltdl/memmove.c,
libltdl/strchr.c, libltdl/strcmp.c, libltdl/strrchr.c: Remove
half-assed pre-c89 support entirely.
* libltdl/lt__private.h: Don't refer to lt__pre89.h.
* libltdl/Makefile.am (ltdldata_DATA): Remove references to
deleted files.
* NEWS: Mention it.
2004-04-13 21:25:34 +00:00
Gary V. Vaughan
3431a0ab96 * libltdl/lt__pre89.h, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/argz.c,
libltdl/argz.h, libltdl/lt__glibc.h, libltdl/lt_dlloader.h,
libltdl/lt__dirent.c, libltdl/lt__dirent.h, libltdl/lt__private.h,
libltdl/lt__alloc.c, libltdl/lt__alloc.h, libltdl/lt_system.h,
libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c,  libltdl/loader-loadlibrary.c,
libltdl/loader-shl_load.c, libltdl/lt_error.h, libltdl/lt_mutex.h:
Autoconf either defines to 1 or undefs the discovery macros it
puts in config.h, and many (non-GNU) compilers throw a spurious
warning when testing an #undef macro with #if.  For consistency,
while we are touching all these lines, use defined(MACRO) style
throughout.
Reported by Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
2004-04-13 15:30:10 +00:00
Gary V. Vaughan
5dfb0ce7e2 Factor out the individual loaders, in preparation for preloading
them as libtool modules.  Currently loader-preopen.c is linked
unconditionally and other appropriate loaders discovered by
AC_LTDL_DLLIB are built and linked in:

* libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen
module.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
loaders to libltdl.
* libltdl/lt_system.h (LT_SCOPE): Moved to here.
* libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module)
(lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit)
(struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find)
(lt_dlloader_name, lt_dlloader_data, lt_dlloader_add)
(lt_dlloader_remove): Moved declarations...
* libltdl/lt_loader.h: ...to here.
* libltdl/ltdl.c: Include lt_loader.h.  Move loader implementation
code from here...
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: ...to here.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am,
tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS):
Add -I$(top_srcdir)/../.. so that libltdl include files can be
written as #include <libltdl/lt_dlloader.h> and found correctly.
2004-04-13 14:31:05 +00:00
Gary V. Vaughan
8c775c544a Factor out the mutex handling and error handling into their own
modules.  Mutex handling is not currently useful in combination
with posix threads, and should be easier to replace if it is in a
separate module.  Additionally, we can factor out the loaders in
such a way as to depend on only the portability layer and these
new mutex and error modules now:

* libltdl/Makefile.am (pkginclude_HEADERS): Install lt_error.h and
lt_mutex.h to $includedir/libltdl.
(libltdl_la_SOURCES): Build lt_error and lt_mutex objects.
* libltdl/ltdl.h (LT_SCOPE): Moved from here...
* libltdl/lt_system.h (LT_SCOPE): ...to here.
* libltdl/ltdl.c (lt_dlerror_strings, LT_DLSTRERROR): Moved from
here...
* libltdl/lt__private.h (lt__error_strings, LT__STRERROR): ...to
here as additional internal interfaces to lt_error.  Changed all
callers.
* libltdl/ltdl.c (LT_DLMUTEX_LOCK, LT_DLMUTEX_UNLOCK)
(LT_DLMUTEX_SETERROR, LT_DLMUTEX_GETERROR, lt_dlmutex_lock_func)
(lt_dlmutex_unlock_func, lt_dlmutex_geterror_func)
(lt_dllast_error): Moved from here...
(LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, LT__MUTEX_SETERRORSTR)
(LT__MUTEX_GETERROR, lt__mutex_lock_func, lt__mutex_unlock_func)
(lt__mutex_geterror_func, lt__last_error): ...to here as
additional internal interfaces to lt_mutex.  Changed all callers.
(LT_MUTEX_SETERROR): Take an errorcode rather than a string.
Changed all callers.
* libltdl/ltdl.c, libltdl/ltdl.h (lt_dlmutex_register): Moved from
here...
* libltdl/lt_mutex.c, libltdl/lt_mutex.h (lt_dlmutex_register):
...to here. New files.
* libltdl/ltdl.c, libltdl/ltdl.h (lt_dladderror, lt_dlseterror)
(lt_dlerror_table):
Moved from here...
* libltdl/lt_error.c, libltdl/lt_error.h (lt_dladderror)
(lt_dlseterror, lt_dlerror_table): ...to here. New files.
2004-04-13 14:12:00 +00:00
Scott James Remnant
6c12f2bc15 * Makefile.am (XDELTA_OPTIONS): Remove --pristine as that
generates huge xdeltas.
2004-04-13 00:01:48 +00:00
Gary V. Vaughan
21abc39185 * libltdl/ltdl.c (argz_append, argz_create_sep, argz_insert)
(argz_next, argz_stringify): Move from here...
* libltdl/argz.c: New file. ...to here.
* libltdl/lt__glibc.h: New file. Rename global symbols into the
lt__ namespace.
* libltdl/lt__private.h: Include lt__glibc.h.
* libltdl/Makefile.am (libltdl_la_SOURCES): Add new files.
(AM_CPPFLAGS): Add -DLTDL.
* libltdl/argz.h (argz_append, argz_create_sep, argz_insert)
(argz_next, argz_stringify): New file. Declare argz functions
here, including lt__glibc.h when LTDL is defined to rename global
symbols for libltdl.
* m4/ltdl.m4 (AC_LTDL_FUNC_ARGZ): Add argz to AC_LIBOBJ if any of
our argz_* functions are missing from the system libraries.
2004-04-08 14:13:07 +00:00
Gary V. Vaughan
bcf110d85d Added Files:
libltdl/lt__pre89.h libltdl/memcpy.c libltdl/memmove.c
	libltdl/strchr.c libltdl/strcmp.c libltdl/strrchr.c
2004-04-08 14:01:35 +00:00
Gary V. Vaughan
1cf343d573 * libltdl/ltdl.c: Move standard headers and preprocessor guards
from here...
* libltdl/lt__private.h: ...to here.  New file to declare ltdl's
internal interfaces.
* libltdl/ltdl.c: Include lt__private.h.
* m4/ltdl.m4 (AC_LIB_LTDL): Add lt_dirent to AC_LIBOBJ if all of
opendir, readdir and closedir are missing.
(AC_CHECK_HEADERS): Remove assert.h, ctype.h, errno.h, malloc.h,
stdio.h and stdlib.h; these headers are all available in standard
c89 environments and newer.
* libltdl/lt__private.h: Include them here unconditionally.
* libltdl/lt__dirent.c (opendir, readdir, closedir): New file.
Windows dirent emulation functions moved to here...
* libltdl/ltdl.c (opendir, readdir, closedir): ...from here.
* libltdl/lt__dirent.h: New file.  Rename the global symbols from
lt__dirent.c into the lt__ namespace so they don't clash with
other libraries.
2004-04-08 13:51:15 +00:00
Gary V. Vaughan
b61dada322 Keywords:
Factor out the bottom portability layer from ltdl.  Code in this
layer has global symbols renamed by lt__pre89.h, and may not
refer to any symbols except those provided by the system libraries
or other code in the portability layer:

* libltdl/lt__pre89.h: New file.  Rename all the symbols from
LTLIBOBJS into the lt__ namespace so that they don't clash with
other libraries.
* libltdl/ltdl.c (rpl_memcpy, rpl_memmove, rpl_strchr, rpl_strcmp)
(rpl_strrchr): Moved from here...
* libltdl/memcpy.c (memcpy): ...to here, and fixed void *
dereference bug...
* libltdl/memmove.c (memmove): ...to here, and fixed void *
dereference bug...
* libltdl/strchr.c (strchr): ...to here...
* libltdl/strcmp.c (strcmp): ...here...
* libltdl/strrchr.c (strrchr): ...and here.
* libltdl/Makefile.am (libltdl_la_SOURCES): Add lt__pre89.h.
(libltdl_la_LIBADD, libltdlc_la_LIBADD): Add $(LTLIBOBJS).
(ltdldata_DATA): Add replacement sources files.
* m4/ltdl.m4 (AC_LIB_LTDL): Do careful config.h and LTLIBOBJ
setting for missing pre89 functions.


$Revision: 1.1470 $ $Date: 2004/04/08 12:01:57 $
2004-04-08 13:06:16 +00:00
Gary V. Vaughan
8c4615ca38 Keywords:
* libltdl/ltdl.h (LT_PARAMS): Removed.  Changed all users to
ANSI prototypes.
(lt_ptr): Keep backwards compatibility stub.
* libtldl/ltdl.c, libltdl/ltdl.h: Use ANSI function declarations
throughout.  s/lt_ptr/void */g.
2004-04-08 12:01:58 +00:00
Fredrik Estreen
b7b029a38e * m4/ltdl.m4: Rename shrext to shrext_cmds here too. 2004-04-08 00:15:48 +00:00
Gary V. Vaughan
e658105eb9 Keywords:
There was no clean separation of abstraction layers in libltdl.
The first step in fixing this is to factor out the memory
management abstraction, making a start on removing promiscuity
from the underlying portability layer:

* doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc,
lt_dlrealloc and lt_dlfree references.  The memory management
layer used by libltdl is now private.
* libltdl/lt_system.h: New installed header for system portability
abstraction.
* libltdl/ltdl.h: Use it.
* libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above
system portability layer to abstract ltdl's memory management.
* libltdl/ltdl.c: Use lt__alloc.h.
(closedir): Use free.
(opendir): Use malloc/free.
(lt__xalloc_die_callback): Report memory failures through
lt_dlerror.
(lt_dlinit): Use it to initialise memory management.
(LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC)
(rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc):
Removed in favour of...
(lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls
from libltdl/lt__alloc.h.  Changed all callers.
(rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part
of the portability layer, these functions no longer use libltdl
memory management API.
(free_vars): Factored out.
(LT_DLMEM_REASSIGN): While redoing memory handling, renamed...
* libltdl/lt__alloc.h (MEMREASSIGN): ...to this.
* libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track
dependencies automatically.
(pkgincludedir): Override from parent package's setting.
(pkginclude_HEADERS): Install lt_system.h.
(libltdl_la_SOURCES): Add new files.
* NEWS: Updated.
Reported by Dalibor Topic <robilad@kaffe.org>
2004-04-06 15:42:11 +00:00
Peter O'Gorman
57c6549b31 * NEWS: Add a news item about xlc support that I forgot yesterday. 2004-04-01 04:43:56 +00:00
Peter O'Gorman
4faf0e891d * ltmain.in: Remove an extra eval concat_cmds that some idiot added.
Fixes double eval on AIX, reported by Albert Chin and Uwe Moeller.
2004-04-01 04:38:11 +00:00
Peter O'Gorman
9d73dece76 * m4/libtool.m4, ltmain.in (darwin): Support IBM's xlc and xlc++. 2004-03-31 14:11:08 +00:00
Gary V. Vaughan
81de08f9f8 * m4/libtool.m4 (_LT_LANG_C_CONFIG): If $compiler is not set, then
don't call the macros that test it.
(_LT_LANG_CXX_CONFIG): Ditto.
(_LT_LANG_F77_CONFIG): Ditto.
(_LT_LANG_GCJ_CONFIG): Ditto.
(_LT_LANG_RC_CONFIG): Ditto.
2004-03-31 08:12:59 +00:00
Gary V. Vaughan
b2d58a67de * libtoolize.in (func_scan_files): sed BRE have no alternation, so
break LT_INIT matcher out.
(func_serial): Don't escape literal parens for grep BRE.
2004-03-30 09:38:29 +00:00
Gary V. Vaughan
aa86d1dacc * m4/libtool.m4 (LT_INIT): aclocal can't see AC_DEFUN_ONCE, so use
AC_DEFUN and m4_define.
* libtoolize.in (func_serial): No longer accept AC_DEFUN_ONCE...
(func_grep): ...so mere grep is sufficient again...
(EGREP): ...and this is no longer required.
2004-03-30 08:29:52 +00:00
Gary V. Vaughan
8c301628d8 * m4/libtool.m4: Use LT_INIT as #serial tag.
* libtoolize.in: Grok LT_INIT!  Pass A[CM]_PROG_LIBTOOL to...
(func_serial_update): ...here, we now take an additional parameter
containing another regex to match ancient serialed files.
(func_serial): Accept AC_DEFUN_ONCE of the #serial tag...
(func_grep): ...which requires egrep...
(EGREP): ...substituted by config.status.
(func_scan_files): Set seen_libtool if LT_INIT goes by.
2004-03-29 12:43:37 +00:00
Gary V. Vaughan
3a79ae38fd * Makefile.am (pkgmacro_DATA): Install ltoptions.m4. 2004-03-29 12:03:29 +00:00
Gary V. Vaughan
8a839f1fac * libltdl/Makefile.am (AM_CPPFLAGS): Also check $top_builddir for
config.h.
(ltdl.o): config.h is in $top_builddir.
2004-03-29 09:41:37 +00:00
Scott James Remnant
0916718260 * NEWS: Explain more fully why we no longer load libraries
with global symbol resolution.
* doc/libtool.texi (libtool script contents): Add missing
documentation for 'inherit_rpath' variable.
2004-03-24 14:23:18 +00:00
Scott James Remnant
dcdd39d604 * configure.ac: Catch errors during calls to AC_PROG_CXX,
AC_PROG_CXXCPP and AC_PROG_F77 before LT_INIT.  Only set the
HAVE_CXX and HAVE_F77 conditions to true if an error didn't
occur (AC_PROG_CXX leaves CXX="g++" even if it didn't find one).
Set HAVE_GCJ and HAVE_RC to true correctly as well.
* m4/libtool.m4 (LT_PROG_GCJ): If AC_PROG_GCJ or AM_PROG_GCJ are
defined, expand to the definition of those instead of our own.
Define GCJ to '' instead of 'no' if not found.
(LT_PROG_RC) Define RC to '' instead of 'no' if not found.
(_LT_LANG_GCJ_CONFIG): Require LT_PROG_GCJ to be expanded first.
(_LT_LANG_RC_CONFIG): Require LT_PROG_RC to be expanded first.
2004-03-24 14:10:25 +00:00
Scott James Remnant
0a94ff3131 * libltdl/ltdl.c (sys_dl_open): Don't load libraries with global
symbol resolution.
* NEWS: Updated.
2004-03-24 04:00:46 +00:00
Albert Chin-A-Young
2b1486a8c4 fix whitespace 2004-03-24 03:59:44 +00:00
Albert Chin-A-Young
2d860a8b7d * m4/libtool.m4: Add new variable, inherit_rpath, if the
* m4/libtool.m4: When linking convenience libraries on Solaris
2004-03-24 03:12:21 +00:00
Albert Chin-A-Young
735c575781 * libtool.m4: When linking convenience libraries on Solaris
with the Sun C++ compiler, pass convenience libraries through
to the linker with -Qoption between allextract/defaultextract.
The Sun C++ compiler bundles -Qoption arguments so
convenience libraries are linked with defaultextract
otherwise.
* tagdemo/Makefile.am, tagdemo/main.cpp, tagdemo/conv.h,
tagdemo/conv.cpp: Augment tagdemo test to link a convenience
library with a libtool library.
2004-03-24 03:06:48 +00:00
Albert Chin-A-Young
47a39a1801 * ltmain.in: Piecewise linking doesn't work when the output
file is an absolute path, use the basename only instead.
2004-03-24 03:03:05 +00:00
Albert Chin-A-Young
4886dc757a * ltmain.in: When a library is installed, dependent on a
convenience library, and it involves relinking, the object
files extracted from the convenience library are not removed
after the relink. This is a problem if you build as non-root,
install as root, then try to remove the build directory as
non-root; Clean up properly if relink fails; Change
"$realname"U to ${realname}T to be consistent.
2004-03-24 02:59:28 +00:00
Scott James Remnant
3a24ed2b3e * ltmain.in <prog linkmode>: Always add -L options to
$newlib_search_path instead of just in scan mode to ensure that
non-libtool libraries in user-specified directories can be found.
2004-03-24 02:35:33 +00:00
Scott James Remnant
ff1be3b64e * m4/libtool.m4 (_LT_CONFIG): Remove unneeded else condition
code, now the support determination is done in m4.
(_LT_LANG): Correct comment, unexpected leak from keybuk-lt-tag.patch.
2004-03-23 00:28:29 +00:00
Scott James Remnant
71b87c57cd * libltdl/Makefile.am (libltdl_la_LDFLAGS): Increment CURRENT
and AGE of libltdl, warranted by the addition of lt_dlhandle_find()
since 1.5.2.
2004-03-21 16:06:55 +00:00