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