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