[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