diff options
author | Roland McGrath <roland@gnu.org> | 2006-02-03 22:28:47 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2006-02-03 22:28:47 +0000 |
commit | f2a2deef4de6c97f557b925e6701135dddce2eac (patch) | |
tree | 636a6270bfe54fffad416a4a140ef2f0b3069d3c | |
parent | ee926fc8f961697ee4c5d55da6c78716f12853c1 (diff) | |
download | glibc-f2a2deef4de6c97f557b925e6701135dddce2eac.tar.gz glibc-f2a2deef4de6c97f557b925e6701135dddce2eac.tar.xz glibc-f2a2deef4de6c97f557b925e6701135dddce2eac.zip |
[BZ #2268]
2006-02-03 Roland McGrath <roland@redhat.com> [BZ #2268] * sysdeps/posix/profil.c (__profil): Use __profile_frequency to choose timer interval, don't assume smallest possible interval is it. * sysdeps/powerpc/fpu/bits/fenvinline.h (fegetround): Make asm volatile.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | sysdeps/posix/profil.c | 6 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/bits/fenvinline.h | 8 |
3 files changed, 18 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 3f5c3aafd3..ecbf595f2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ +2006-02-03 Roland McGrath <roland@redhat.com> + + [BZ #2268] + * sysdeps/posix/profil.c (__profil): Use __profile_frequency to choose + timer interval, don't assume smallest possible interval is it. + 2006-02-03 Jakub Jelinek <jakub@redhat.com> + * sysdeps/powerpc/fpu/bits/fenvinline.h (fegetround): Make asm + volatile. + * stdlib/bits/stdlib-ldbl.h (qecvt, qfcvt, qgcvt, qecvt_r, qfcvt_r): Guard with [__USE_SVID || __USE_XOPEN_EXTENDED]. diff --git a/sysdeps/posix/profil.c b/sysdeps/posix/profil.c index f40faee33d..281b53bf6a 100644 --- a/sysdeps/posix/profil.c +++ b/sysdeps/posix/profil.c @@ -1,5 +1,6 @@ /* Low-level statistical profiling support function. Mostly POSIX.1 version. - Copyright (C) 1996,97,98,2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1996,1997,1998,2002,2004,2005,2006 + 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 @@ -22,6 +23,7 @@ #include <errno.h> #include <signal.h> #include <sys/time.h> +#include <libc-internal.h> #ifndef SIGPROF @@ -110,7 +112,7 @@ __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale) return -1; timer.it_value.tv_sec = 0; - timer.it_value.tv_usec = 1; + timer.it_value.tv_usec = 1000000 / __profile_frequency (); timer.it_interval = timer.it_value; return __setitimer (ITIMER_PROF, &timer, otimer_ptr); } diff --git a/sysdeps/powerpc/fpu/bits/fenvinline.h b/sysdeps/powerpc/fpu/bits/fenvinline.h index 552c8c9db7..f7700a49e7 100644 --- a/sysdeps/powerpc/fpu/bits/fenvinline.h +++ b/sysdeps/powerpc/fpu/bits/fenvinline.h @@ -1,5 +1,6 @@ /* Inline floating-point environment handling functions for powerpc. - Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2006 + 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 @@ -22,8 +23,9 @@ /* Inline definition for fegetround. */ # define fegetround() \ (__extension__ ({ int __fegetround_result; \ - __asm__ ("mcrfs 7,7 ; mfcr %0" \ - : "=r"(__fegetround_result) : : "cr7"); \ + __asm__ __volatile__ \ + ("mcrfs 7,7 ; mfcr %0" \ + : "=r"(__fegetround_result) : : "cr7"); \ __fegetround_result & 3; })) /* The weird 'i#*X' constraints on the following suppress a gcc |