svn commit: trunk/uClibc/include

Peter S. Mazinger ps.m at gmx.net
Tue Jan 17 08:51:11 UTC 2006


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

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)

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