[GRASS5] CVS version of grass5 failing to compile nviz & r.in.gdal because of -ldl flag
Glynn Clements
glynn.clements at virgin.net
Wed Nov 20 01:11:44 EST 2002
Scott W Mitchell wrote:
> I'm sorry, I didn't search for all the possibilities when I concluded
> that libdl was not on my system. Turns out there's a libdl.0.dylib in
> /sw/lib, which is where the fink packaging system puts things under Mac
> OS. Not sure how I managed to miss that, must have been dumb mistake.
>
> Sure enough, configure found it:
>
> configure:4491: checking for dlsym in -ldl
> configure:4508: gcc -o conftest -g -O2 -I/sw/include -L/sw/lib
> conftest.c -
> ldl 1>&5
> configure:4535: checking for iconv
> ...
>
>
> So, then the question is why the nviz compile can't find it:
> ld: can't locate file for: -ldl
> I guess it has to do with Darwin peculiarities re: shared libs, but we
> just hit the walls of my understanding again. I don't see anything
> that explains it to me at
> http://fink.sourceforge.net/doc/porting/shared.php
>
> I THOUGHT it might be to do with the problem reported at:
> http://www.opendarwin.org/en/faq.php#linksym
>
> because that says all the -L and -l statements need to be listed AFTER
> the object files, and that isn't the case in the failed compile above.
> But typing it in all manually at the command prompt so that the -L's
> and -l's come last did not change / get rid of the ld error for me.
My suspicion is that this is an oughtright bug rather than just a
"peculiarity". However, you could try performing the configure check
manually in two stages (compile, link) with:
gcc -c -g -O2 -I/sw/include conftest.c
gcc -o conftest -g -O2 -L/sw/lib conftest.o -ldl
in case there is a difference between compiling/linking in one step
(as is done by configure) and linking separately (as is done by the
actual build process).
The actual test program is just:
char dlsym();
int main() {
dlsym()
; return 0; }
OTOH, it might be related to the number of linker switches. This is
partly gratuituous; NVIZ2.2/src/Gmakefile shouldn't be explicitly
referencing the X libraries; however, it should be referencing both
OpenGL and Tcl/Tk, and both of those may have the X libraries as
dependencies.
--
Glynn Clements <glynn.clements at virgin.net>
More information about the grass-dev
mailing list