[Spread-cvs] commit: r354 - in trunk: daemon libspread

jonathan at spread.org jonathan at spread.org
Sun Jun 4 01:10:05 EDT 2006


Author: jonathan
Date: 2006-06-04 01:10:05 -0400 (Sun, 04 Jun 2006)
New Revision: 354

Modified:
   trunk/daemon/Changelog
   trunk/libspread/Makefile.in
Log:
Fix for build failure on x86-64/linux.
Change way libspread.so is linked so that it directly 
includes the shared, thread-safe stdutil object files into the libspread.so 
library instead of trying to extract them from the stdutil.a or stdutil.so libraries.



Modified: trunk/daemon/Changelog
===================================================================
--- trunk/daemon/Changelog	2006-05-24 16:36:53 UTC (rev 353)
+++ trunk/daemon/Changelog	2006-06-04 05:10:05 UTC (rev 354)
@@ -1,3 +1,12 @@
+Sun Jun  4 01:01:51 2006  Jonathan Stanton  <jonathan at cnds.jhu.edu>
+
+	* Makefile.in (SHARED_STDUTIL): Change libspread.so target
+	to merge stdutil library objects directly by including the 
+	object files rather then linking in the stdutil archive. This
+	fixes the linking problem for platforms which require -fPIC
+	for all shared library code. Specifically this fixes the build
+	failure on x86-64/linux. 
+
 Wed Mar  1 08:05:32 2006  Jonathan Stanton  <jonathan at cnds.jhu.edu>
 
 	* libspread/sp.c, fl.c, include/sp.h, sp_func.h (SP_get_vs* memb_info()):

Modified: trunk/libspread/Makefile.in
===================================================================
--- trunk/libspread/Makefile.in	2006-05-24 16:36:53 UTC (rev 353)
+++ trunk/libspread/Makefile.in	2006-06-04 05:10:05 UTC (rev 354)
@@ -80,7 +80,13 @@
 
 LIBTFL_SHOBJS= fl.tlo scatp.tlo alarm.tlo events.tlo memory.tlo sp.tlo
 
+# A bit of a hack to grab the -fPIC threaded object files to merge into the shared spread library
+# since the stdutil.so cannot be merged, and the stdutil.a is not compiled -fPIC
+# Can be fixed correctly if stdutil generates incremental shared library versions
+STDUTIL_DIR=../stdutil/src
 
+SHARED_STDUTIL= $(STDUTIL_DIR)/stdarr.lto $(STDUTIL_DIR)/stdcarr.lto $(STDUTIL_DIR)/stddll.lto $(STDUTIL_DIR)/stderror.lto $(STDUTIL_DIR)/stdfd.lto $(STDUTIL_DIR)/stdhash.lto $(STDUTIL_DIR)/stdit.lto $(STDUTIL_DIR)/stdskl.lto $(STDUTIL_DIR)/stdthread.lto $(STDUTIL_DIR)/stdtime.lto $(STDUTIL_DIR)/stdutil.lto
+
 all: $(TARGETS)
 
 .c.o:
@@ -156,7 +162,7 @@
 	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libspread.$(LIBVERSION).dylib libspread.dylib)
 
 libspread.so:	$(LIBTFL_SHOBJS)
-	$(SHLD) -o $@ $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) ../stdutil/lib/libstdutil-threaded-release.a $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS)
+	$(SHLD) -o $@ $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHARED_STDUTIL) $(SHLIBS) $(THLIBS)
 
 install-libspread.so:	libspread.so
 	$(INSTALL) -m 0755 libspread.so $(DESTDIR)$(libdir)/libspread.so.$(LIBVERSION)




More information about the Spread-cvs mailing list