From: Mathieu Desnoyers Date: Thu, 23 Feb 2012 18:25:05 +0000 (-0500) Subject: Link statically to internal libraries X-Git-Tag: v1.0.0-pre2~3 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=30827463276bab779a0965e8adf271c451c2a28a Link statically to internal libraries Previously, we installed all "internal" libs as .so, because static linking a static lib into a dynamic lib did remove the unused objects. Use the -Wl,--no-as-needed linker flag to fix this issue, allowing us to entirely privatize private libs. Signed-off-by: Mathieu Desnoyers --- diff --git a/converter/Makefile.am b/converter/Makefile.am index 9443c214..389a9d98 100644 --- a/converter/Makefile.am +++ b/converter/Makefile.am @@ -7,19 +7,16 @@ babeltrace_SOURCES = \ # -Wl,--no-as-needed is needed for recent gold linker who seems to think # it knows better and considers libraries with constructors having -# side-effects as dead code. Note: we put plugin dependencies on the -# executable rather than the library because libtool does not seem to -# issue the LDFLAGS before the rpaths, which makes it useless. +# side-effects as dead code. babeltrace_LDFLAGS = -Wl,--no-as-needed babeltrace_LDADD = \ $(top_builddir)/lib/libbabeltrace.la \ - $(top_builddir)/formats/ctf/libctf.la \ - $(top_builddir)/formats/ctf/metadata/libctf-ast.la \ - $(top_builddir)/formats/ctf-text/libctf-text.la \ - $(top_builddir)/formats/bt-dummy/libbt-dummy.la + $(top_builddir)/formats/ctf/libbabeltrace-ctf.la \ + $(top_builddir)/formats/ctf-text/libbabeltrace-ctf-text.la \ + $(top_builddir)/formats/bt-dummy/libbabeltrace-dummy.la babeltrace_log_SOURCES = babeltrace-log.c babeltrace_log_LDADD = \ $(top_builddir)/lib/libbabeltrace.la \ - $(top_builddir)/formats/ctf/libctf.la + $(top_builddir)/formats/ctf/libbabeltrace-ctf.la diff --git a/formats/bt-dummy/Makefile.am b/formats/bt-dummy/Makefile.am index 016ffad9..96775df4 100644 --- a/formats/bt-dummy/Makefile.am +++ b/formats/bt-dummy/Makefile.am @@ -1,9 +1,9 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -lib_LTLIBRARIES = libbt-dummy.la +lib_LTLIBRARIES = libbabeltrace-dummy.la -libbt_dummy_la_SOURCES = \ +libbabeltrace_dummy_la_SOURCES = \ bt-dummy.c -libbt_dummy_la_LIBADD = \ +libbabeltrace_dummy_la_LIBADD = \ $(top_builddir)/lib/libbabeltrace.la diff --git a/formats/ctf-text/Makefile.am b/formats/ctf-text/Makefile.am index ca033e05..4d84d928 100644 --- a/formats/ctf-text/Makefile.am +++ b/formats/ctf-text/Makefile.am @@ -2,11 +2,14 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include SUBDIRS = types . -lib_LTLIBRARIES = libctf-text.la +lib_LTLIBRARIES = libbabeltrace-ctf-text.la -libctf_text_la_SOURCES = \ +libbabeltrace_ctf_text_la_SOURCES = \ ctf-text.c -libctf_text_la_LIBADD = \ - types/libctf-text-types.la \ +libbabeltrace_ctf_text_la_LDFLAGS = \ + -Wl,--no-as-needed \ + types/libctf-text-types.la + +libbabeltrace_ctf_text_la_LIBADD = \ $(top_builddir)/lib/libbabeltrace.la diff --git a/formats/ctf-text/types/Makefile.am b/formats/ctf-text/types/Makefile.am index 604293e6..f688e1f5 100644 --- a/formats/ctf-text/types/Makefile.am +++ b/formats/ctf-text/types/Makefile.am @@ -1,6 +1,6 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -lib_LTLIBRARIES = libctf-text-types.la +noinst_LTLIBRARIES = libctf-text-types.la libctf_text_types_la_SOURCES = \ array.c \ diff --git a/formats/ctf/Makefile.am b/formats/ctf/Makefile.am index a85e7d3e..8d2ee192 100644 --- a/formats/ctf/Makefile.am +++ b/formats/ctf/Makefile.am @@ -2,16 +2,20 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include SUBDIRS = types metadata . -lib_LTLIBRARIES = libctf.la +lib_LTLIBRARIES = libbabeltrace-ctf.la -libctf_la_SOURCES = \ +libbabeltrace_ctf_la_SOURCES = \ ctf.c \ events.c \ callbacks.c \ events-private.h -libctf_la_LIBADD = \ +# Request that the linker keeps all static libraries objects. +libbabeltrace_ctf_la_LDFLAGS = \ + -Wl,--no-as-needed \ types/libctf-types.la \ metadata/libctf-parser.la \ - metadata/libctf-ast.la \ + metadata/libctf-ast.la + +libbabeltrace_ctf_la_LIBADD = \ $(top_builddir)/lib/libbabeltrace.la diff --git a/formats/ctf/metadata/Makefile.am b/formats/ctf/metadata/Makefile.am index a7d6c98a..0725dce3 100644 --- a/formats/ctf/metadata/Makefile.am +++ b/formats/ctf/metadata/Makefile.am @@ -2,7 +2,7 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include BUILT_SOURCES = ctf-parser.h AM_YFLAGS = -t -d -v -lib_LTLIBRARIES = libctf-parser.la libctf-ast.la +noinst_LTLIBRARIES = libctf-parser.la libctf-ast.la noinst_HEADERS = \ ctf-scanner.h \ diff --git a/formats/ctf/types/Makefile.am b/formats/ctf/types/Makefile.am index a2861dca..76544b3c 100644 --- a/formats/ctf/types/Makefile.am +++ b/formats/ctf/types/Makefile.am @@ -1,6 +1,6 @@ AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -lib_LTLIBRARIES = libctf-types.la +noinst_LTLIBRARIES = libctf-types.la libctf_types_la_SOURCES = \ array.c \