From 124dcac84b992d26cfe992f9017f49e92c37add2 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 15 Mar 2003 23:09:52 +0000 Subject: * sysdeps/powerpc/elf/libc-start.c (AUX_VECTOR_INIT): Define it. (LIBC_START_MAIN, LIBC_START_MAIN_AUXVEC_ARG, MAIN_AUXVEC_ARG) (INIT_MAIN_ARGS): Define, and #include . (__libc_start_main): Just call the generic one for most of the work. * sysdeps/generic/libc-start.c [LIBC_START_MAIN]: If defined, define a static function by that name instead of BP_SYM (__libc_start_main). [LIBC_START_MAIN_AUXVEC_ARG]: Take AUXVEC as argument. [MAIN_AUXVEC_ARG]: Pass 4th argument to MAIN. [INIT_MAIN_ARGS]: Give INIT the same args as MAIN. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [DL_PLATFORM_AUXV]: Use this macro for extra AT_* cases. * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_PLATFORM_AUXV): New macro, guts from ... (__aux_init_cache): ... here, function removed. (DL_PLATFORM_INIT): Don't define this. * sysdeps/powerpc/powerpc32/memset.S: Put __cache_line_size in bss. * sysdeps/powerpc/powerpc64/memset.S: Likewise. * Versions.def (libthread_db): Add GLICB_2.3.3 set. --- sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 31 ++++++++++------------------- 1 file changed, 11 insertions(+), 20 deletions(-) (limited to 'sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c') diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c index a8687b35b1..64e4e2c4d3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c +++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c @@ -1,5 +1,5 @@ /* Operating system support for run-time dynamic linker. Linux/PPC version. - Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2001, 2003 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 @@ -25,27 +25,18 @@ extern int __cache_line_size; weak_extern (__cache_line_size) -#define DL_PLATFORM_INIT __aux_init_cache(_dl_auxv) - /* Scan the Aux Vector for the "Data Cache Block Size" entry. If found verify that the static extern __cache_line_size is defined by checking - for not NULL. If it is defined then assign the cache block size + for not NULL. If it is defined then assign the cache block size value to __cache_line_size. */ -static inline void -__aux_init_cache (ElfW(auxv_t) *av) -{ - for (; av->a_type != AT_NULL; ++av) - switch (av->a_type) - { - case AT_DCACHEBSIZE: - { - int *cls = & __cache_line_size; - if (cls != NULL) - *cls = av->a_un.a_val; - } - break; - } -} +#define DL_PLATFORM_AUXV \ + case AT_DCACHEBSIZE: \ + { \ + int *cls = & __cache_line_size; \ + if (cls != NULL) \ + *cls = av->a_un.a_val; \ + } \ + break; #ifndef __ASSUME_STD_AUXV @@ -78,4 +69,4 @@ __aux_init_cache (ElfW(auxv_t) *av) } while (0) #endif -#include +#include_next -- cgit 1.4.1