[Rd] Bug in configure script for Solaris v9 arch with libsunperf (PR#2530)
m.pacey@lancaster.ac.uk
m.pacey@lancaster.ac.uk
Tue Feb 4 17:54:41 2003
System details:
--------------
Sun Blade 1000, Solaris 8, Sun ONE Compiler Suite (rebranded Forte 7), R
versions 1.6.0 and 1.6.2 - suspect others are affected, too
Problem description:
-------------------
Using the recommended env var setting from p.15 of the Admin Guide, the
configure script fails the sgemm sunperf test, even though the sunperf
libraries are available
Not linking with libsunperf causes drastic performance hits on some simple
benchmarks I've tried (e.g. matrix multiplication can take up to 100 times as
long for a sufficiently large matrix (n=5000))
Solution:
--------
Configure script should use the recommended flag for inclusion of the Sun
Performance Library: -xlic_lib=sunperf (ironically, the configure script sets
this flag up if the sgemm sunperf test passes!).
Quick fix: Add the recommended flag to the compiler env vars
Description:
-----------
I'm setting the following env vars before running configure, as per the admin
guide:
export PATH=/usr/ccs/bin:$PATH
export CC="cc -xarch=v9"
export CFLAGS="-xO5 -xlibmil -dalign"
export F77="f95 -xarch=v9"
export FFLAGS="-xO5 -xlibmil -dalign"
export CXX="CC"
export CXXFLAGS="-xO5 -xlibmil -dalign"
Config.log reports the following:
configure:19929: checking for sgemm_ in -lsunperf
configure:19966: cc -xarch=v9 -o conftest -xO5 -xlibmil -dalign
-I/usr/local/include -L/usr/local/
lib conftest.c -lsunperf -lsunmath -lnsl -lsocket -lreadline -ldl -ltermcap -lm
-L/usr/local/lib
-lreadline -ldl -ltermcap -lm
-R/usr/local/packages/SUNWspro/lib/v9:/opt/SUNWspro/lib/v9 -L/usr/l
ocal/packages/SUNWspro/lib/v9 -L/usr/local/packages/SUNWspro/prod/lib/v9
-L/usr/ccs/lib/sparcv9 -L
/usr/lib/sparcv9 -lfui -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai
-lfminvai -lfmaxvai -lf
su -lsunmath >&5
Undefined first referenced
symbol in file
_stack_grow
/usr/local/packages/SUNWspro/prod/lib/v9/libsunperf.a(pp_sgemm.o)
ld: fatal: Symbol referencing errors. No output written to conftest
Problem is the v9 version seems to require stack_grow(); the xlic_lib=sunperf
does the extra linking work required:
fs% cc -xarch=v9 sgemm.c -xlic_lib=sunperf -#
### Note: NLSPATH =
/usr/local/bin/../packages/SUNWspro/bin/../prod/bin/../lib/locale/%L/LC_MESSAGE
S/%N.cat:/usr/local/bin/../packages/SUNWspro/bin/../prod/bin/../../lib/locale/%
L/LC_MESSAGES/%N.cat
### command line files and options (expanded):
### -xarch=v9 sgemm.c -xlic_lib=sunperf
/usr/local/bin/../packages/SUNWspro/bin/../prod/bin/acomp -i sgemm.c -y-fbe
-y/usr/local/bin/../packages/SUNWspro/bin/../prod/bin/fbe -y-xarch=v9 -y-o
-ysgemm.o -y-s -y-verbose -y-xmemalign=8s -xarch=v9 -fparam_ir -Qy
-D__SunOS_5_8 -D__SUNPRO_C=0x540 -D__SVR4 -D__unix -D__sun -D__sparcv9
-D__sparc -D__BUILTIN_VA_ARG_INCR -Xa -D__PRAGMA_REDEFINE_EXTNAME -Dunix -Dsun
-Dsparc -D__RESTRICT -I/usr/local/packages/SUNWspro/prod/include/cc
"-g/usr/local/bin/../packages/SUNWspro/bin/../prod/bin/cc -xarch=v9
-xlic_lib=sunperf -c " -D__SUN_PREFETCH -destination_ir=yabe
### Note: LD_LIBRARY_PATH =
/usr/local/packages/globus/lib:/usr/lib:/usr/local/lib
### Note: LD_LIBRARY_PATH_64 = /usr/lib/sparcv9:/usr/local/lib/sparcv9
### Note: LD_RUN_PATH = <null>
/usr/ccs/bin/ld /usr/local/packages/SUNWspro/prod/lib/v9/crti.o
/usr/local/packages/SUNWspro/prod/lib/v9/crt1.o
/usr/local/packages/SUNWspro/prod/lib/v9/values-xa.o
/usr/local/packages/SUNWspro/prod/lib/v9/stack_grow.o sgemm.o -lsunperf -lfui
-lfai -lfsu -lsunmath -lm -Y
"P,/usr/local/packages/SUNWspro/lib/v9:/usr/local/packages/SUNWspro/prod/lib/v9
:/usr/ccs/lib/sparcv9:/usr/lib/sparcv9" -Qy
"-R/usr/local/packages/SUNWspro/lib/v9:/opt/SUNWspro/lib/v9" -lc -Bdynamic -ldl
/usr/local/packages/SUNWspro/prod/lib/v9/crtn.o
-----
Dr Mike Pacey, Email: M.Pacey@lancaster.ac.uk
High Performance Systems Support, Phone: 01524 593543
Information Systems Services, Fax: 01524 844001
Lancaster University,
Lancaster LA1 4YW