libtool-patches
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail


reply via email to

[Prev in Thread] Current Thread [Next in Thread]