mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
Update.
2002-02-01 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/ldsodefs.h (_dl_load_lock): Remove duplicate definition. * sysdeps/ia64/hp-timing.h: Move _dl_hp_timing_overhead in _rtld_global struct. * sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise. * sysdeps/sparc/sparc64/hp-timing.c: Likewise. * sysdeps/sparc/sparc64/hp-timing.h: Likewise. * sysdeps/sparc/sparc64/Makefile: Make hp-timing static only. * sysdeps/unix/sysv/aix/init-first.c (_dl_fpu_control, _dl_fpu_control_set): Remove unused externs. * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Move procinfo related variables in _rtld_global struct. * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/init-first.c (_dl_fpu_control_set): Remove unused extern.
This commit is contained in:
parent
a3a4f24951
commit
27ef89fbdc
20
ChangeLog
20
ChangeLog
@ -1,3 +1,23 @@
|
|||||||
|
2002-02-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/generic/ldsodefs.h (_dl_load_lock): Remove duplicate
|
||||||
|
definition.
|
||||||
|
* sysdeps/ia64/hp-timing.h: Move _dl_hp_timing_overhead in
|
||||||
|
_rtld_global struct.
|
||||||
|
* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise.
|
||||||
|
* sysdeps/sparc/sparc64/hp-timing.c: Likewise.
|
||||||
|
* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
|
||||||
|
* sysdeps/sparc/sparc64/Makefile: Make hp-timing static only.
|
||||||
|
* sysdeps/unix/sysv/aix/init-first.c (_dl_fpu_control,
|
||||||
|
_dl_fpu_control_set): Remove unused externs.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Move procinfo
|
||||||
|
related variables in _rtld_global struct.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/init-first.c (_dl_fpu_control_set): Remove
|
||||||
|
unused extern.
|
||||||
|
|
||||||
2002-02-01 Ulrich Drepper <drepper@redhat.com>
|
2002-02-01 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/generic/dl-procinfo.c: New file.
|
* sysdeps/generic/dl-procinfo.c: New file.
|
||||||
|
@ -347,16 +347,6 @@ extern const char _dl_out_of_memory[];
|
|||||||
extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */
|
extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */
|
||||||
|
|
||||||
|
|
||||||
/* During the program run we must not modify the global data of
|
|
||||||
loaded shared object simultanously in two threads. Therefore we
|
|
||||||
protect `_dl_open' and `_dl_close' in dl-close.c.
|
|
||||||
|
|
||||||
This must be a recursive lock since the initializer function of
|
|
||||||
the loaded object might as well require a call to this function.
|
|
||||||
At this time it is not anymore a problem to modify the tables. */
|
|
||||||
__libc_lock_define_recursive (extern, _dl_load_lock)
|
|
||||||
|
|
||||||
|
|
||||||
/* Write message on the debug file descriptor. The parameters are
|
/* Write message on the debug file descriptor. The parameters are
|
||||||
interpreted as for a `printf' call. All the lines start with a
|
interpreted as for a `printf' call. All the lines start with a
|
||||||
tag showing the PID. */
|
tag showing the PID. */
|
||||||
|
@ -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 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002 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.
|
||||||
|
|
||||||
@ -78,10 +78,6 @@
|
|||||||
/* We use 64bit values for the times. */
|
/* We use 64bit values for the times. */
|
||||||
typedef unsigned long int hp_timing_t;
|
typedef unsigned long int hp_timing_t;
|
||||||
|
|
||||||
/* Internal variable used to store the overhead of the measurement
|
|
||||||
opcodes. */
|
|
||||||
extern hp_timing_t __libc_hp_timing_overhead;
|
|
||||||
|
|
||||||
/* Set timestamp value to zero. */
|
/* Set timestamp value to zero. */
|
||||||
#define HP_TIMING_ZERO(Var) (Var) = (0)
|
#define HP_TIMING_ZERO(Var) (Var) = (0)
|
||||||
|
|
||||||
@ -104,14 +100,14 @@ extern hp_timing_t __libc_hp_timing_overhead;
|
|||||||
#define HP_TIMING_DIFF_INIT() \
|
#define HP_TIMING_DIFF_INIT() \
|
||||||
do { \
|
do { \
|
||||||
int __cnt = 5; \
|
int __cnt = 5; \
|
||||||
__libc_hp_timing_overhead = ~0ul; \
|
GL(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 < __libc_hp_timing_overhead) \
|
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \
|
||||||
__libc_hp_timing_overhead = __t2 - __t1; \
|
GL(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||||
} \
|
} \
|
||||||
while (--__cnt > 0); \
|
while (--__cnt > 0); \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -123,7 +119,7 @@ extern hp_timing_t __libc_hp_timing_overhead;
|
|||||||
#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) - __libc_hp_timing_overhead; \
|
hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \
|
||||||
hp_timing_t __newval; \
|
hp_timing_t __newval; \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* High precision, low overhead timing functions. sparcv9 version.
|
/* High precision, low overhead timing functions. sparcv9 version.
|
||||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002 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.
|
||||||
|
|
||||||
@ -30,8 +30,6 @@
|
|||||||
|
|
||||||
typedef unsigned long long int hp_timing_t;
|
typedef unsigned long long int hp_timing_t;
|
||||||
|
|
||||||
extern hp_timing_t __libc_hp_timing_overhead;
|
|
||||||
|
|
||||||
#define HP_TIMING_ZERO(Var) (Var) = (0)
|
#define HP_TIMING_ZERO(Var) (Var) = (0)
|
||||||
|
|
||||||
#define HP_TIMING_NOW(Var) \
|
#define HP_TIMING_NOW(Var) \
|
||||||
@ -42,14 +40,14 @@ extern hp_timing_t __libc_hp_timing_overhead;
|
|||||||
#define HP_TIMING_DIFF_INIT() \
|
#define HP_TIMING_DIFF_INIT() \
|
||||||
do { \
|
do { \
|
||||||
int __cnt = 5; \
|
int __cnt = 5; \
|
||||||
__libc_hp_timing_overhead = ~0ull; \
|
GL(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 < __libc_hp_timing_overhead) \
|
if (__t2 - __t1 < GL(dl_hp_timing_overhead)) \
|
||||||
__libc_hp_timing_overhead = __t2 - __t1; \
|
GL(dl_hp_timing_overhead) = __t2 - __t1; \
|
||||||
} \
|
} \
|
||||||
while (--__cnt > 0); \
|
while (--__cnt > 0); \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -58,7 +56,7 @@ extern hp_timing_t __libc_hp_timing_overhead;
|
|||||||
|
|
||||||
#define HP_TIMING_ACCUM(Sum, Diff) \
|
#define HP_TIMING_ACCUM(Sum, Diff) \
|
||||||
do { \
|
do { \
|
||||||
hp_timing_t __diff = (Diff) - __libc_hp_timing_overhead; \
|
hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \
|
||||||
__asm__ __volatile__("srl %L0, 0, %%g1\n\t" \
|
__asm__ __volatile__("srl %L0, 0, %%g1\n\t" \
|
||||||
"sllx %H0, 32, %%g7\n\t" \
|
"sllx %H0, 32, %%g7\n\t" \
|
||||||
"or %%g1, %%g7, %%g1\n\t" \
|
"or %%g1, %%g7, %%g1\n\t" \
|
||||||
|
@ -3,4 +3,5 @@ long-double-fcts = yes
|
|||||||
|
|
||||||
ifeq ($(subdir),csu)
|
ifeq ($(subdir),csu)
|
||||||
sysdep_routines += hp-timing
|
sysdep_routines += hp-timing
|
||||||
|
static-only-routines += hp-timing
|
||||||
endif
|
endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Support for high precision, low overhead timing functions. sparc64 version.
|
/* Support for high precision, low overhead timing functions. sparc64 version.
|
||||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002 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.
|
||||||
|
|
||||||
@ -21,4 +21,4 @@
|
|||||||
#include <hp-timing.h>
|
#include <hp-timing.h>
|
||||||
|
|
||||||
/* We have to define the variable for the overhead. */
|
/* We have to define the variable for the overhead. */
|
||||||
hp_timing_t __libc_hp_timing_overhead;
|
hp_timing_t _dl_hp_timing_overhead;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* High precision, low overhead timing functions. sparc64 version.
|
/* High precision, low overhead timing functions. sparc64 version.
|
||||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002 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.
|
||||||
|
|
||||||
@ -30,8 +30,6 @@
|
|||||||
|
|
||||||
typedef unsigned long int hp_timing_t;
|
typedef unsigned long int hp_timing_t;
|
||||||
|
|
||||||
extern hp_timing_t __libc_hp_timing_overhead;
|
|
||||||
|
|
||||||
#define HP_TIMING_ZERO(Var) (Var) = (0)
|
#define HP_TIMING_ZERO(Var) (Var) = (0)
|
||||||
|
|
||||||
#define HP_TIMING_NOW(Var) __asm__ __volatile__ ("rd %%tick, %0" : "=r" (Var))
|
#define HP_TIMING_NOW(Var) __asm__ __volatile__ ("rd %%tick, %0" : "=r" (Var))
|
||||||
@ -39,14 +37,14 @@ extern hp_timing_t __libc_hp_timing_overhead;
|
|||||||
#define HP_TIMING_DIFF_INIT() \
|
#define HP_TIMING_DIFF_INIT() \
|
||||||
do { \
|
do { \
|
||||||
int __cnt = 5; \
|
int __cnt = 5; \
|
||||||
__libc_hp_timing_overhead = ~0ull; \
|
GL(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 < __libc_hp_timing_overhead) \
|
if (__t2 - __t1 < GL(hp_timing_overhead)) \
|
||||||
__libc_hp_timing_overhead = __t2 - __t1; \
|
GL(hp_timing_overhead) = __t2 - __t1; \
|
||||||
} \
|
} \
|
||||||
while (--__cnt > 0); \
|
while (--__cnt > 0); \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -55,7 +53,7 @@ extern hp_timing_t __libc_hp_timing_overhead;
|
|||||||
|
|
||||||
#define HP_TIMING_ACCUM(Sum, Diff) \
|
#define HP_TIMING_ACCUM(Sum, Diff) \
|
||||||
do { \
|
do { \
|
||||||
hp_timing_t __diff = (Diff) - __libc_hp_timing_overhead; \
|
hp_timing_t __diff = (Diff) - GL(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" \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Initialization code run first thing by the XCOFF startup code. AIX version.
|
/* Initialization code run first thing by the XCOFF startup code. AIX version.
|
||||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -40,9 +40,6 @@ static void init (int, char **, char **) __attribute__ ((unused));
|
|||||||
extern int _dl_starting_up;
|
extern int _dl_starting_up;
|
||||||
weak_extern (_dl_starting_up)
|
weak_extern (_dl_starting_up)
|
||||||
|
|
||||||
extern fpu_control_t _dl_fpu_control;
|
|
||||||
extern int _dl_fpu_control_set;
|
|
||||||
|
|
||||||
/* Set nonzero if we have to be prepared for more then one libc being
|
/* Set nonzero if we have to be prepared for more then one libc being
|
||||||
used in the process. Safe assumption if initializer never runs. */
|
used in the process. Safe assumption if initializer never runs. */
|
||||||
int __libc_multiple_libcs = 1;
|
int __libc_multiple_libcs = 1;
|
||||||
|
@ -41,8 +41,6 @@ static void init (int, char **, char **) __attribute__ ((unused));
|
|||||||
extern int _dl_starting_up;
|
extern int _dl_starting_up;
|
||||||
weak_extern (_dl_starting_up)
|
weak_extern (_dl_starting_up)
|
||||||
|
|
||||||
extern int _dl_fpu_control_set;
|
|
||||||
|
|
||||||
/* Set nonzero if we have to be prepared for more then one libc being
|
/* Set nonzero if we have to be prepared for more then one libc being
|
||||||
used in the process. Safe assumption if initializer never runs. */
|
used in the process. Safe assumption if initializer never runs. */
|
||||||
int __libc_multiple_libcs = 1;
|
int __libc_multiple_libcs = 1;
|
||||||
|
62
sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c
Normal file
62
sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/* Data for Linux/sparc32 version of processor capability information.
|
||||||
|
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
/* This information must be kept in sync with the _DL_HWCAP_COUNT
|
||||||
|
definition in procinfo.h.
|
||||||
|
|
||||||
|
If anything should be added here check whether the size of each string
|
||||||
|
is still ok with the given array size.
|
||||||
|
|
||||||
|
All the #ifdefs in the definitions ar equite irritating but
|
||||||
|
necessary if we want to avoid duplicating the information. There
|
||||||
|
are three different modes:
|
||||||
|
|
||||||
|
- PROCINFO_DECL is defined. This means we are only interested in
|
||||||
|
declarations.
|
||||||
|
|
||||||
|
- PROCINFO_DECL is not defined:
|
||||||
|
|
||||||
|
+ if SHARED is defined the file is included in an array
|
||||||
|
initializer. The .element = { ... } syntax is needed.
|
||||||
|
|
||||||
|
+ if SHARED is not defined a normal array initialization is
|
||||||
|
needed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef PROCINFO_DECL
|
||||||
|
EXTERN
|
||||||
|
#endif
|
||||||
|
#if !defined PROCINFO_DECL && defined SHARED
|
||||||
|
._dl_sparc32_cap_flags
|
||||||
|
#else
|
||||||
|
const char _dl_sparc32_cap_flags[6][7]
|
||||||
|
#endif
|
||||||
|
#ifndef PROCINFO_DECL
|
||||||
|
= {
|
||||||
|
"flush", "stbar", "swap", "muldiv", "v9", "ultra3"
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined SHARED || defined PROCINFO_DECL
|
||||||
|
;
|
||||||
|
#else
|
||||||
|
,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef PROCINFO_DECL
|
@ -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 Free Software Foundation, Inc.
|
Copyright (C) 1999, 2000, 2001, 2002 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.
|
||||||
|
|
||||||
@ -23,12 +23,6 @@
|
|||||||
|
|
||||||
#include <ldsodefs.h>
|
#include <ldsodefs.h>
|
||||||
|
|
||||||
/* If anything should be added here check whether the size of each string
|
|
||||||
is still ok with the given array size. */
|
|
||||||
static const char sparc32_cap_flags[][7] =
|
|
||||||
{
|
|
||||||
"flush", "stbar", "swap", "muldiv", "v9", "ultra3"
|
|
||||||
};
|
|
||||||
#define _DL_HWCAP_COUNT 6
|
#define _DL_HWCAP_COUNT 6
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
@ -41,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", sparc32_cap_flags[i]);
|
_dl_printf (" %s", GL(dl_sparc32_cap_flags)[i]);
|
||||||
|
|
||||||
_dl_printf ("\n");
|
_dl_printf ("\n");
|
||||||
|
|
||||||
@ -52,7 +46,7 @@ static inline const char *
|
|||||||
__attribute__ ((unused))
|
__attribute__ ((unused))
|
||||||
_dl_hwcap_string (int idx)
|
_dl_hwcap_string (int idx)
|
||||||
{
|
{
|
||||||
return sparc32_cap_flags[idx];
|
return GL(dl_sparc32_cap_flags)[idx];
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
@ -62,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, sparc32_cap_flags [i]) == 0)
|
if (strcmp (str, GL(dl_sparc32_cap_flags) [i]) == 0)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
62
sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c
Normal file
62
sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/* Data for Linux/sparc64 version of processor capability information.
|
||||||
|
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
/* This information must be kept in sync with the _DL_HWCAP_COUNT
|
||||||
|
definition in procinfo.h.
|
||||||
|
|
||||||
|
If anything should be added here check whether the size of each string
|
||||||
|
is still ok with the given array size.
|
||||||
|
|
||||||
|
All the #ifdefs in the definitions ar equite irritating but
|
||||||
|
necessary if we want to avoid duplicating the information. There
|
||||||
|
are three different modes:
|
||||||
|
|
||||||
|
- PROCINFO_DECL is defined. This means we are only interested in
|
||||||
|
declarations.
|
||||||
|
|
||||||
|
- PROCINFO_DECL is not defined:
|
||||||
|
|
||||||
|
+ if SHARED is defined the file is included in an array
|
||||||
|
initializer. The .element = { ... } syntax is needed.
|
||||||
|
|
||||||
|
+ if SHARED is not defined a normal array initialization is
|
||||||
|
needed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef PROCINFO_DECL
|
||||||
|
EXTERN
|
||||||
|
#endif
|
||||||
|
#if !defined PROCINFO_DECL && defined SHARED
|
||||||
|
._dl_sparc64_cap_flags
|
||||||
|
#else
|
||||||
|
const char _dl_sparc64_cap_flags[6][7]
|
||||||
|
#endif
|
||||||
|
#ifndef PROCINFO_DECL
|
||||||
|
= {
|
||||||
|
"flush", "stbar", "swap", "muldiv", "v9", "ultra3"
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined SHARED || defined PROCINFO_DECL
|
||||||
|
;
|
||||||
|
#else
|
||||||
|
,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef PROCINFO_DECL
|
@ -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 Free Software Foundation, Inc.
|
Copyright (C) 1999, 2000, 2001, 2002 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.
|
||||||
|
|
||||||
@ -23,12 +23,6 @@
|
|||||||
|
|
||||||
#include <ldsodefs.h>
|
#include <ldsodefs.h>
|
||||||
|
|
||||||
/* If anything should be added here check whether the size of each string
|
|
||||||
is still ok with the given array size. */
|
|
||||||
static const char sparc64_cap_flags[][7] =
|
|
||||||
{
|
|
||||||
"flush", "stbar", "swap", "muldiv", "v9", "ultra3"
|
|
||||||
};
|
|
||||||
#define _DL_HWCAP_COUNT 6
|
#define _DL_HWCAP_COUNT 6
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
@ -41,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", sparc64_cap_flags[i]);
|
_dl_printf (" %s", GL(dl_sparc64_cap_flags)[i]);
|
||||||
|
|
||||||
_dl_printf ("\n");
|
_dl_printf ("\n");
|
||||||
|
|
||||||
@ -52,7 +46,7 @@ static inline const char *
|
|||||||
__attribute__ ((unused))
|
__attribute__ ((unused))
|
||||||
_dl_hwcap_string (int idx)
|
_dl_hwcap_string (int idx)
|
||||||
{
|
{
|
||||||
return sparc64_cap_flags[idx];
|
return GL(dl_sparc64_cap_flags)[idx];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -63,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, sparc64_cap_flags [i]) == 0)
|
if (strcmp (str, GL(dl_sparc64_cap_flags) [i]) == 0)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user