VCL-LDPRELOAD: statically link VPP objects into libvcl_ldpreload.so
Change-Id: If8fb5484b64a5b1c04e34573490fedcf63feabc9
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
diff --git a/src/vcl.am b/src/vcl.am
index de8b4da..763efc2 100644
--- a/src/vcl.am
+++ b/src/vcl.am
@@ -18,15 +18,11 @@
libvppcom_la_DEPENDENCIES = \
libvppinfra.la \
libvlib.la \
- libsvmdb.la \
libsvm.la \
- libvlibmemory.la \
libvlibmemoryclient.la
-libvcl_ldpreload_la_DEPENDENCIES = $(libvppcom_la_DEPENDENCIES)
-
-libvppcom_la_LIBADD = $(libvppcom_la_DEPENDENCIES) -lpthread
-libvcl_ldpreload_la_LIBADD = $(libvcl_ldpreload_la_DEPENDENCIES) -lpthread
+libvppcom_la_LIBADD = $(libvppcom_la_DEPENDENCIES) -lpthread -lrt
+libvcl_ldpreload_la_LIBADD = -lpthread -lrt -ldl
libvppcom_la_SOURCES += \
vcl/vppcom.c
@@ -38,7 +34,11 @@
vcl/vcom_socket_wrapper.c \
vcl/vcom.c \
vcl/vcom_socket.c \
- vcl/vppcom.c
+ $(libvppcom_la_SOURCES) \
+ $(libvppinfra_la_SOURCES) \
+ $(libvlib_la_SOURCES) \
+ $(libsvm_la_SOURCES) \
+ $(libvlibmemoryclient_la_SOURCES)
nobase_include_HEADERS += \
vcl/vcom_socket_wrapper.h \
@@ -56,7 +56,15 @@
vcl_test_server_LDADD = libvppcom.la
vcl_test_client_SOURCES = vcl/vcl_test_client.c
-vcl_test_client_LDADD = libvppcom.la
+
+# Link libvcl_ldpreload.la instead of vppcom.la
+# to validate that all symbols are included in
+# libvcl_ldpreload.la at build time.
+#
+# Not recommended for production VCL apps as
+# it includes extraneous code which will never
+# be executed.
+vcl_test_client_LDADD = libvcl_ldpreload.la
sock_test_server_SOURCES = vcl/sock_test_server.c
sock_test_client_SOURCES = vcl/sock_test_client.c