On Mon, 2007-10-08 at 14:01 +0200, Carmelo AMOROSO wrote: > Joakim Tjernlund wrote: > > On Mon, 2007-10-08 at 12:15 +0200, Carmelo AMOROSO wrote: > > > >> Joakim Tjernlund wrote: > >> > >>> On Mon, 2007-10-08 at 09:10 +0200, Carmelo AMOROSO wrote: > >>> > >>> > >>>> Hi Folks, > >>>> as reported into glibc bug #5104 > >>>> (http://sourceware.org/bugzilla/show_bug.cgi?id=5104) > >>>> > >>>> > >>>> > >>> [snip] > >>> > >>> I am good with this change. One question though: I don't think the > >>> STT_SECTION and STT_FILE are present in a relocatable object. If this > >>> is true(needs to be checked), then the above if stmt can be changed to: > >>> #define STT_RELOC_MAX STT_TLS > >>> or > >>> #define STT_RELOC_MAX STT_COMMON > >>> if (ELF_ST_TYPE(sym->st_info) > STT_RELOC_MAX) > >>> > >>> or if the above assumption is true only for STT_FILE > >>> if (ELF_ST_TYPE(sym->st_info) > STT_RELOC_MAX || > >>> ELF_ST_TYPE(sym->st_info) == STT_SECTION) > >>> > >>> > >> This is the case, STT_SECTION symbol are present into symbol table of > >> the libuClibc.so.0 for sure. > >> Actually, I did not find any STT_FILE symbols... > >> > > > > Right, but they are STB_LOCAL I think. If so they are skipped anyway. > > > Yes, they are STB_LOCAL, but we should skip them earlier to avoid > calling a pointless strcmp... right?
Yes, but their st_value *might* be 0. If so, then they are skipped anyway. Eeh, just noticed they are not 0. You might not hit the default: case in the switch stmt very often(or at all) Just trying to keep this function as clean/fast as possible. When TLS gets added it might get ugly. Anyhow, I accept your orginal fix, but if you want to experiment/reseach this issue you are most welcome :) Jocke > > Carmelo > > _______________________________________________ uClibc mailing list [email protected] http://busybox.net/cgi-bin/mailman/listinfo/uclibc
