1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
2004-03-07  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/ldsodefs.h: Move _dl_initial_searclist,
	_dl_hp_timing_overhead, _dl_init_all_dirs, and the content of
	dl-procinfo.c from _rtld_global to _rtld_global_ro.
	* elf/rtld.c: Adjust initializer for _rtld_global_ro.
	* elf/dl-close.c: Use GLRO instead of GL where appropriate.
	* elf/dl-libc.c: Likewise.
	* elf/dl-load.c: Likewise.
	* sysdeps/i386/dl-procinfo.h: Likewise.
	* sysdeps/i386/i686/hp-timing.h: Likewise.
	* sysdeps/ia64/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
This commit is contained in:
Ulrich Drepper
2004-03-07 08:39:57 +00:00
parent 021723ab78
commit c31e278f86
15 changed files with 90 additions and 65 deletions

View File

@ -1,3 +1,22 @@
2004-03-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/ldsodefs.h: Move _dl_initial_searclist,
_dl_hp_timing_overhead, _dl_init_all_dirs, and the content of
dl-procinfo.c from _rtld_global to _rtld_global_ro.
* elf/rtld.c: Adjust initializer for _rtld_global_ro.
* elf/dl-close.c: Use GLRO instead of GL where appropriate.
* elf/dl-libc.c: Likewise.
* elf/dl-load.c: Likewise.
* sysdeps/i386/dl-procinfo.h: Likewise.
* sysdeps/i386/i686/hp-timing.h: Likewise.
* sysdeps/ia64/hp-timing.h: Likewise.
* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise.
* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
* sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
2004-03-06 Ulrich Drepper <drepper@redhat.com> 2004-03-06 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c: We don't need for specialized lookup functions. * elf/dl-lookup.c: We don't need for specialized lookup functions.

View File

@ -597,14 +597,15 @@ free_slotinfo (struct dtv_slotinfo_list **elemp)
libc_freeres_fn (free_mem) libc_freeres_fn (free_mem)
{ {
if (__builtin_expect (GL(dl_global_scope_alloc), 0) != 0 if (__builtin_expect (GL(dl_global_scope_alloc), 0) != 0
&& GL(dl_main_searchlist)->r_nlist == GL(dl_initial_searchlist).r_nlist) && (GL(dl_main_searchlist)->r_nlist
== GLRO(dl_initial_searchlist).r_nlist))
{ {
/* All object dynamically loaded by the program are unloaded. Free /* All object dynamically loaded by the program are unloaded. Free
the memory allocated for the global scope variable. */ the memory allocated for the global scope variable. */
struct link_map **old = GL(dl_main_searchlist)->r_list; struct link_map **old = GL(dl_main_searchlist)->r_list;
/* Put the old map in. */ /* Put the old map in. */
GL(dl_main_searchlist)->r_list = GL(dl_initial_searchlist).r_list; GL(dl_main_searchlist)->r_list = GLRO(dl_initial_searchlist).r_list;
/* Signal that the original map is used. */ /* Signal that the original map is used. */
GL(dl_global_scope_alloc) = 0; GL(dl_global_scope_alloc) = 0;

View File

@ -209,7 +209,7 @@ libc_freeres_fn (free_mem)
/* Remove all search directories. */ /* Remove all search directories. */
d = GL(dl_all_dirs); d = GL(dl_all_dirs);
while (d != GL(dl_init_all_dirs)) while (d != GLRO(dl_init_all_dirs))
{ {
struct r_search_path_elem *old = d; struct r_search_path_elem *old = d;
d = d->next; d = d->next;

View File

@ -757,7 +757,7 @@ _dl_init_paths (const char *llp)
env_path_list.dirs = (void *) -1; env_path_list.dirs = (void *) -1;
/* Remember the last search directory added at startup. */ /* Remember the last search directory added at startup. */
GL(dl_init_all_dirs) = GL(dl_all_dirs); GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
} }

View File

@ -93,8 +93,6 @@ INTVARDEF(_dl_starting_up)
(except those which cannot be added for some reason). */ (except those which cannot be added for some reason). */
struct rtld_global _rtld_global = struct rtld_global _rtld_global =
{ {
/* Get architecture specific initializer. */
#include <dl-procinfo.c>
/* Default presumption without further information is executable stack. */ /* Default presumption without further information is executable stack. */
._dl_stack_flags = PF_R|PF_W|PF_X, ._dl_stack_flags = PF_R|PF_W|PF_X,
#ifdef _LIBC_REENTRANT #ifdef _LIBC_REENTRANT
@ -113,6 +111,8 @@ extern struct rtld_global _rtld_local
read-only after relocation. */ read-only after relocation. */
struct rtld_global_ro _rtld_global_ro attribute_relro = struct rtld_global_ro _rtld_global_ro attribute_relro =
{ {
/* Get architecture specific initializer. */
#include <dl-procinfo.c>
#ifdef NEED_DL_SYSINFO #ifdef NEED_DL_SYSINFO
._dl_sysinfo = DL_SYSINFO_DEFAULT, ._dl_sysinfo = DL_SYSINFO_DEFAULT,
#endif #endif
@ -1720,6 +1720,14 @@ cannot allocate TLS data structures for initial thread");
#endif #endif
} }
/* Now set up the variable which helps the assembler startup code. */
GL(dl_main_searchlist) = &GL(dl_loaded)->l_searchlist;
GL(dl_global_scope)[0] = &GL(dl_loaded)->l_searchlist;
/* Save the information about the original global scope list since
we need it in the memory handling later. */
GLRO(dl_initial_searchlist) = *GL(dl_main_searchlist);
if (prelinked) if (prelinked)
{ {
struct link_map *l; struct link_map *l;
@ -1833,14 +1841,6 @@ cannot allocate TLS data structures for initial thread");
} }
} }
/* Now set up the variable which helps the assembler startup code. */
GL(dl_main_searchlist) = &GL(dl_loaded)->l_searchlist;
GL(dl_global_scope)[0] = &GL(dl_loaded)->l_searchlist;
/* Save the information about the original global scope list since
we need it in the memory handling later. */
GL(dl_initial_searchlist) = *GL(dl_main_searchlist);
#ifndef NONTLS_INIT_TP #ifndef NONTLS_INIT_TP
# define NONTLS_INIT_TP do { } while (0) # define NONTLS_INIT_TP do { } while (0)
#endif #endif

View File

@ -213,8 +213,6 @@ struct rtld_global
EXTERN struct r_scope_elem *_dl_global_scope[2]; EXTERN struct r_scope_elem *_dl_global_scope[2];
/* Direct pointer to the searchlist of the main object. */ /* Direct pointer to the searchlist of the main object. */
EXTERN struct r_scope_elem *_dl_main_searchlist; EXTERN struct r_scope_elem *_dl_main_searchlist;
/* Copy of the content of `_dl_main_searchlist'. */
EXTERN struct r_scope_elem _dl_initial_searchlist;
/* This is zero at program start to signal that the global scope map is /* This is zero at program start to signal that the global scope map is
allocated by rtld. Later it keeps the size of the map. It might be allocated by rtld. Later it keeps the size of the map. It might be
reset if in _dl_close if the last global object is removed. */ reset if in _dl_close if the last global object is removed. */
@ -243,9 +241,6 @@ struct rtld_global
#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL #if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL
/* Start time on CPU clock. */ /* Start time on CPU clock. */
EXTERN hp_timing_t _dl_cpuclock_offset; EXTERN hp_timing_t _dl_cpuclock_offset;
/* Overhead of a high-precision timing measurement. */
EXTERN hp_timing_t _dl_hp_timing_overhead;
#endif #endif
/* Map of shared object to be profiled. */ /* Map of shared object to be profiled. */
@ -257,17 +252,11 @@ struct rtld_global
/* List of search directories. */ /* List of search directories. */
EXTERN struct r_search_path_elem *_dl_all_dirs; EXTERN struct r_search_path_elem *_dl_all_dirs;
EXTERN struct r_search_path_elem *_dl_init_all_dirs;
#ifdef _LIBC_REENTRANT #ifdef _LIBC_REENTRANT
EXTERN void **(*_dl_error_catch_tsd) (void) __attribute__ ((const)); EXTERN void **(*_dl_error_catch_tsd) (void) __attribute__ ((const));
#endif #endif
/* Get architecture specific definitions. */
#define PROCINFO_DECL
#define PROCINFO_CLASS EXTERN
#include <dl-procinfo.c>
/* Structure describing the dynamic linker itself. */ /* Structure describing the dynamic linker itself. */
EXTERN struct link_map _dl_rtld_map; EXTERN struct link_map _dl_rtld_map;
@ -388,6 +377,9 @@ struct rtld_global_ro
EXTERN const char *_dl_platform; EXTERN const char *_dl_platform;
EXTERN size_t _dl_platformlen; EXTERN size_t _dl_platformlen;
/* Copy of the content of `_dl_main_searchlist' at startup time. */
EXTERN struct r_scope_elem _dl_initial_searchlist;
/* CLK_TCK as reported by the kernel. */ /* CLK_TCK as reported by the kernel. */
EXTERN int _dl_clktck; EXTERN int _dl_clktck;
@ -419,6 +411,11 @@ struct rtld_global_ro
/* Mask for important hardware capabilities we honour. */ /* Mask for important hardware capabilities we honour. */
EXTERN unsigned long int _dl_hwcap_mask; EXTERN unsigned long int _dl_hwcap_mask;
/* Get architecture specific definitions. */
#define PROCINFO_DECL
#define PROCINFO_CLASS EXTERN
#include <dl-procinfo.c>
/* Names of shared object for which the RPATH should be ignored. */ /* Names of shared object for which the RPATH should be ignored. */
EXTERN const char *_dl_inhibit_rpath; EXTERN const char *_dl_inhibit_rpath;
@ -439,6 +436,14 @@ struct rtld_global_ro
/* Map of shared object to be prelink traced. */ /* Map of shared object to be prelink traced. */
EXTERN struct link_map *_dl_trace_prelink_map; EXTERN struct link_map *_dl_trace_prelink_map;
/* All search directories defined at startup. */
EXTERN struct r_search_path_elem *_dl_init_all_dirs;
#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL
/* Overhead of a high-precision timing measurement. */
EXTERN hp_timing_t _dl_hp_timing_overhead;
#endif
#ifdef NEED_DL_SYSINFO #ifdef NEED_DL_SYSINFO
/* Syscall handling improvements. This is very specific to x86. */ /* Syscall handling improvements. This is very specific to x86. */
EXTERN uintptr_t _dl_sysinfo; EXTERN uintptr_t _dl_sysinfo;

View File

@ -1,5 +1,5 @@
/* i386 version of processor capability information handling macros. /* i386 version of processor capability information handling macros.
Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc. Copyright (C) 1998, 2000, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -68,14 +68,14 @@ static inline const char *
__attribute__ ((unused)) __attribute__ ((unused))
_dl_hwcap_string (int idx) _dl_hwcap_string (int idx)
{ {
return GL(dl_x86_cap_flags)[idx]; return GLRO(dl_x86_cap_flags)[idx];
}; };
static inline const char * static inline const char *
__attribute__ ((unused)) __attribute__ ((unused))
_dl_platform_string (int idx) _dl_platform_string (int idx)
{ {
return GL(dl_x86_platforms)[idx - _DL_FIRST_PLATFORM]; return GLRO(dl_x86_platforms)[idx - _DL_FIRST_PLATFORM];
}; };
static inline int static inline int
@ -86,7 +86,7 @@ _dl_string_hwcap (const char *str)
for (i = 0; i < _DL_HWCAP_COUNT; i++) for (i = 0; i < _DL_HWCAP_COUNT; i++)
{ {
if (strcmp (str, GL(dl_x86_cap_flags)[i]) == 0) if (strcmp (str, GLRO(dl_x86_cap_flags)[i]) == 0)
return i; return i;
} }
return -1; return -1;
@ -101,7 +101,7 @@ _dl_string_platform (const char *str)
if (str != NULL) if (str != NULL)
for (i = 0; i < _DL_PLATFORMS_COUNT; ++i) for (i = 0; i < _DL_PLATFORMS_COUNT; ++i)
{ {
if (strcmp (str, GL(dl_x86_platforms)[i]) == 0) if (strcmp (str, GLRO(dl_x86_platforms)[i]) == 0)
return _DL_FIRST_PLATFORM + i; return _DL_FIRST_PLATFORM + i;
} }
return -1; return -1;

View File

@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. i686 version. /* High precision, low overhead timing functions. i686 version.
Copyright (C) 1998, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 1998, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -97,17 +97,17 @@ typedef unsigned long long int hp_timing_t;
/* Use two 'rdtsc' instructions in a row to find out how long it takes. */ /* Use two 'rdtsc' instructions in a row to find out how long it takes. */
#define HP_TIMING_DIFF_INIT() \ #define HP_TIMING_DIFF_INIT() \
do { \ do { \
if (GL(dl_hp_timing_overhead) == 0) \ if (GLRO(dl_hp_timing_overhead) == 0) \
{ \ { \
int __cnt = 5; \ int __cnt = 5; \
GL(dl_hp_timing_overhead) = ~0ull; \ GLRO(dl_hp_timing_overhead) = ~0ull; \
do \ do \
{ \ { \
hp_timing_t __t1, __t2; \ hp_timing_t __t1, __t2; \
HP_TIMING_NOW (__t1); \ HP_TIMING_NOW (__t1); \
HP_TIMING_NOW (__t2); \ HP_TIMING_NOW (__t2); \
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \ if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
GL(dl_hp_timing_overhead) = __t2 - __t1; \ GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
} \ } \
while (--__cnt > 0); \ while (--__cnt > 0); \
} \ } \
@ -121,7 +121,7 @@ typedef unsigned long long int hp_timing_t;
do { \ do { \
char __not_done; \ char __not_done; \
hp_timing_t __oldval = (Sum); \ hp_timing_t __oldval = (Sum); \
hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \ hp_timing_t __diff = (Diff) - GLRO(dl_hp_timing_overhead); \
do \ do \
{ \ { \
hp_timing_t __newval = __oldval + __diff; \ hp_timing_t __newval = __oldval + __diff; \

View File

@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. IA-64 version. /* High precision, low overhead timing functions. IA-64 version.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
@ -100,14 +100,14 @@ typedef unsigned long int hp_timing_t;
#define HP_TIMING_DIFF_INIT() \ #define HP_TIMING_DIFF_INIT() \
do { \ do { \
int __cnt = 5; \ int __cnt = 5; \
GL(dl_hp_timing_overhead) = ~0ul; \ GLRO(dl_hp_timing_overhead) = ~0ul; \
do \ do \
{ \ { \
hp_timing_t __t1, __t2; \ hp_timing_t __t1, __t2; \
HP_TIMING_NOW (__t1); \ HP_TIMING_NOW (__t1); \
HP_TIMING_NOW (__t2); \ HP_TIMING_NOW (__t2); \
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \ if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
GL(dl_hp_timing_overhead) = __t2 - __t1; \ GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
} \ } \
while (--__cnt > 0); \ while (--__cnt > 0); \
} while (0) } while (0)
@ -119,7 +119,7 @@ typedef unsigned long int hp_timing_t;
#define HP_TIMING_ACCUM(Sum, Diff) \ #define HP_TIMING_ACCUM(Sum, Diff) \
do { \ do { \
hp_timing_t __oldval; \ hp_timing_t __oldval; \
hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \ hp_timing_t __diff = (Diff) - GLRO(dl_hp_timing_overhead); \
hp_timing_t __newval; \ hp_timing_t __newval; \
do \ do \
{ \ { \

View File

@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. sparcv9 version. /* High precision, low overhead timing functions. sparcv9 version.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by David S. Miller <davem@redhat.com>, 2001. Contributed by David S. Miller <davem@redhat.com>, 2001.
@ -40,14 +40,14 @@ typedef unsigned long long int hp_timing_t;
#define HP_TIMING_DIFF_INIT() \ #define HP_TIMING_DIFF_INIT() \
do { \ do { \
int __cnt = 5; \ int __cnt = 5; \
GL(dl_hp_timing_overhead) = ~0ull; \ GLRO(dl_hp_timing_overhead) = ~0ull; \
do \ do \
{ \ { \
hp_timing_t __t1, __t2; \ hp_timing_t __t1, __t2; \
HP_TIMING_NOW (__t1); \ HP_TIMING_NOW (__t1); \
HP_TIMING_NOW (__t2); \ HP_TIMING_NOW (__t2); \
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \ if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
GL(dl_hp_timing_overhead) = __t2 - __t1; \ GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
} \ } \
while (--__cnt > 0); \ while (--__cnt > 0); \
} while (0) } while (0)
@ -56,7 +56,7 @@ typedef unsigned long long int hp_timing_t;
#define HP_TIMING_ACCUM(Sum, Diff) \ #define HP_TIMING_ACCUM(Sum, Diff) \
do { \ do { \
hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \ hp_timing_t __diff = (Diff) - GLRO(dl_hp_timing_overhead); \
__asm__ __volatile__("srl %L0, 0, %%g1\n\t" \ __asm__ __volatile__("srl %L0, 0, %%g1\n\t" \
"sllx %H0, 32, %%g6\n\t" \ "sllx %H0, 32, %%g6\n\t" \
"or %%g1, %%g6, %%g1\n\t" \ "or %%g1, %%g6, %%g1\n\t" \

View File

@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. sparc64 version. /* High precision, low overhead timing functions. sparc64 version.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by David S. Miller <davem@redhat.com>, 2001. Contributed by David S. Miller <davem@redhat.com>, 2001.
@ -37,14 +37,14 @@ typedef unsigned long int hp_timing_t;
#define HP_TIMING_DIFF_INIT() \ #define HP_TIMING_DIFF_INIT() \
do { \ do { \
int __cnt = 5; \ int __cnt = 5; \
GL(dl_hp_timing_overhead) = ~0ull; \ GLRO(dl_hp_timing_overhead) = ~0ull; \
do \ do \
{ \ { \
hp_timing_t __t1, __t2; \ hp_timing_t __t1, __t2; \
HP_TIMING_NOW (__t1); \ HP_TIMING_NOW (__t1); \
HP_TIMING_NOW (__t2); \ HP_TIMING_NOW (__t2); \
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \ if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
GL(dl_hp_timing_overhead) = __t2 - __t1; \ GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
} \ } \
while (--__cnt > 0); \ while (--__cnt > 0); \
} while (0) } while (0)
@ -53,7 +53,7 @@ typedef unsigned long int hp_timing_t;
#define HP_TIMING_ACCUM(Sum, Diff) \ #define HP_TIMING_ACCUM(Sum, Diff) \
do { \ do { \
hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \ hp_timing_t __diff = (Diff) - GLRO(dl_hp_timing_overhead); \
hp_timing_t tmp1, tmp2; \ hp_timing_t tmp1, tmp2; \
__asm__ __volatile__("1: ldx [%3], %0\n\t" \ __asm__ __volatile__("1: ldx [%3], %0\n\t" \
"add %0, %2, %1\n\t" \ "add %0, %2, %1\n\t" \

View File

@ -1,5 +1,5 @@
/* Linux/ARM version of processor capability information handling macros. /* Linux/ARM version of processor capability information handling macros.
Copyright (C) 2001, 2002 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 2001. Contributed by Philip Blundell <philb@gnu.org>, 2001.
@ -39,7 +39,7 @@ _dl_procinfo (int word)
for (i = 0; i < _DL_HWCAP_COUNT; ++i) for (i = 0; i < _DL_HWCAP_COUNT; ++i)
if (word & (1 << i)) if (word & (1 << i))
_dl_printf (" %s", GL(dl_arm_cap_flags)[i]); _dl_printf (" %s", GLRO(dl_arm_cap_flags)[i]);
_dl_printf ("\n"); _dl_printf ("\n");
@ -50,7 +50,7 @@ static inline const char *
__attribute__ ((unused)) __attribute__ ((unused))
_dl_hwcap_string (int idx) _dl_hwcap_string (int idx)
{ {
return GL(dl_arm_cap_flags)[idx]; return GLRO(dl_arm_cap_flags)[idx];
}; };
enum enum
@ -75,7 +75,7 @@ _dl_string_hwcap (const char *str)
for (i = 0; i < _DL_HWCAP_COUNT; i++) for (i = 0; i < _DL_HWCAP_COUNT; i++)
{ {
if (strcmp (str, GL(dl_arm_cap_flags)[i]) == 0) if (strcmp (str, GLRO(dl_arm_cap_flags)[i]) == 0)
return i; return i;
} }
return -1; return -1;

View File

@ -1,5 +1,5 @@
/* Linux/i386 version of processor capability information handling macros. /* Linux/i386 version of processor capability information handling macros.
Copyright (C) 1998-2002, 2003 Free Software Foundation, Inc. Copyright (C) 1998-2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -35,7 +35,7 @@ _dl_procinfo (int word)
for (i = 0; i < _DL_HWCAP_COUNT; ++i) for (i = 0; i < _DL_HWCAP_COUNT; ++i)
if (word & (1 << i)) if (word & (1 << i))
_dl_printf (" %s", GL(dl_x86_cap_flags)[i]); _dl_printf (" %s", GLRO(dl_x86_cap_flags)[i]);
_dl_printf ("\n"); _dl_printf ("\n");

View File

@ -1,5 +1,5 @@
/* Linux/sparc32 version of processor capability information handling macros. /* Linux/sparc32 version of processor capability information handling macros.
Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999. Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@ -35,7 +35,7 @@ _dl_procinfo (int word)
for (i = 0; i < _DL_HWCAP_COUNT; ++i) for (i = 0; i < _DL_HWCAP_COUNT; ++i)
if (word & (1 << i)) if (word & (1 << i))
_dl_printf (" %s", GL(dl_sparc32_cap_flags)[i]); _dl_printf (" %s", GLRO(dl_sparc32_cap_flags)[i]);
_dl_printf ("\n"); _dl_printf ("\n");
@ -46,7 +46,7 @@ static inline const char *
__attribute__ ((unused)) __attribute__ ((unused))
_dl_hwcap_string (int idx) _dl_hwcap_string (int idx)
{ {
return GL(dl_sparc32_cap_flags)[idx]; return GLRO(dl_sparc32_cap_flags)[idx];
}; };
static inline int static inline int
@ -56,7 +56,7 @@ _dl_string_hwcap (const char *str)
int i; int i;
for (i = 0; i < _DL_HWCAP_COUNT; i++) for (i = 0; i < _DL_HWCAP_COUNT; i++)
{ {
if (strcmp (str, GL(dl_sparc32_cap_flags) [i]) == 0) if (strcmp (str, GLRO(dl_sparc32_cap_flags) [i]) == 0)
return i; return i;
} }
return -1; return -1;

View File

@ -1,5 +1,5 @@
/* Linux/sparc64 version of processor capability information handling macros. /* Linux/sparc64 version of processor capability information handling macros.
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999. Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@ -35,7 +35,7 @@ _dl_procinfo (int word)
for (i = 0; i < _DL_HWCAP_COUNT; ++i) for (i = 0; i < _DL_HWCAP_COUNT; ++i)
if (word & (1 << i)) if (word & (1 << i))
_dl_printf (" %s", GL(dl_sparc64_cap_flags)[i]); _dl_printf (" %s", GLRO(dl_sparc64_cap_flags)[i]);
_dl_printf ("\n"); _dl_printf ("\n");
@ -46,7 +46,7 @@ static inline const char *
__attribute__ ((unused)) __attribute__ ((unused))
_dl_hwcap_string (int idx) _dl_hwcap_string (int idx)
{ {
return GL(dl_sparc64_cap_flags)[idx]; return GLRO(dl_sparc64_cap_flags)[idx];
}; };
@ -57,7 +57,7 @@ _dl_string_hwcap (const char *str)
int i; int i;
for (i = 0; i < _DL_HWCAP_COUNT; i++) for (i = 0; i < _DL_HWCAP_COUNT; i++)
{ {
if (strcmp (str, GL(dl_sparc64_cap_flags) [i]) == 0) if (strcmp (str, GLRO(dl_sparc64_cap_flags) [i]) == 0)
return i; return i;
} }
return -1; return -1;