On Thu, 5 Sep 2002, Jonathan Lim wrote:
> On Thu Sep 5 05:24:34 2002, coyote@xxxxxxxxxxxxxxx wrote:
> >
> > After browsing through the list archives for a while, I came up with a patch
> > against inventor-2.1.5-9 that lets one compile it end to end under
> > Solaris/Sparc (tested under Solaris 8 02/02 with gcc 2.95.3).
>
> A number of the makefile changes involve adding "-lXm -lXt -lX11 -lGLU -lGL"
> to
> LLDLIBS. libInventorXt.so depends on them and should be able to pull them in
> as
> needed.
Hello Jonathan,
Thanks for your reply...
Here is what happens with SUN ld if you don't append the libs to the link
line (example with noodle):
root@ergoth:[/tmp/OpenInventor-2.1.5.9.2/apps/demos/noodle ]gmake
/opt/sfw/bin/g++ -L//usr/local/lib -L/usr/openwin/lib NoodleSlider.o
Interface.o NoodleSurfaceGizmo.o WorldInfo.o LineManip.o
NoodleTextureGizmo.o noodle.o LineManipHilight.o profile.o
../../nodes/GeneralizedCylinder/NurbMaker.o
../../nodes/GeneralizedCylinder/Triangulator.o
../../nodes/GeneralizedCylinder/GeneralizedCylinder.o -lInventor
-lInventorXt -o noodle
Undefined first referenced
symbol in file
XmToggleButtonGetState Interface.o (symbol belongs to implicit
dependency /lib/libXm.so.4)
XmCreateLabelGadget NoodleSurfaceGizmo.o (symbol belongs to
implicit dependency /lib/libXm.so.4)
XmCreateText NoodleSurfaceGizmo.o (symbol belongs to
implicit dependency /lib/libXm.so.4)
XmCreateRowColumn noodle.o (symbol belongs to implicit
dependency /lib/libXm.so.4)
[....continued.....]
XInternAtom noodle.o (symbol belongs to implicit
dependency /usr/openwin/lib/libX11.so.4)
ld: fatal: Symbol referencing errors. No output written to noodle
collect2: ld returned 1 exit status
gmake: *** [noodle] Error 1
A newsgroup post from Casper Dik (from SUN) explains this behaviour:
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&frame=right&th=28295c6a5d7d780d&seekm=casper.866891871%40uk-usenet.uk.sun.com#link3
[..quote....]
The reason for this behaviour is simple; the implicit
dependency to libnsl.so.1 may change at one point, e.g., when libsocket
would become self-contained. Programs that previously relied on this
implicit dependency would then fail with undefined symbols at runtime.
Making the symbols from the implicit dependencies visible to
other objects is therefor wrong.
[..quote....]
But I agree that I should set a make define (as in SUNLLDLIBS) and use
SUNLLDLIBS in the makefiles instead...
Do you want me to do that? Would you prefer it in a different manner?
,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,
Vincent S. Cojot, Computer Engineering. STEP project. _.,-*~'`^`'~*-,._.,-*~
Ecole Polytechnique de Montreal, Comite Micro-Informatique. _.,-*~'`^`'~*-,.
Linux Xview/OpenLook resources page _.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'
http://step.polymtl.ca/~coyote _.,-*~'`^`'~*-,._ coyote@xxxxxxxxxxxxxxx
They cannot scare me with their empty spaces
Between stars - on stars where no human race is
I have it in me so much nearer home
To scare myself with my own desert places. - Robert Frost
|