about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-03-15 23:09:52 +0000
committerRoland McGrath <roland@gnu.org>2003-03-15 23:09:52 +0000
commit124dcac84b992d26cfe992f9017f49e92c37add2 (patch)
tree0d6ed66ef128e14f3b685448ebdcdc1872ec243c /sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
parent2b089f2101801ca2a3295fcd755261288ce6268e (diff)
downloadglibc-124dcac84b992d26cfe992f9017f49e92c37add2.tar.gz
glibc-124dcac84b992d26cfe992f9017f49e92c37add2.tar.xz
glibc-124dcac84b992d26cfe992f9017f49e92c37add2.zip
* 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 <sysdeps/generic/libc-start.c>.
	(__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.
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c')
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c31
1 files changed, 11 insertions, 20 deletions
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 <sysdeps/unix/sysv/linux/dl-sysdep.c>
+#include_next <sysdeps/unix/sysv/linux/dl-sysdep.c>