diff options
author | Gary V. Vaughan <gary@gnu.org> | 2005-02-26 14:44:34 +0000 |
---|---|---|
committer | Gary V. Vaughan <gary@gnu.org> | 2005-02-26 14:44:34 +0000 |
commit | e3582515cc928f4e236b98b52ab89cc513d21cb8 (patch) | |
tree | bf1bf9b3622df955bcd7092dfff1a2374e7161d7 | |
parent | ae43cbad91dff5757eae77d1b4c15dbd5a7a42c3 (diff) | |
download | libtool-e3582515cc928f4e236b98b52ab89cc513d21cb8.tar.gz |
I assume that it is okay to have undefined symbols in convenience
libraries that will be used as modules -- the pic objects are
built normally, and are not expected to resolve all their symbols
until they are linked into a library; convenience libraries are
then rolled using 'ar' and 'ranlib' (or equivalent) which also do
not check whether symbols are resolved. We now build each of the
loaders as a convenience library module under these assumptions,
and link libltdl.la with selected modules, at which time all of
the symbols *are* resolved:
* TODO: Remove item addressed by this changeset.
* libltdl/Makefile.am (lib_LTLIBRARIES): Remove libdlloader.la.
(libdlloader_la_SOURCES): Declaration removed. Changed all
clients. Source files..
(libltdl_la_SOURCES): ...added back in here.
(libdlloader_LDFLAGS, libdlloader_la_LIBADD): Removed.
(libltdl_la_LIBADD): Remove libdlloader.la; add $(LTLIBOBJS).
* libltdl/loaders/Makefile.am: Removed all references to
libdlloader.la.
-rw-r--r-- | ChangeLog | 28 | ||||
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | libltdl/Makefile.am | 40 | ||||
-rw-r--r-- | libltdl/loaders/Makefile.am | 17 |
4 files changed, 48 insertions, 39 deletions
@@ -1,3 +1,25 @@ +2005-02-26 Gary V. Vaughan <gary@gnu.org> + + I assume that it is okay to have undefined symbols in convenience + libraries that will be used as modules -- the pic objects are + built normally, and are not expected to resolve all their symbols + until they are linked into a library; convenience libraries are + then rolled using 'ar' and 'ranlib' (or equivalent) which also do + not check whether symbols are resolved. We now build each of the + loaders as a convenience library module under these assumptions, + and link libltdl.la with selected modules, at which time all of + the symbols *are* resolved: + + * TODO: Remove item addressed by this changeset. + * libltdl/Makefile.am (lib_LTLIBRARIES): Remove libdlloader.la. + (libdlloader_la_SOURCES): Declaration removed. Changed all + clients. Source files.. + (libltdl_la_SOURCES): ...added back in here. + (libdlloader_LDFLAGS, libdlloader_la_LIBADD): Removed. + (libltdl_la_LIBADD): Remove libdlloader.la; add $(LTLIBOBJS). + * libltdl/loaders/Makefile.am: Removed all references to + libdlloader.la. + 2005-02-25 Gary V. Vaughan <gary@gnu.org> * libtoolize.m4sh (func_copy): Split arguments to func_copy_cb @@ -9,10 +31,10 @@ 2005-02-24 Peter O'Gorman <peter@pogma.com> - * m4/libtool.m4 (_LT_LINKER_SHLIBS): The Portland group's - compiler does not pass --whole-archive. Move gnu ld check for + * m4/libtool.m4 (_LT_LINKER_SHLIBS): The Portland group's + compiler does not pass --whole-archive. Move gnu ld check for the flag to the top so it can be overridden. - (_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Unset + (_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Unset whole_archive_flag_spec for the portland group's c++ compiler too. Reported by Jeff Squyres <jsquyres@lam-mpi.org> @@ -54,8 +54,6 @@ GNU Libtool 1.2. libtldl ------------ -* Get rid of the shared libddloader. - * Change libltdl interface: add separate functions for function pointers. This will allow porting to systems where function pointers are incompatible with data pointer C-wise. diff --git a/libltdl/Makefile.am b/libltdl/Makefile.am index 4ed19337..6541739c 100644 --- a/libltdl/Makefile.am +++ b/libltdl/Makefile.am @@ -1,6 +1,7 @@ ## Process this file with automake to produce Makefile.in ## -## Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation +## Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 +## Free Software Foundation, Inc. ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -33,46 +34,41 @@ VERSION_INFO = -version-info 6:0:0 pkgincludedir = $(includedir)/libltdl -lib_LTLIBRARIES = libdlloader.la -libdlloader_la_SOURCES = libltdl/lt_error.h lt_error.c \ - libltdl/lt__private.h \ - libltdl/lt__strl.h \ - libltdl/lt_system.h \ - libltdl/lt__alloc.h lt__alloc.c \ - libltdl/lt__glibc.h \ - libltdl/lt__dirent.h \ - libltdl/slist.h slist.c -libdlloader_la_LDFLAGS = $(AM_LDFLAGS) $(VERSION_INFO) -libdlloader_la_LIBADD = $(LTLIBOBJS) - -## Libltdl brings it all together: if INSTALL_LTDL include_HEADERS = ltdl.h pkginclude_HEADERS = libltdl/lt_system.h libltdl/lt_error.h \ libltdl/lt_dlloader.h -lib_LTLIBRARIES += libltdl.la +lib_LTLIBRARIES = libltdl.la endif if CONVENIENCE_LTDL noinst_LTLIBRARIES = libltdlc.la endif -libltdl_la_SOURCES = ltdl.h ltdl.c \ - libltdl/lt_dlloader.h lt_dlloader.c loaders/preopen.c +libltdl_la_SOURCES = ltdl.c ltdl.h \ + lt_error.c libltdl/lt_error.h \ + libltdl/lt__private.h \ + libltdl/lt__strl.h \ + libltdl/lt_system.h \ + lt__alloc.c libltdl/lt__alloc.h \ + libltdl/lt__glibc.h \ + libltdl/lt__dirent.h \ + slist.c libltdl/slist.h \ + lt_dlloader.c libltdl/lt_dlloader.h loaders/preopen.c libltdl_la_CPPFLAGS = -DLTDLOPEN=libltdl $(AM_CPPFLAGS) libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(VERSION_INFO) $(LT_DLPREOPEN) -libltdl_la_LIBADD = libdlloader.la +libltdl_la_LIBADD = $(LTLIBOBJS) -libltdlc_la_SOURCES = $(libltdl_la_SOURCES) $(libdlloader_la_SOURCES) +libltdlc_la_SOURCES = $(libltdl_la_SOURCES) libltdlc_la_CPPFLAGS = -DLTDLOPEN=libltdlc $(AM_CPPFLAGS) -libltdlc_la_LDFLAGS = $(AM_LDFLAGS) -weak libdlloader.la $(LT_DLPREOPEN) -libltdlc_la_LIBADD = $(libdlloader_la_LIBADD) +libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) +libltdlc_la_LIBADD = $(libltdl_la_LIBADD) ## These are installed as a subdirectory of pkgdatadir so that ## libtoolize --ltdl can find them later: ltdldatadir = $(pkgvdatadir)/libltdl ltdldatafiles = COPYING.LIB Makefile.am README configure.ac \ - $(libltdl_la_SOURCES) $(libdlloader_la_SOURCES) \ + $(libltdl_la_SOURCES) \ lt__dirent.c libltdl/lt__dirent.h \ lt__strl.c libltdl/lt__strl.h \ argz_.h argz.c diff --git a/libltdl/loaders/Makefile.am b/libltdl/loaders/Makefile.am index e17f157d..3c94c263 100644 --- a/libltdl/loaders/Makefile.am +++ b/libltdl/loaders/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in ## -## Copyright (C) 2004, 2005 Free Software Foundation +## Copyright (C) 2004, 2005 Free Software Foundation, Inc. ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ AUTOMAKE_OPTIONS = foreign DEFS = -DHAVE_CONFIG_H="<$(CONFIG_H)>" -DLTDL AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) \ -I.. -I$(srcdir)/.. -I$(srcdir)/../libltdl -AM_LDFLAGS = -no-undefined -module -avoid-version -export-dynamic +AM_LDFLAGS = -module -avoid-version pkgincludedir = $(includedir)/libltdl @@ -39,13 +39,9 @@ noinst_LTLIBRARIES = $(LT_DLLOADERS) EXTRA_LTLIBRARIES = dlopen.la dld_link.la dyld.la load_add_on.la \ loadlibrary.la shl_load.la -## Build loaders (other than preopen) as modules: -dlopen_la_LIBADD = ../libdlloader.la $(LIBADD_DLOPEN) -shl_load_la_LIBADD = ../libdlloader.la $(LIBADD_SHL_LOAD) -dyld_la_LIBADD = ../libdlloader.la -load_add_on_la_LIBADD = ../libdlloader.la -loadlibrary_la_LIBADD = ../libdlloader.la -dld_link_la_LIBADD = ../libdlloader.la -ldld +dlopen_la_LIBADD = $(LIBADD_DLOPEN) +shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) +dld_link_la_LIBADD = -ldld ## These are installed as a subdirectory of pkgdatadir so that @@ -61,6 +57,3 @@ install-data-local: $(mkinstalldirs) $(DESTDIR)$(ltdldatadir) $(AMTAR) cf - $(ltdldatafiles) \ | ( cd $(DESTDIR)$(ltdldatadir) && $(AMTAR) xf -; ) - -../libdlloader.la: - cd ..; $(MAKE) $(AM_MAKEFLAGS) libdlloader.la |