[Ecls-list] Solaris SPARC issues (from latest CVS) - using Sun compiler.

Dr. David Kirkby david.kirkby at onetel.net
Sat Aug 1 21:16:40 UTC 2009

I tried to build ecl several different ways to see if I could break it. 
I thought I'd post some of the outputs, but put them in separate emails.

First, here we try the Sun compiler, on the host 't2'

kirkby at t2:[~/ecl] $ ./configure CC=/opt/SUNWspro/bin/cc 
Switching to directory `build' to continue configuration.
checking build system type... ultrasparc-sun-solaris2.10
checking host system type... ultrasparc-sun-solaris2.10
checking for gcc... /opt/SUNWspro/bin/cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no

Note, the configure script knows the compiler is not the GNU one.

Do you actually need a working Fortran compiler? If not, why check for 
one? If you do, how do I specify what one to use? Since I'm using the 
Sun C and C++ compilers, not the GNU ones, it would be silly to use the 
GNU fortran compiler. Since I've not specified a location, finally the 
'configure' script finds gfortran.

checking for g77... no
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for xlf90... no
checking for f90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... gfortran

config.status: WARNING:  '../Makefile.in' seems to ignore the 
--datarootdir setting

Eventually configure works ok

Here's some compiler warnings noted. Generally the Sun compiler is a lot 
more fussy than the GNU one.

1) There are lots of warnings about llegal option -d=gnu99

cc: Warning: illegal option -d=gnu99
cc: Warning: illegal option -d=gnu99
cc: Warning: illegal option -d=gnu99

2) One warning about the illegal option -x

  /opt/SUNWspro/bin/cc -fPIC -DPACKAGE_NAME=\"gc\" 
"-DPACKAGE_STRING=\"gc 7.1\"" -DPACKAGE_BUGREPORT=\"Hans.Boehm at hp.com\" 
-I/rootpool2/local/kirkby/ecl/src/gc/include -I libatomic_ops/src 
-DGC_BUILD -g -std=gnu99 -fPIC -Wp,-P -x assembler-with-cpp -c 
/rootpool2/local/kirkby/ecl/src/gc/sparc_mach_dep.S -o sparc_mach_dep.o
cc: Warning: illegal option -d=gnu99
cc: Warning: illegal option -x

3) Several warnings about the source code.

"/rootpool2/local/kirkby/ecl/src/gc/gcj_mlc.c", line 201: warning: 
implicit function declaration: GC_start_debugging

"/rootpool2/local/kirkby/ecl/src/gc/os_dep.c", line 1766: warning: 
initialization type mismatch

"/rootpool2/local/kirkby/ecl/src/gc/real_malloc.c", line 31: warning: 
empty translation unit

4) Finally, things go wrong, as it can't find gmp.h

  /rootpool2/local/kirkby/ecl/src/gc/install-sh -c -m 644 
  /rootpool2/local/kirkby/ecl/src/gc/install-sh -c -m 644 
  /rootpool2/local/kirkby/ecl/src/gc/install-sh -c -m 644 
make[4]: Leaving directory `/rootpool2/local/kirkby/ecl/build/gc'
make[3]: Leaving directory `/rootpool2/local/kirkby/ecl/build/gc'
make[2]: Leaving directory `/rootpool2/local/kirkby/ecl/build/gc'
sed -e 's, at ecldir\\@,/usr/local/lib/ecl-9.7.1/,g' < lsp/config.pre > 
sed -e 's, at ecldir\\@,"/usr/local/lib/ecl-9.7.1/",g' \
     -e 's, at libdir\\@,"/usr/local/lib/",g' \
     -e 's, at includedir\\@,"/usr/local/include/",g' < cmp/cmpdefs.pre > 
test -d c/ecl || mkdir c/ecl
sed 's,__declspec(dllimport),,g' 
/rootpool2/local/kirkby/ecl/src/h/external.h > c/ecl/external.h
cp /rootpool2/local/kirkby/ecl/src/h/*.h ecl/
cd c; make
make[2]: Entering directory `/rootpool2/local/kirkby/ecl/build/c'
cat /rootpool2/local/kirkby/ecl/src/c/symbols_list.h | \
sed -e 's%{\([A-Z ]*.*".*"\),[^,]*,[ ]*NULL,.*}%{\1,NULL}%g' \
     -e 's%{\([A-Z ]*.*".*"\),[^,]*,[ ]*\([^,]*\),.*}%{\1,"\2"}%g' \
     -e 's%{NULL.*%{NULL,NULL}};%' > 
if test -f ../CROSS-DPP; then touch dpp; else \
/opt/SUNWspro/bin/cc  -g -std=gnu99 -fPIC  -Dsun4sol2 
-I/rootpool2/local/kirkby/ecl/src/c -I/rootpool2/local/kirkby/ecl/build 
-I./ /rootpool2/local/kirkby/ecl/src/c/dpp.c  -o dpp ; \
cc: Warning: illegal option -d=gnu99
cc: Warning: -s conflicts with -g. -s turned off
"/rootpool2/local/kirkby/ecl/build/ecl/config.h", line 62: cannot find 
include file: "gmp.h"
cc: acomp failed for /rootpool2/local/kirkby/ecl/src/c/dpp.c
make[2]: *** [dpp] Error 2
make[2]: Leaving directory `/rootpool2/local/kirkby/ecl/build/c'
make[1]: *** [libeclmin.a] Error 2
make[1]: Leaving directory `/rootpool2/local/kirkby/ecl/build'
make: *** [all] Error 2
kirkby at t2:[~/ecl] $

So it would appear to need a bit of work on Solaris SPARC if the Sun 
compiler is used. (I did not have any better luck with the GNU compiler 
either, but I'll stick that in another email.)


More information about the ecl-devel mailing list