Prepending underscores to symbol names in dlsym() (commit 20613)

Mike Frysinger vapier at gentoo.org
Tue Jan 8 15:44:52 UTC 2008


On Tuesday 08 January 2008, Will Newton wrote:
> On Jan 8, 2008 10:14 AM, Paul Mundt <lethal at linux-sh.org> wrote:
> > > Hmm, no, I think what I said is correct. If no underscores is NOT
> > > defined then we prepend the underscore.
> >
> > You both appear to be in agreement on the result. The patch does
> > precisely what is described:
>
> Incidentally the patch I refer to is not the posted one, the patch I
> was referring to is this one:
>
> http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/uClibc/ldso/libdl/lib
>dl.c?rev=20613&r1=20612&r2=20613

the change looks correct to me, and it works on Blackfin, so ...

i386/bits:#define __UCLIBC_NO_UNDERSCORES__
libdl code:
#ifndef __UCLIBC_NO_UNDERSCORES__
<add _>
#else
<do not add _>
#endif

so on i386, the code path which prepends _ is not taken

> > > > +++ trunk/uClibc/ldso/include/dl-defs.h 2007-12-03 22:46:53 UTC (rev
> > > > 20613) @@ -175,4 +175,10 @@
> > > >  # define DL_MALLOC_ALIGN (__WORDSIZE / 8)
> > > >  #endif
> > > >
> > > > +#ifdef __UCLIBC_NO_UNDERSCORES__
> > > > +#define __C_SYMBOL_PREFIX__ ""
> > > > +#else
> > > > +#define __C_SYMBOL_PREFIX__ "_"
> > > > +#endif
> > > > +
> > > >  #endif /* _LD_DEFS_H */
> >
> > Additionally, this sort of backwards logic is precisely why having
> > inverted ifdef logic is absolute brain-damage.
>
> Agreed.

i'll drop the _NO_ and invert the ifdefs, but that doesnt involve actually 
changing any of the logic of how things work which still means the current 
code is correct
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: This is a digitally signed message part.
Url : http://lists.busybox.net/pipermail/uclibc/attachments/20080108/9ab2b2fa/attachment-0002.pgp 


More information about the uClibc mailing list