Is it a bug ?
Maybe i still dont understand how this is emmited, but anyone knows why a
cross-compiler vs normal compiler using the -fstack-protector option why
will act differnetly ?
e.g nm on same object compiled with:
cross:
U __stack_chk_fail
U __stack_chk_guard
native:
U __stack_chk_guard
somehow the cross one still put outside reference to __stack_chk_fail ...
Compilers are built with:
Using built-in specs.
Target: sparc-redhat-linux
Configured cross compiler:
../configure --prefix=/usr --enable-shared
--enable-threads=posix --enable-tls --disable-libunwind-exceptions
--enable-languages=c,c++ --disable-libgomp --enable-libssp
--with-system-zlib --enable-nls --disable-checking
--enable-__cxa_atexit --disable-libunwind-exceptions
--with-long-double-128 --with-cpu=v7 --host=x86_64-redhat-linux -
-build=x86_64-redhat-linux --target=sparc-redhat-linux
Thread model: posix
Configured native compiler:
Target: sparc64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran
--enable-java-awt=gtk --disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
--host=sparc64-redhat-linux
Thread model: posix
This makes somehow wierd things, basicly i am unable to use with
-fstack-protector a distcc regime over cross-compilers, compile processes
will fail like this on a final linking of objects:
src/util.c:229: undefined reference to `__stack_chk_guard'
A solution is to drop -fstack-protector , but really a cross cannot do it ?