mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-27 06:09:57 +08:00
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.
This commit is contained in:
parent
ae43cbad91
commit
e3582515cc
28
ChangeLog
28
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>
|
||||
|
||||
|
2
TODO
2
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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user