components/libgsl/Makefile
changeset 4158 120144d5f6f3
parent 4119 bdf7d6775e82
child 4339 6501cf9c29f9
--- a/components/libgsl/Makefile	Mon Apr 20 23:00:29 2015 -0700
+++ b/components/libgsl/Makefile	Tue Apr 21 12:28:30 2015 -0700
@@ -39,13 +39,21 @@
 include $(WS_MAKE_RULES)/configure.mk
 include $(WS_MAKE_RULES)/ips.mk
 
-# Recreate configure and various Makefiles to pickup libsunperf changes.
+# By default, tests in each GSL sub-directory are linked statically against
+# a set of .la files. We don't deliver those in the GSL package, so we
+# adjust all the tests to link against the dynamic GSL library instead.
+COMPONENT_POST_UNPACK_ACTION = \
+	(cd $(COMPONENT_SRC); \
+	for f in `ls */Makefile.am` ; do \
+	    $(GSED) -i -e \
+		's|^test_LDADD.*$$|test_LDFLAGS = -L`pwd`/../.libs/ -R`pwd`/../.libs/\ntest_LDADD = -lgsl|' \
+		$$f ; \
+	done)
+
+# Recreate configure and top-level Makefile to pickup libsunperf changes.
 COMPONENT_PREP_ACTION = \
 	(cd $(@D) ; ACLOCAL=aclocal-1.11 AUTOMAKE=automake-1.11 autoreconf -f)
 
-# Get rid of compiler path set in RUNPATH.
-LDFLAGS += $(studio_NORUNPATH)
-
 LDFLAGS += $(CC_BITS)
 LDFLAGS += $(studio_PIC)
 LDFLAGS += $(studio_OPT)
@@ -67,9 +75,6 @@
 
 CC += $(CC_BITS)
 
-# Needed to pass -norunpath to the shared library link.
-CC += $(studio_NORUNPATH)
-
 COMPONENT_TEST_ARGS =	-k -i
 
 # Master test results are different not only between 32-bit and 64-bit, but
@@ -99,6 +104,12 @@
 
 install:	$(INSTALL_32_and_64)
 
+# There are known problems in libsunperf that are causing GSL test failures
+# in Solaris 12 with Studio 12.4 just on the x86 platform:
+# linalg: FAIL:   LQ_update m(5,3) [88]                             (32-bit)
+# caused by 20914954 cblas_gemm differences between x86 and sparcv7
+# linalg: FAIL:   cholesky_invert hilbert(4)                        (64-bit)
+# caused by 20909151 cblas_dsymm differences between amd64 and sparcv9.
 test:		$(TEST_32_and_64)
 
 REQUIRED_PACKAGES += shell/ksh93