[uClibc] Issues with ".hidden" libgcc symbols in soft-float code

Manuel Novoa III mjn3 at codepoet.org
Wed Sep 24 16:16:48 UTC 2003


Hello,

On Wed, Sep 24, 2003 at 11:59:57AM -0400, Sevy Jonathan wrote:
> - There seems to be a bug in the get-needed-libgcc-objects.sh script in the uClibc-0.9.21 distribution: the line
> 
> if $NM --undefined-only libc.ldr 2>&1 | sed -s 's/ *$//' | sed -e 's/^.*U  *//' | grep -v "main$" | grep -v "_GLOBAL_OFFSET_TABLE_$" | grep -v "_gp_disp" | grep -v "^etext$" | grep -v "^__gmon_start__$" > sym.need ; then
> 
> uses "sed -s", which isn't recognized by my version of sed, and the symbols don't get included (but the make doesn't abort!); replacing it with "sed -e" seems to correct the problems:

It was a typo, and was fixed in cvs about 2 weeks ago.

> - After correcting the above issue, I built the gcc-3.3.1 toolchain and uClibc libraries using Erik Andersen's build scripts, building shared libraries and selecting "INCLUDE_LIBGCC_SYMBOLS" in the uClibc configuration, and found that the libgcc symbols are in fact included in the resulting libc (verified using nm and objdump). However, these come with the ".hidden" attribute that's included in the gcc-3.3.1 libgcc. This wouldn't be a problem except that libm uses some of these symbols as well; normally, libm would be able to resolve these through libc, but with the hidden attribute libm can't use these.

I think Erik emailed the gcc list when he ran into this.  But I don't
know what (if any) response he got.

Manuel



More information about the uClibc mailing list