[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/46478: www/curl does not compile on Solaris/sparc with compiler not configured with devel/libelf
I did some more tests, finally:
I can compile the test from the configure script stand alone without
problems. If I truss the complete compile run, I see that the system
libelf is used twice:
20943: open("/lib/libelf.so", O_RDONLY) = 4
20947: open("/lib/libelf.so.1", O_RDONLY) = 3
The first process is the assembler (/usr/ccs/bin/as), the second one the
linker (/usr/ccs/bin/ld). When I repeat this with LD_LIBRARY_PATH set to
pkgsrc's library directory, this happens:
20856: open("/usr/pkgsrc/20120411/lib/libelf.so", O_RDONLY) = 4
20860: open("/lib/libelf.so.1", O_RDONLY) = 3
I.e. the assembler uses pkgsrc's libelf, the linker still the native
one. Apart from the fact, that ELF should be ELF and the code generated
with one libelf should probably still be readable by the other, this
seems to be root of the problem.
Note that the assembler uses the library without version number, the
linker requests a specific version of the library. Note further, that
pkgsrc's libelf only provides the suffixes .0 and .0.0.0.
So, why is this only a problem on sparc but not on i86? It turns out,
that the assembler on i86 does not read libelf at all, so it can't
switch between the native and the pkgsrc version.
One workaround might be to add a symlink libelf.so.1 pointing to
pkgsrc's version of libelf, so that one is always used. But maybe
someone has a better idea.
Main Index |
Thread Index |