]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rsocket: Build librspreload 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 the rsocket preload library as part of the build.  To reduce the
risk of the preload library intercepting calls without the user's
knowledge, the preload library is installed into {_libdir}/rsocket.

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

index 51b2f899c461e26686ae09800632ffebed8b6e0d..064bd1f90a4280de1290c8e6a1ea51c0f55f7a5c 100644 (file)
@@ -1,16 +1,21 @@
 INCLUDES = -I$(srcdir)/include
 
+rslibdir = $(libdir)/rsocket
 lib_LTLIBRARIES = src/librdmacm.la
+rslib_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..4652bbcca3c63422151648dd9820626ce54eff58 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}/librdmacm*.so
+%{_libdir}/rsocket/librspreload*.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: *;
+};