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