Hi all,

this is absolutely not related to anything here but I do not know where to ask else and I think somebody here will definetly know what I am doing wrong:

After having plenty of problems on my Solaris 8 x86 box with gcc and the linker provided by solaris I now found out the following which I absolutely do not understand and which seems to be the cause of many (if not all) of my problems...

schulte-03:58:27:~ >echo "int main() { return 0; }" > conftest.c
schulte-03:58:33:~ >gcc -O3 -static conftest.c -o conftest
schulte-03:58:38:~ >./conftest
Segmentation Fault (core dumped)
schulte-03:58:42:~ >ldd conftest
ldd: conftest: file is not a dynamic executable or shared object
schulte-04:04:11:~ >gcc -O3 conftest.c -o conftest
schulte-04:05:13:~ >./conftest
schulte-04:05:16:~ >ldd conftest
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1


Because mainly all configure-scripts will do some kind of this and will fail with LDFLAGS="-static" in the very beginning I cannot build static binaries with gcc and solaris ld. The question is simple: Why does that simple binary produce a segfault ? Shouldn't that run ? ldd correctly states that conftest is not a shared object (and that is what I want!) but however that segfaults. Maybe this is a totally stupid thing to ask but after hours of reading manpages of ld and even trying to change things in the compilers' spec-file I cannot get gcc to produce a statically linked binary which does not segfault ! Because I am not that familiar with the compiler and ld (it is Solaris-ld called by gcc with no gld being present!) I hope someone has had that before or knows where I am too stupid ? I started playing with the -Xlinker option of gcc but it is the same result all the time:


schulte-04:30:02:~ >gcc -O3 -Xlinker -dn -Xlinker -Bstatic -Xlinker -a conftest.c -o conftest
schulte-04:30:19:~ >./conftest
Segmentation Fault (core dumped)
schulte-04:30:24:~ >ldd conftest
ldd: conftest: file is not a dynamic executable or shared object
schulte-04:30:28:~ >


Here are the versions of the tools being used:

schulte-04:11:06:~ >gcc -v
Reading specs from /usr/local/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/specs
gcc version 2.95.3 20010315 (release)
schulte-04:19:32:~ >ld -V
ld: Software Generation Utilities - Solaris-ELF (4.0)

Can anybody help ?

--Christian--



Reply via email to