]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rsocket: Build rspreload library as part of build
authorSean Hefty <sean.hefty@intel.com>
Mon, 9 Jul 2012 21:58:14 +0000 (14:58 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 9 Jul 2012 21:58:14 +0000 (14:58 -0700)
Build rspreload.so, but do not install it.  This avoids the
need for the user to build it manually, without risking that
the preload library intercepts socket calls without the user's
explicit knowledge.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Makefile.am
librdmacm.spec.in
src/librspreload.map [new file with mode: 0644]

index 51b2f899c461e26686ae09800632ffebed8b6e0d..23d97f4e01e91834e4c634ab95200b7fc873513d 100644 (file)
@@ -1,16 +1,21 @@
 INCLUDES = -I$(srcdir)/include
 
+rslibdir = $(libdir)/rsocket
 lib_LTLIBRARIES = src/librdmacm.la
+rslibdir_LTLIBRARIES = src/librspreload.la
 
 ACLOCAL_AMFLAGS = -I config
 AM_CFLAGS = -g -Wall -D_GNU_SOURCE -DSYSCONFDIR=\"$(sysconfdir)\" -DRDMADIR=\"@rdmadir@\"
 
 src_librdmacm_la_CFLAGS = $(AM_CFLAGS)
+src_librspreload_la_CFLAGS = $(AM_CFLAGS)
 
 if HAVE_LD_VERSION_SCRIPT
     librdmacm_version_script = -Wl,--version-script=$(srcdir)/src/librdmacm.map
+    librspreload_version_script = -Wl,--version-script=$(srcdir)/src/librspreload.map
 else
     librdmacm_version_script =
+    librspreload_version_script =
 endif
 
 src_librdmacm_la_SOURCES = src/cma.c src/addrinfo.c src/acm.c \
@@ -19,6 +24,12 @@ src_librdmacm_la_LDFLAGS = -version-info 1 -export-dynamic \
                           $(librdmacm_version_script)
 src_librdmacm_la_DEPENDENCIES =  $(srcdir)/src/librdmacm.map
 
+src_librspreload_la_SOURCES = src/preload.c src/indexer.c
+src_librspreload_la_LDFLAGS = -version-info 1 -export-dynamic \
+                          $(librspreload_version_script)
+src_librspreload_la_DEPENDENCIES =  $(srcdir)/src/librspreload.map
+src_librspreload_la_LIBADD = $(top_builddir)/src/librdmacm.la
+
 bin_PROGRAMS = examples/ucmatose examples/rping examples/udaddy examples/mckey \
               examples/rdma_client examples/rdma_server examples/rdma_xclient \
               examples/rdma_xserver examples/rstream examples/rcopy
@@ -116,7 +127,7 @@ man_MANS = \
        man/rdma_cm.7 \
        man/rsocket.7
 
-EXTRA_DIST = src/cma.h src/indexer.h src/librdmacm.map \
+EXTRA_DIST = src/cma.h src/indexer.h src/librdmacm.map src/librspreload.map \
        librdmacm.spec.in $(man_MANS)
 
 dist-hook: librdmacm.spec
index 72481374e9c56ad528c62f04efa8bbc1921a0682..fe4ae9752713f3e4f2cc7b1fff40723f5f080ece 100644 (file)
@@ -44,6 +44,7 @@ rm -rf $RPM_BUILD_ROOT
 %makeinstall
 # remove unpackaged files from the buildroot
 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/rsocket/*.la
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -53,13 +54,16 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(-,root,root,-)
-%{_libdir}/librdmacm*.so.*
+%{_libdir}/lib*.so.*
+%{_libdir}/rsocket/lib*.so.*
 %doc AUTHORS COPYING README
 
 %files devel
 %defattr(-,root,root)
 %{_libdir}/lib*.so
+%{_libdir}/rsocket/lib*.so
 %{_libdir}/*.a
+%{_libdir}/rsocket/*.a
 %{_includedir}/*
 %{_mandir}/man3/*
 %{_mandir}/man7/*
diff --git a/src/librspreload.map b/src/librspreload.map
new file mode 100644 (file)
index 0000000..554050d
--- /dev/null
@@ -0,0 +1,30 @@
+RSPRELOAD_1.0 {
+       global:
+               socket;
+               bind;
+               listen;
+               accept;
+               connect;
+               shutdown;
+               close;
+               recv;
+               recvfrom;
+               recvmsg;
+               send;
+               sendto;
+               sendmsg;
+               read;
+               readv;
+               write;
+               writev;
+               poll;
+               select;
+               getpeername;
+               getsockname;
+               setsockopt;
+               getsockopt;
+               fcntl;
+               poll;
+               select;
+       local: *;
+};