svn commit: trunk/uClibc/include
Peter S. Mazinger
ps.m at gmx.net
Tue Jan 17 10:54:12 UTC 2006
On Tue, 17 Jan 2006, Peter S. Mazinger wrote:
> On Mon, 16 Jan 2006 vapier at uclibc.org wrote:
>
> > Author: vapier
> > Date: 2006-01-16 16:54:27 -0800 (Mon, 16 Jan 2006)
> > New Revision: 13372
> >
> > Log:
> > sync some stuff from glibc and fix __hidden_ver1() for targets that define a USER_PREFIX (like bfin)
> >
> > Modified:
> > trunk/uClibc/include/libc-internal.h
> >
> >
> > Changeset:
> > Modified: trunk/uClibc/include/libc-internal.h
> > ===================================================================
> > --- trunk/uClibc/include/libc-internal.h 2006-01-17 00:41:23 UTC (rev 13371)
> > +++ trunk/uClibc/include/libc-internal.h 2006-01-17 00:54:27 UTC (rev 13372)
> > @@ -21,6 +21,39 @@
> >
> > #include <features.h>
> >
> > +#undef __SYMBOL_PREFIX
> > +#ifndef __SYMBOL_PREFIX
> > +# ifdef NO_UNDERSCORES
> > +# define __SYMBOL_PREFIX
> > +# else
> > +# define __SYMBOL_PREFIX "_"
> > +# endif
> > +#endif
>
> NO_UNDERSCORES should be default, else we have to define in all currently
> working archs NO_UNDERSCORES
>
> > +
> > +#undef C_SYMBOL_NAME
> > +#ifndef C_SYMBOL_NAME
> > +# ifdef NO_UNDERSCORES
> > +# define C_SYMBOL_NAME(name) name
> > +# else
> > +# define C_SYMBOL_NAME(name) _##name
> > +# endif
> > +#endif
>
that is completely wrong and builds now fail on supported archs (without
prefix), please revert to earlier version (see what Rules.mak does about
__SYMBOL_PREFIX too). I don't see the reason moving this part out of
__ASSEMBLER__ either
Peter
> I hoped you find a way to use the prefix from .config ;-(
>
> C_SYMBOL_NAME = __SYMBOL_PREFIX ## name ?
>
> > +
> > +#ifndef ASM_LINE_SEP
> > +# define ASM_LINE_SEP ;
> > +#endif
>
> not used, do we have other separator then ; ?
>
> > +
> > +#ifdef HAVE_ASM_GLOBAL_DOT_NAME
> > +# ifndef C_SYMBOL_DOT_NAME
> > +# if defined __GNUC__ && defined __GNUC_MINOR__ \
> > + && (__GNUC__ << 16) + __GNUC_MINOR__ >= (3 << 16) + 1
> > +# define C_SYMBOL_DOT_NAME(name) .name
> > +# else
> > +# define C_SYMBOL_DOT_NAME(name) .##name
> > +# endif
> > +# endif
> > +#endif
>
> this seems to me to be used only by ppc64 (in glibc)
all above is only __ASSEMBLER__ issue
> please change then the related parts as well to support the last 2 above.
>
> > +
> > #ifndef __ASSEMBLER__
> > /* GCC understands weak symbols and aliases; use its interface where
> > possible, instead of embedded assembly language. */
> > @@ -47,12 +80,6 @@
> >
> > #else /* __ASSEMBLER__ */
> >
> > -#ifdef __SYMBOL_PREFIX
> > -# define C_SYMBOL_NAME(name) _##name
> > -#else
> > -# define C_SYMBOL_NAME(name) name
> > -#endif
> > -
> > # define strong_alias(name, aliasname) \
> > .global C_SYMBOL_NAME (aliasname) ; \
> > .set C_SYMBOL_NAME(aliasname),C_SYMBOL_NAME(name)
> > @@ -257,7 +284,7 @@
> > # define __hidden_asmname2(prefix, name) #prefix name
> > # define __hidden_ver1(local, internal, name) \
> > extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
> > - extern __typeof (name) __EI_##name __attribute__((alias (__hidden_asmname (#local))))
> > + extern __typeof (name) __EI_##name __attribute__((alias (__hidden_asmname1 (,#local))))
>
> so you were right and glibc wrong ...
>
> Peter
>
>
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
More information about the uClibc
mailing list