[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] avoid undefined symbols with SunStudio12 f77/f90 in FORTRAN auto
From: |
Gary V. Vaughan |
Subject: |
[PATCH] avoid undefined symbols with SunStudio12 f77/f90 in FORTRAN autotests |
Date: |
Sun, 22 Dec 2013 17:28:47 +1300 |
Hi,
I don't know FORTRAN, or whether this patch is actually sensible, so I'm
posting here for feedback from someone more familiar with such things than
me. Unless someone tells me that this is wrong, I'll apply in a few days.
First of all, modern SunStudio f77 is just a wrapper for f90, which
explains why current master fails these test groups with:
Undefined first referenced
symbol in file
__f90_slw_ch .libs/foof2.o (symbol belongs to implicit dependency
/opt/solstudio12.2/lib/libfsu.so.1)
__f90_sslw .libs/foof2.o (symbol belongs to implicit dependency
/opt/solstudio12.2/lib/libfsu.so.1)
__f90_eslw .libs/foof2.o (symbol belongs to implicit dependency
/opt/solstudio12.2/lib/libfsu.so.1)
ld: fatal: symbol referencing errors. No output written to
.libs/libfoo2.so.0.0.0
There are two ways to work around this failure:
1. Add $(FLIBS) to all xx_la_LIBADD lines, which is unlikely to be
remembered by anyone not using SunStudio because it works fine
without everywhere else. Further, the final demo links continue
to fail for a lack of a printf definition -- but that might well
be another bug in the tests. Should we also be adding -lc to a
mixed mode link? In the test Makefiles, or automatically with
libtool?
2. Allow some undefined symbols in the libraries, which are resolved
by the $(FLIBS) added to the final binaries in the tests. This
seems like the simpler, and less error inducing solution to me.
Comments?
Cheers,
Gary
Index: tests/f77demo.at
===================================================================
--- tests/f77demo.at.orig
+++ tests/f77demo.at
@@ -63,17 +63,13 @@ ACLOCAL_AMFLAGS = -I m4
lib_LTLIBRARIES = libfoo.la libmix.la libfoo2.la libfoo3.la
libfoo_la_SOURCES = foof.f
-libfoo_la_LDFLAGS = -no-undefined
libfoo_la_LIBADD = libfoo2.la
libfoo2_la_SOURCES = foof2.f
-libfoo2_la_LDFLAGS = -no-undefined
libfoo3_la_SOURCES = foof3.f
-libfoo3_la_LDFLAGS = -no-undefined
libmix_la_SOURCES = foof.f foof2.f fooc.c
-libmix_la_LDFLAGS = -no-undefined
noinst_HEADERS = foo.h
Index: tests/fcdemo.at
===================================================================
--- tests/fcdemo.at.orig
+++ tests/fcdemo.at
@@ -67,17 +67,13 @@ ACLOCAL_AMFLAGS = -I m4
lib_LTLIBRARIES = libfoo.la libmix.la libfoo2.la libfoo3.la
libfoo_la_SOURCES = foof.f90
-libfoo_la_LDFLAGS = -no-undefined
libfoo_la_LIBADD = libfoo2.la
libfoo2_la_SOURCES = foof2.f90
-libfoo2_la_LDFLAGS = -no-undefined
libfoo3_la_SOURCES = foof3.f90
-libfoo3_la_LDFLAGS = -no-undefined
libmix_la_SOURCES = foof.f90 foof2.f90 fooc.c
-libmix_la_LDFLAGS = -no-undefined
noinst_HEADERS = foo.h
signature.asc
Description: Message signed with OpenPGP using GPGMail
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] avoid undefined symbols with SunStudio12 f77/f90 in FORTRAN autotests,
Gary V. Vaughan <=