summaryrefslogtreecommitdiff
path: root/sysdeps/i386/i686
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-01 07:49:47 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-01 07:49:47 +0000
commitccdf0cab1d670a05afff42b02c7583ccd23abde9 (patch)
tree728f8fc2797a2de2b94a0481b3af4c462e65fc7a /sysdeps/i386/i686
parent5688da55372193e5941f0240e6ea759d28483970 (diff)
Update.
* elf/dl-minimal.c: Define _itoa for 32-bit machines with HP timing. * elf/dl-reloc.c: Pretty printing. * sysdeps/generic/ldsodefs.h: Move _dl_hp_timing_overhead and procinfo-related variables in rtld_global struct. * elf/dl-support.c: Likewise. * elf/rtld.c: Likewise. * sysdeps/i386/i686/Makefile: Likewise. * sysdeps/i386/i686/hp-timing.c: Likewise. * sysdeps/i386/i686/hp-timing.h: Likewise. * sysdeps/ia64/Makefile: Likewise. * sysdeps/ia64/hp-timing.c: Likewise. * sysdeps/sparc/sparc32/sparcv9/Makefile: Likewise. * sysdeps/sparc/sparc32/sparcv9/hp-timing.c: Likewise. * sysdeps/unix/sysv/linux/arm/dl-procinfo.c: Likewise. * sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/i386/Makefile: Likewise. * sysdeps/unix/sysv/linux/i386/dl-procinfo.c: Likewise. * sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise. * sysdeps/x86_64/Makefile: Likewise.
Diffstat (limited to 'sysdeps/i386/i686')
-rw-r--r--sysdeps/i386/i686/Makefile1
-rw-r--r--sysdeps/i386/i686/hp-timing.c4
-rw-r--r--sysdeps/i386/i686/hp-timing.h29
3 files changed, 17 insertions, 17 deletions
diff --git a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile
index b4b60d0814..b85167fe4d 100644
--- a/sysdeps/i386/i686/Makefile
+++ b/sysdeps/i386/i686/Makefile
@@ -1,3 +1,4 @@
ifeq ($(subdir),csu)
sysdep_routines += hp-timing
+static-only-routines += hp-timing
endif
diff --git a/sysdeps/i386/i686/hp-timing.c b/sysdeps/i386/i686/hp-timing.c
index c52099c73d..c8c88650cb 100644
--- a/sysdeps/i386/i686/hp-timing.c
+++ b/sysdeps/i386/i686/hp-timing.c
@@ -1,5 +1,5 @@
/* Support for high precision, low overhead timing functions. i686 version.
- Copyright (C) 1998 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -21,4 +21,4 @@
#include <hp-timing.h>
/* We have to define the variable for the overhead. */
-hp_timing_t __libc_hp_timing_overhead;
+hp_timing_t _dl_hp_timing_overhead;
diff --git a/sysdeps/i386/i686/hp-timing.h b/sysdeps/i386/i686/hp-timing.h
index f2f24d3202..afb5c7123b 100644
--- a/sysdeps/i386/i686/hp-timing.h
+++ b/sysdeps/i386/i686/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. i686 version.
- Copyright (C) 1998 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -84,10 +84,6 @@
/* We use 64bit values for the times. */
typedef unsigned long 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. */
#define HP_TIMING_ZERO(Var) (Var) = (0)
@@ -101,17 +97,20 @@ extern hp_timing_t __libc_hp_timing_overhead;
/* Use two 'rdtsc' instructions in a row to find out how long it takes. */
#define HP_TIMING_DIFF_INIT() \
do { \
- int __cnt = 5; \
- __libc_hp_timing_overhead = ~0ull; \
- do \
+ if (GL(dl_hp_timing_overhead) == 0) \
{ \
- hp_timing_t __t1, __t2; \
- HP_TIMING_NOW (__t1); \
- HP_TIMING_NOW (__t2); \
- if (__t2 - __t1 < __libc_hp_timing_overhead) \
- __libc_hp_timing_overhead = __t2 - __t1; \
+ int __cnt = 5; \
+ GL(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; \
+ } \
+ while (--__cnt > 0); \
} \
- while (--__cnt > 0); \
} while (0)
/* It's simple arithmetic for us. */
@@ -122,7 +121,7 @@ extern hp_timing_t __libc_hp_timing_overhead;
do { \
char __not_done; \
hp_timing_t __oldval = (Sum); \
- hp_timing_t __diff = (Diff) - __libc_hp_timing_overhead; \
+ hp_timing_t __diff = (Diff) - GL(dl_hp_timing_overhead); \
do \
{ \
hp_timing_t __newval = __oldval + __diff; \