[uClibc]setjmp() issue with ARM shared libs

Shane Nay shane at minirl.com
Thu Jun 21 16:47:46 UTC 2001


(Sorry for CCing you Phil, but I thought you might have a reasonable answer 
to the behaviour I'm getting)

Okay, some weird stuff is happening when I have an app that uses setjmp (such 
as ash), basically setjmp -> __sigsetjmp on Intel and ARM with uClibc, which 
is fine.  But the ARM linker is setting __sigsetjump as 'B', or in the .bss 
section, while the i386 linker is setting it properly as 'U', a function to 
be resolved.  It works fine on i386/uClibc, but crashes hard trying to branch 
to some spot in .bss that hasn't been initialized.  (It's just /dev/zero at 
this point in the game as it's just about the first thing in main())

Any ideas?  Maybe it's some broken headers?  With arm glibc, it works fine, 
and sets up setjmp to _setjmp and as a function to be resolved.  It's either 
a bug in the linker, or a bug in our headers I think...

Thanks,
Shane Nay.





More information about the uClibc mailing list