[master] 54c0bb85d Manage libvarnish.a with libtool
Dridi Boukelmoune
dridi.boukelmoune at gmail.com
Tue Mar 10 16:45:08 UTC 2020
commit 54c0bb85d8122b72259a926dc9e7aff130a37e22
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date: Tue Mar 10 16:42:13 2020 +0100
Manage libvarnish.a with libtool
It remains a private static library. Neither libvarnishapi nor test
cases from libvarnish use individual source files besides the ones
containing test drivers.
It can lead to very cryptic messages where a symbol is defined twice
from different sources, where the sources are the same but the object
code is technically different (a copy built from _SOURCES and a copy
in libvarnish.a).
While at it, add sanitizers flags to all libvarnish test cases.
diff --git a/bin/varnishadm/Makefile.am b/bin/varnishadm/Makefile.am
index d0ca15408..0d0c8e709 100644
--- a/bin/varnishadm/Makefile.am
+++ b/bin/varnishadm/Makefile.am
@@ -12,7 +12,7 @@ varnishadm_CFLAGS = @LIBEDIT_CFLAGS@ \
@SAN_CFLAGS@
varnishadm_LDADD = \
- $(top_builddir)/lib/libvarnish/libvarnish.a \
+ $(top_builddir)/lib/libvarnish/libvarnish.la \
$(top_builddir)/lib/libvarnishapi/libvarnishapi.la \
${PTHREAD_LIBS} ${RT_LIBS} ${NET_LIBS} @LIBEDIT_LIBS@ ${LIBM} \
@SAN_LDFLAGS@
diff --git a/bin/varnishd/Makefile.am b/bin/varnishd/Makefile.am
index 2a66a4e44..e124ed5d8 100644
--- a/bin/varnishd/Makefile.am
+++ b/bin/varnishd/Makefile.am
@@ -170,7 +170,7 @@ varnishd_LDFLAGS = -export-dynamic
varnishd_LDADD = \
$(top_builddir)/lib/libvcc/libvcc.a \
- $(top_builddir)/lib/libvarnish/libvarnish.a \
+ $(top_builddir)/lib/libvarnish/libvarnish.la \
$(top_builddir)/lib/libvgz/libvgz.a \
@SAN_LDFLAGS@ \
@JEMALLOC_LDADD@ \
@@ -187,21 +187,21 @@ vhp_gen_hufdec_SOURCES = hpack/vhp_gen_hufdec.c
vhp_gen_hufdec_CFLAGS = @SAN_CFLAGS@ \
-include config.h
vhp_gen_hufdec_LDADD = \
- $(top_builddir)/lib/libvarnish/libvarnish.a
+ $(top_builddir)/lib/libvarnish/libvarnish.la
noinst_PROGRAMS += vhp_table_test
vhp_table_test_SOURCES = hpack/vhp_table.c
vhp_table_test_CFLAGS = @SAN_CFLAGS@ \
-DTABLE_TEST_DRIVER -include config.h
vhp_table_test_LDADD = \
- $(top_builddir)/lib/libvarnish/libvarnish.a
+ $(top_builddir)/lib/libvarnish/libvarnish.la
noinst_PROGRAMS += vhp_decode_test
vhp_decode_test_SOURCES = hpack/vhp_decode.c hpack/vhp_table.c
vhp_decode_test_CFLAGS = @SAN_CFLAGS@ \
-DDECODE_TEST_DRIVER -include config.h
vhp_decode_test_LDADD = \
- $(top_builddir)/lib/libvarnish/libvarnish.a
+ $(top_builddir)/lib/libvarnish/libvarnish.la
noinst_PROGRAMS += esi_parse_fuzzer
esi_parse_fuzzer_SOURCES = \
@@ -210,7 +210,7 @@ esi_parse_fuzzer_SOURCES = \
esi_parse_fuzzer_CFLAGS = \
@SAN_CFLAGS@ -DNOT_IN_A_VMOD -DTEST_DRIVER -include config.h
esi_parse_fuzzer_LDADD = \
- $(top_builddir)/lib/libvarnish/libvarnish.a \
+ $(top_builddir)/lib/libvarnish/libvarnish.la \
$(top_builddir)/lib/libvgz/libvgz.a
TESTS = vhp_table_test vhp_decode_test
diff --git a/bin/varnishtest/Makefile.am b/bin/varnishtest/Makefile.am
index 4ebff33a8..34f11f77e 100644
--- a/bin/varnishtest/Makefile.am
+++ b/bin/varnishtest/Makefile.am
@@ -52,7 +52,7 @@ varnishtest_SOURCES = \
vtc_varnish.c
varnishtest_LDADD = \
- $(top_builddir)/lib/libvarnish/libvarnish.a \
+ $(top_builddir)/lib/libvarnish/libvarnish.la \
$(top_builddir)/lib/libvarnishapi/libvarnishapi.la \
$(top_builddir)/lib/libvgz/libvgz.a \
@SAN_LDFLAGS@ \
diff --git a/lib/libvarnish/Makefile.am b/lib/libvarnish/Makefile.am
index da5821c7e..298d63400 100644
--- a/lib/libvarnish/Makefile.am
+++ b/lib/libvarnish/Makefile.am
@@ -5,15 +5,16 @@ AM_CPPFLAGS = \
-I$(top_builddir)/include \
@PCRE_CFLAGS@
-AM_LDFLAGS = $(AM_LT_LDFLAGS)
+AM_CFLAGS = $(AM_LT_CFLAGS) @SAN_CFLAGS@
+AM_LDFLAGS = $(AM_LT_LDFLAGS) @SAN_LDFLAGS@
-noinst_LIBRARIES = libvarnish.a
+noinst_LTLIBRARIES = libvarnish.la
-libvarnish_a_CFLAGS = \
+libvarnish_la_CFLAGS = \
-DVARNISH_STATE_DIR='"${VARNISH_STATE_DIR}"' \
- @SAN_CFLAGS@
+ $(AM_CFLAGS)
-libvarnish_a_SOURCES = \
+libvarnish_la_SOURCES = \
binary_heap.c \
vas.c \
vav.c \
@@ -47,17 +48,18 @@ TESTS = vjsn_test vnum_c_test binheap vsb_test
noinst_PROGRAMS = ${TESTS}
-binheap_SOURCES = binary_heap.c vas.c vrnd.c
-binheap_CFLAGS = -DTEST_DRIVER
+binheap_SOURCES = binary_heap.c
+binheap_CFLAGS = $(AM_CFLAGS) -DTEST_DRIVER
+binheap_LDADD = $(AM_LDFLAGS) libvarnish.la
-vnum_c_test_SOURCES = vnum.c vas.c
-vnum_c_test_CFLAGS = -DNUM_C_TEST -include config.h @SAN_CFLAGS@
-vnum_c_test_LDADD = ${LIBM} libvarnish.a @SAN_LDFLAGS@
+vnum_c_test_SOURCES = vnum.c
+vnum_c_test_CFLAGS = $(AM_CFLAGS) -DNUM_C_TEST
+vnum_c_test_LDADD = $(AM_LDFLAGS) libvarnish.la ${LIBM}
vjsn_test_SOURCES = vjsn.c
-vjsn_test_CFLAGS = -DVJSN_TEST @SAN_CFLAGS@
-vjsn_test_LDADD = libvarnish.a @SAN_LDFLAGS@
+vjsn_test_CFLAGS = $(AM_CFLAGS) -DVJSN_TEST
+vjsn_test_LDADD = $(AM_LDFLAGS) libvarnish.la
-vsb_test_SOURCES = vsb_test.c vsb.c vas.c
-vsb_test_CFLAGS = -DVSB_TEST
-vsb_test_LDADD = libvarnish.a
+vsb_test_SOURCES = vsb_test.c
+vsb_test_CFLAGS = $(AM_CFLAGS) -DVSB_TEST
+vsb_test_LDADD = $(AM_LDFLAGS) libvarnish.la
diff --git a/lib/libvarnishapi/Makefile.am b/lib/libvarnishapi/Makefile.am
index 6f109374c..750128eba 100644
--- a/lib/libvarnishapi/Makefile.am
+++ b/lib/libvarnishapi/Makefile.am
@@ -12,27 +12,10 @@ lib_LTLIBRARIES = libvarnishapi.la
libvarnishapi_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:0:0
libvarnishapi_la_SOURCES = \
+ ../../include/vcs_version.h \
vsl_api.h \
vxp.h \
vxp_tokens.h \
- ../libvarnish/vas.c \
- ../libvarnish/vav.c \
- ../../include/vcs_version.h \
- ../libvarnish/version.c \
- ../libvarnish/vcli_proto.c \
- ../libvarnish/vct.c \
- ../libvarnish/vfil.c \
- ../libvarnish/vfl.c \
- ../libvarnish/vin.c \
- ../libvarnish/vjsn.c \
- ../libvarnish/vlu.c \
- ../libvarnish/vmb.c \
- ../libvarnish/vpf.c \
- ../libvarnish/vre.c \
- ../libvarnish/vsb.c \
- ../libvarnish/vtim.c \
- ../libvarnish/vnum.c \
- ../libvarnish/vsha256.c \
vsc.c \
vsig.c \
vsl.c \
@@ -57,6 +40,7 @@ libvarnishapi_la_CFLAGS = \
@SAN_CFLAGS@
libvarnishapi_la_LIBADD = \
+ $(top_builddir)/lib/libvarnish/libvarnish.la \
@SAN_LDFLAGS@ @PCRE_LIBS@ ${RT_LIBS} ${LIBM}
if HAVE_LD_VERSION_SCRIPT
More information about the varnish-commit
mailing list