Segfault of executables with shared libraries.
Colin Whittaker
colinw at occamnetworks.com
Tue Mar 3 02:56:26 UTC 2009
Bernhard Reutner-Fischer wrote:
> On Mon, Mar 02, 2009 at 04:13:27PM -0800, Colin Whittaker wrote:
>
>
>> Does one of the buildroot debug flags turn off __inline__ ? (I currently
>> have them all on.) If so, that is catastrophic for this function.
>> Is there a way to force __inline__ to work no matter the compile time
>> flags ?
>>
>
> I suggest you try to reproduce this with a current toolchain, like instead of
>
>
>> uClibc 0.9.29
>> gcc 4.2.3
>> binutils 2.18
>> Kernel headers 2.6.21.5
>>
>
> uClibc 0.9.30.1
> gcc 4.3.3
> binutils 2.19.1
> Kernel headers 2.6.28.x (or similar)
>
> You may want to double-check against my tree, for your convenience.
> See instructions at http://repo.or.cz/w/buildroot.git/
>
Thanks, but I can't change gcc version or kernel header version and I
have tried the others with the same results.
I did find a fix for this, but lots of differing opinions on the web
about the inline directive and gcc.
The fix is to change all the "__inline__" directives in
ldso/ldso/mips/dl-sysdep.h to
inline __attribute__((always_inline))
This created code without any function calls in _dl_start(). At least
for my gcc 3.4.6 native compiler.
Another fix would be to make these functions macros, just in case the
inline rules change again.
Colin..
More information about the uClibc
mailing list