From af5b3bc33bbaf9151c34a351bdb257b90d407d5b Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 8 Jul 1996 06:18:25 +0000 Subject: Mon Jul 8 02:14:25 1996 Roland McGrath * libc-symbols.h [GCC >= 2.7] (strong_alias, weak_alias): Use extern storage class. GCC gives an error for non-extern data defns with the alias attribute. Mon Jul 8 00:11:15 1996 Roland McGrath * libc-symbols.h (weak_function): New macro. For GCC 2.7+ define as __attribute__ ((weak)). * elf/dl-minimal.c: Use weak_function as keyword in function defns instead of weak_symbol (NAME) after the defn. * stdlib/strtol.c: Likewise. * sysdeps/mach/hurd/dl-sysdep.c: Likewise. * sysdeps/alpha/dl-machine.h (elf_machine_rela) [RTLD_BOOTSTRAP]: If this is defined, don't declare _dl_rtld_map as weak, and don't check for MAP pointing to it. RESOLVE is always null in this case, so test with #ifdef instead of if. * libc-symbols.h (symbol_set_declare): Use weak_extern instead of weak_symbol. * csu/initfini.c (_init): Likewise. * locale/setlocale.c (DEFINE_CATEGORY): Likewise. * misc/efgcvt_r.c: Likewise. * sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise. * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise. * libc-symbols.h [ASSEMBLER] (weak_symbol): Macro removed. It was not used in any assembler code. (weak_symbol_asm): Renamed to weak_extern_asm. (weak_extern): New macro replaces weak_symbol for weak extern refs; define to weak_extern_asm for [!ASSEMBLER]. * libc-symbols.h [! ASSEMBLER] [HAVE_WEAK_SYMBOLS] (weak_symbol_asm, weak_alias_asm): New macros, renamed from weak_symbol/weak_alias; define those now as aliases. Change conditional to use __attribute__ syntax for GCC 2.7+, not 2.8+ [GCC >= 2.7] [HAVE_WEAK_SYMBOLS] (weak_symbol): Do weak_symbol_asm after GCC weak attribute decl. --- stdlib/strtol.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'stdlib/strtol.c') diff --git a/stdlib/strtol.c b/stdlib/strtol.c index 3f34e390a1..1481d3388e 100644 --- a/stdlib/strtol.c +++ b/stdlib/strtol.c @@ -338,6 +338,9 @@ noconv: /* External user entry point. */ INT +#ifdef weak_function +weak_function +#endif strtol (nptr, endptr, base) const STRING_TYPE *nptr; STRING_TYPE **endptr; @@ -345,10 +348,3 @@ strtol (nptr, endptr, base) { return INTERNAL (strtol) (nptr, endptr, base, 0); } -#ifdef weak_symbol -/* We need to weaken this symbol because some the the defined - functions do not come from ANSI. The indirection is necessary - because `strtol' might be a macro. */ -#define weak_this(x) weak_symbol (x) -weak_this (strtol) -#endif -- cgit 1.4.1