pkgsrc-Bugs archive

[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.

--
 Jörn Clausen                             
joern.clausen%uni-bielefeld.de@localhost
 Hochschulrechenzentrum                 http://www.uni-bielefeld.de/hrz/
 Universität Bielefeld


Home | Main Index | Thread Index | Old Index