summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary V. Vaughan <gary@gnu.org>2005-02-26 14:44:34 +0000
committerGary V. Vaughan <gary@gnu.org>2005-02-26 14:44:34 +0000
commite3582515cc928f4e236b98b52ab89cc513d21cb8 (patch)
treebf1bf9b3622df955bcd7092dfff1a2374e7161d7
parentae43cbad91dff5757eae77d1b4c15dbd5a7a42c3 (diff)
downloadlibtool-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--ChangeLog28
-rw-r--r--TODO2
-rw-r--r--libltdl/Makefile.am40
-rw-r--r--libltdl/loaders/Makefile.am17
4 files changed, 48 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index 1528afa5..72e1078b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
diff --git a/TODO b/TODO
index c0317718..bba63cb8 100644
--- a/TODO
+++ b/TODO
@@ -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