diff options
| -rw-r--r-- | include/libc-symbols.h | 44 | 
1 files changed, 34 insertions, 10 deletions
| diff --git a/include/libc-symbols.h b/include/libc-symbols.h index c5ec2814f..391d53f1b 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -1,4 +1,7 @@ -/* Copyright (C) 1991,92,93,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. +/* Support macros for making weak and strong aliases for symbols, +   and for using symbol sets and linker warnings with GNU ld. +   Copyright (C) 1995-1998,2000-2003,2004,2005,2006 +	Free Software Foundation, Inc.     This file is part of the GNU C Library.     The GNU C Library is free software; you can redistribute it and/or @@ -17,14 +20,38 @@     02111-1307 USA.  */  #ifndef _LIBC_SYMBOLS_H -#define _LIBC_SYMBOLS_H 1 +#define _LIBC_SYMBOLS_H	1 + +/* This file's macros are included implicitly in the compilation of every +   file in the C library by -imacros. + +   We include uClibc_arch_features.h which is defined by arch devs. +   It should define for us the following symbols: + +   * HAVE_ASM_SET_DIRECTIVE if we have `.set B, A' instead of `A = B'. +   * ASM_GLOBAL_DIRECTIVE with `.globl' or `.global'. +   * ASM_TYPE_DIRECTIVE_PREFIX with `@' or `#' or whatever for .type, +     or leave it undefined if there is no .type directive. +   * HAVE_ELF if using ELF, which supports weak symbols using `.weak'. +   * HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'. +   * HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'. + +   */  #include <bits/uClibc_arch_features.h> -#define _LIBC 1 + +/* This is defined for the compilation of all C library code.  features.h +   tests this to avoid inclusion of stubs.h while compiling the library, +   before stubs.h has been generated.  Some library code that is shared +   with other packages also tests this symbol to see if it is being +   compiled as part of the C library.  We must define this before including +   config.h, because it makes some definitions conditional on whether libc +   itself is being compiled, or just some generator program.  */ +#define _LIBC	1  /* Enable declarations of GNU extensions, since we are compiling them.  */ -#define _GNU_SOURCE 1 +#define _GNU_SOURCE	1  /* Prepare for the case that `__builtin_expect' is not available.  */  #if __GNUC__ == 2 && __GNUC_MINOR__ < 96 @@ -128,13 +155,13 @@  # define _strong_alias(name, aliasname) \    extern __typeof (name) aliasname __attribute__ ((alias (#name))); -# ifdef HAVE_WEAK_SYMBOLS -  /* This comes between the return type and function name in     a function definition to make that definition weak.  */  # define weak_function __attribute__ ((weak))  # define weak_const_function __attribute__ ((weak, __const__)) +# ifdef HAVE_WEAK_SYMBOLS +  /* Define ALIASNAME as a weak alias for NAME.     If weak aliases are not available, this defines a strong alias.  */  #  define weak_alias(name, aliasname) _weak_alias (name, aliasname) @@ -147,9 +174,6 @@  # else -# define weak_function /* empty */ -# define weak_const_function /* empty */ -  #  define weak_alias(name, aliasname) strong_alias(name, aliasname)  #  define weak_extern(symbol) /* Nothing. */ @@ -235,7 +259,7 @@     functions not exported) a bit faster by using a different calling     convention.  */  #ifndef internal_function -# define internal_function      /* empty */ +# define internal_function	/* empty */  #endif  /* We want the .gnu.warning.SYMBOL section to be unallocated.  */ | 
