[GRASS5] Can't compile CVS version on solaris 8 - undefined symbols
Scott W Mitchell
smitch at eos.geog.utoronto.ca
Thu Dec 19 11:54:05 EST 2002
Short version: how come my grass 5.0.1-cvs compile on solaris can't
find the socket functions ? Is it related to warnings about wide
character functions being redefined when compiling the grass libes ?
Long version:
I have been doing periodic cvs updates on 5.0.1-cvs source code, and
all is well on my linux and macosX machines. But I can't get a
successful compile out of a solaris machine, unfortunately. The
released version of 5.0.0 compiled fine back in September, and that is
still installed on our machines, so I have a working distribution. But
I'd like to figure out what's preventing any updates.
Hopefully this is just something strange on our machines and won't slow
down Markus' Christmas 5.0.1 aspirations ! :)
I start with getting through the configure step by setting CPPFLAGS to
-w to get past the curses check, as found in advice by Glynn in the
mailing list archives.
It then builds the libraries, apparently successfully, but with lots of
warnings about the wide character functions (putwc, getwc, etc) being
redefined. Then when it gets to actual modules, a huge number of them
don't get compiled, complaining about missing symbols. All the ones
that I've looked into are complaining about sockets (unix_socks)
For example, the first failure is in the CELL driver, and this is what
happens:
> /dat0/smitch/grass5src/src/display/devices/CELL
> make -f OBJ.sparc-sun-solaris2.8/make.rules
>
> make[1]: Entering directory
> `/dat0/smitch/grass5src/src/display/devices/CELL'
> gcc -L/dat0/smitch/grass5src/src/libes/LIB.sparc-sun-solaris2.8 -o
> /dat0/smitch/grass5src/dist.sparc-sun-solaris2.8/driver/CELL
> OBJ.sparc-sun-solaris2.8/bresline.o OBJ.sparc-sun-solaris2.8/file_io.o
> OBJ.sparc-sun-solaris2.8/polyfill.o OBJ.sparc-sun-solaris2.8/Can_do.o
> OBJ.sparc-sun-solaris2.8/Color.o OBJ.sparc-sun-solaris2.8/Draw_line.o
> OBJ.sparc-sun-solaris2.8/Get_w_box.o
> OBJ.sparc-sun-solaris2.8/Get_w_line.o
> OBJ.sparc-sun-solaris2.8/Get_w_pnt.o
> OBJ.sparc-sun-solaris2.8/Graph_Clse.o
> OBJ.sparc-sun-solaris2.8/Graph_Set.o OBJ.sparc-sun-solaris2.8/Panel.o
> OBJ.sparc-sun-solaris2.8/Polygn_abs.o
> OBJ.sparc-sun-solaris2.8/Reset_clr.o -ldriver -lgis -lm -lnsl -lz
> Undefined first referenced
> symbol in file
> socket
> /dat0/smitch/grass5src/src/libes/LIB.sparc-sun-solaris2.8/
> libgis.a(unix_socks.o)
> accept
> /dat0/smitch/grass5src/src/libes/LIB.sparc-sun-solaris2.8/
> libgis.a(unix_socks.o)
> bind
> /dat0/smitch/grass5src/src/libes/LIB.sparc-sun-solaris2.8/
> libgis.a(unix_socks.o)
> listen
> /dat0/smitch/grass5src/src/libes/LIB.sparc-sun-solaris2.8/
> libgis.a(unix_socks.o)
> connect
> /dat0/smitch/grass5src/src/libes/LIB.sparc-sun-solaris2.8/
> libgis.a(unix_socks.o)
> ld: fatal: Symbol referencing errors. No output written to
> /dat0/smitch/grass5src/dist.sparc-sun-solaris2.8/driver/CELL
> collect2: ld returned 1 exit status
> make[1]: ***
> [/dat0/smitch/grass5src/dist.sparc-sun-solaris2.8/driver/CELL] Error 1
> make[1]: Leaving directory
> `/dat0/smitch/grass5src/src/display/devices/CELL'
> GISGEN failure at STEP: src/display/devices/CELL
I haven't found anything comparable in list archives, hopefully I
haven't just missed them with bad searches. I have a feeling that it
has to do with the conflicting library versions talked about with
regards to the wide character functions, but I didn't find any
solutions in there... ?
I don't know if this helps or not, but through an accidental fluke I
discovered that if I go into the particular module source directory and
run gmake5, the module WILL compile successfully. BUT then I realized
that the gmake5 that gets found in the path is from the 5.0.0 compile,
and the 5.0.0 source tree it refers to is still there. The only
difference in the head files in these two trees is the section
referring to curses, which I don't THINK is applicable, so I guess it's
the different compiled libraries that it gets linked against. Which
lead me back to thinking it was an issue with the wide character
warnings.
So - anyone else compiling under Solaris 8 ? What
compilers/libs/patches ?
Do these errors mean anything more to anyone ?
I've tried with gcc (found by default by configure) and cc - the Sun
devel stuff installed on both machines I've tried are from the Sun
Forte suite version 6. I just tried applying all sorts of Sun patches,
and got no change.
Thanks for any suggestions.
Scott Mitchell
More information about the grass-dev
mailing list