mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Update.
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:
parent
021723ab78
commit
c31e278f86
19
ChangeLog
19
ChangeLog
@ -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>
|
||||
|
||||
* elf/dl-lookup.c: We don't need for specialized lookup functions.
|
||||
|
@ -597,14 +597,15 @@ free_slotinfo (struct dtv_slotinfo_list **elemp)
|
||||
libc_freeres_fn (free_mem)
|
||||
{
|
||||
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
|
||||
the memory allocated for the global scope variable. */
|
||||
struct link_map **old = GL(dl_main_searchlist)->r_list;
|
||||
|
||||
/* 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. */
|
||||
GL(dl_global_scope_alloc) = 0;
|
||||
|
||||
|
@ -209,7 +209,7 @@ libc_freeres_fn (free_mem)
|
||||
|
||||
/* Remove all search directories. */
|
||||
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;
|
||||
d = d->next;
|
||||
|
@ -757,7 +757,7 @@ _dl_init_paths (const char *llp)
|
||||
env_path_list.dirs = (void *) -1;
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
|
||||
|
20
elf/rtld.c
20
elf/rtld.c
@ -93,8 +93,6 @@ INTVARDEF(_dl_starting_up)
|
||||
(except those which cannot be added for some reason). */
|
||||
struct rtld_global _rtld_global =
|
||||
{
|
||||
/* Get architecture specific initializer. */
|
||||
#include <dl-procinfo.c>
|
||||
/* Default presumption without further information is executable stack. */
|
||||
._dl_stack_flags = PF_R|PF_W|PF_X,
|
||||
#ifdef _LIBC_REENTRANT
|
||||
@ -113,6 +111,8 @@ extern struct rtld_global _rtld_local
|
||||
read-only after relocation. */
|
||||
struct rtld_global_ro _rtld_global_ro attribute_relro =
|
||||
{
|
||||
/* Get architecture specific initializer. */
|
||||
#include <dl-procinfo.c>
|
||||
#ifdef NEED_DL_SYSINFO
|
||||
._dl_sysinfo = DL_SYSINFO_DEFAULT,
|
||||
#endif
|
||||
@ -1720,6 +1720,14 @@ cannot allocate TLS data structures for initial thread");
|
||||
#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)
|
||||
{
|
||||
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
|
||||
# define NONTLS_INIT_TP do { } while (0)
|
||||
#endif
|
||||
|
@ -213,8 +213,6 @@ struct rtld_global
|
||||
EXTERN struct r_scope_elem *_dl_global_scope[2];
|
||||
/* Direct pointer to the searchlist of the main object. */
|
||||
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
|
||||
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. */
|
||||
@ -243,9 +241,6 @@ struct rtld_global
|
||||
#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL
|
||||
/* Start time on CPU clock. */
|
||||
EXTERN hp_timing_t _dl_cpuclock_offset;
|
||||
|
||||
/* Overhead of a high-precision timing measurement. */
|
||||
EXTERN hp_timing_t _dl_hp_timing_overhead;
|
||||
#endif
|
||||
|
||||
/* Map of shared object to be profiled. */
|
||||
@ -257,17 +252,11 @@ struct rtld_global
|
||||
|
||||
/* List of search directories. */
|
||||
EXTERN struct r_search_path_elem *_dl_all_dirs;
|
||||
EXTERN struct r_search_path_elem *_dl_init_all_dirs;
|
||||
|
||||
#ifdef _LIBC_REENTRANT
|
||||
EXTERN void **(*_dl_error_catch_tsd) (void) __attribute__ ((const));
|
||||
#endif
|
||||
|
||||
/* Get architecture specific definitions. */
|
||||
#define PROCINFO_DECL
|
||||
#define PROCINFO_CLASS EXTERN
|
||||
#include <dl-procinfo.c>
|
||||
|
||||
/* Structure describing the dynamic linker itself. */
|
||||
EXTERN struct link_map _dl_rtld_map;
|
||||
|
||||
@ -388,6 +377,9 @@ struct rtld_global_ro
|
||||
EXTERN const char *_dl_platform;
|
||||
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. */
|
||||
EXTERN int _dl_clktck;
|
||||
|
||||
@ -419,6 +411,11 @@ struct rtld_global_ro
|
||||
/* Mask for important hardware capabilities we honour. */
|
||||
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. */
|
||||
EXTERN const char *_dl_inhibit_rpath;
|
||||
|
||||
@ -439,6 +436,14 @@ struct rtld_global_ro
|
||||
/* Map of shared object to be prelink traced. */
|
||||
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
|
||||
/* Syscall handling improvements. This is very specific to x86. */
|
||||
EXTERN uintptr_t _dl_sysinfo;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
|
||||
@ -68,14 +68,14 @@ static inline const char *
|
||||
__attribute__ ((unused))
|
||||
_dl_hwcap_string (int idx)
|
||||
{
|
||||
return GL(dl_x86_cap_flags)[idx];
|
||||
return GLRO(dl_x86_cap_flags)[idx];
|
||||
};
|
||||
|
||||
static inline const char *
|
||||
__attribute__ ((unused))
|
||||
_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
|
||||
@ -86,7 +86,7 @@ _dl_string_hwcap (const char *str)
|
||||
|
||||
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 -1;
|
||||
@ -101,7 +101,7 @@ _dl_string_platform (const char *str)
|
||||
if (str != NULL)
|
||||
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 -1;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
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. */
|
||||
#define HP_TIMING_DIFF_INIT() \
|
||||
do { \
|
||||
if (GL(dl_hp_timing_overhead) == 0) \
|
||||
if (GLRO(dl_hp_timing_overhead) == 0) \
|
||||
{ \
|
||||
int __cnt = 5; \
|
||||
GL(dl_hp_timing_overhead) = ~0ull; \
|
||||
GLRO(dl_hp_timing_overhead) = ~0ull; \
|
||||
do \
|
||||
{ \
|
||||
hp_timing_t __t1, __t2; \
|
||||
HP_TIMING_NOW (__t1); \
|
||||
HP_TIMING_NOW (__t2); \
|
||||
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \
|
||||
GL(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
|
||||
GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
} \
|
||||
while (--__cnt > 0); \
|
||||
} \
|
||||
@ -121,7 +121,7 @@ typedef unsigned long long int hp_timing_t;
|
||||
do { \
|
||||
char __not_done; \
|
||||
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 \
|
||||
{ \
|
||||
hp_timing_t __newval = __oldval + __diff; \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
|
||||
|
||||
@ -100,14 +100,14 @@ typedef unsigned long int hp_timing_t;
|
||||
#define HP_TIMING_DIFF_INIT() \
|
||||
do { \
|
||||
int __cnt = 5; \
|
||||
GL(dl_hp_timing_overhead) = ~0ul; \
|
||||
GLRO(dl_hp_timing_overhead) = ~0ul; \
|
||||
do \
|
||||
{ \
|
||||
hp_timing_t __t1, __t2; \
|
||||
HP_TIMING_NOW (__t1); \
|
||||
HP_TIMING_NOW (__t2); \
|
||||
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \
|
||||
GL(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
|
||||
GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
} \
|
||||
while (--__cnt > 0); \
|
||||
} while (0)
|
||||
@ -119,7 +119,7 @@ typedef unsigned long int hp_timing_t;
|
||||
#define HP_TIMING_ACCUM(Sum, Diff) \
|
||||
do { \
|
||||
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; \
|
||||
do \
|
||||
{ \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
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() \
|
||||
do { \
|
||||
int __cnt = 5; \
|
||||
GL(dl_hp_timing_overhead) = ~0ull; \
|
||||
GLRO(dl_hp_timing_overhead) = ~0ull; \
|
||||
do \
|
||||
{ \
|
||||
hp_timing_t __t1, __t2; \
|
||||
HP_TIMING_NOW (__t1); \
|
||||
HP_TIMING_NOW (__t2); \
|
||||
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \
|
||||
GL(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
|
||||
GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
} \
|
||||
while (--__cnt > 0); \
|
||||
} while (0)
|
||||
@ -56,7 +56,7 @@ typedef unsigned long long int hp_timing_t;
|
||||
|
||||
#define HP_TIMING_ACCUM(Sum, Diff) \
|
||||
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" \
|
||||
"sllx %H0, 32, %%g6\n\t" \
|
||||
"or %%g1, %%g6, %%g1\n\t" \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
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() \
|
||||
do { \
|
||||
int __cnt = 5; \
|
||||
GL(dl_hp_timing_overhead) = ~0ull; \
|
||||
GLRO(dl_hp_timing_overhead) = ~0ull; \
|
||||
do \
|
||||
{ \
|
||||
hp_timing_t __t1, __t2; \
|
||||
HP_TIMING_NOW (__t1); \
|
||||
HP_TIMING_NOW (__t2); \
|
||||
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \
|
||||
GL(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
if (__t2 - __t1 < GLRO(dl_hp_timing_overhead)) \
|
||||
GLRO(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||
} \
|
||||
while (--__cnt > 0); \
|
||||
} while (0)
|
||||
@ -53,7 +53,7 @@ typedef unsigned long int hp_timing_t;
|
||||
|
||||
#define HP_TIMING_ACCUM(Sum, Diff) \
|
||||
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; \
|
||||
__asm__ __volatile__("1: ldx [%3], %0\n\t" \
|
||||
"add %0, %2, %1\n\t" \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Contributed by Philip Blundell <philb@gnu.org>, 2001.
|
||||
|
||||
@ -39,7 +39,7 @@ _dl_procinfo (int word)
|
||||
|
||||
for (i = 0; i < _DL_HWCAP_COUNT; ++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");
|
||||
|
||||
@ -50,7 +50,7 @@ static inline const char *
|
||||
__attribute__ ((unused))
|
||||
_dl_hwcap_string (int idx)
|
||||
{
|
||||
return GL(dl_arm_cap_flags)[idx];
|
||||
return GLRO(dl_arm_cap_flags)[idx];
|
||||
};
|
||||
|
||||
enum
|
||||
@ -75,7 +75,7 @@ _dl_string_hwcap (const char *str)
|
||||
|
||||
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 -1;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
|
||||
@ -35,7 +35,7 @@ _dl_procinfo (int word)
|
||||
|
||||
for (i = 0; i < _DL_HWCAP_COUNT; ++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");
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
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)
|
||||
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");
|
||||
|
||||
@ -46,7 +46,7 @@ static inline const char *
|
||||
__attribute__ ((unused))
|
||||
_dl_hwcap_string (int idx)
|
||||
{
|
||||
return GL(dl_sparc32_cap_flags)[idx];
|
||||
return GLRO(dl_sparc32_cap_flags)[idx];
|
||||
};
|
||||
|
||||
static inline int
|
||||
@ -56,7 +56,7 @@ _dl_string_hwcap (const char *str)
|
||||
int 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 -1;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
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)
|
||||
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");
|
||||
|
||||
@ -46,7 +46,7 @@ static inline const char *
|
||||
__attribute__ ((unused))
|
||||
_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;
|
||||
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 -1;
|
||||
|
Loading…
Reference in New Issue
Block a user