]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
[BZ #2268]
authorRoland McGrath <roland@gnu.org>
Fri, 3 Feb 2006 22:28:47 +0000 (22:28 +0000)
committerRoland McGrath <roland@gnu.org>
Fri, 3 Feb 2006 22:28:47 +0000 (22:28 +0000)
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.

ChangeLog
sysdeps/posix/profil.c
sysdeps/powerpc/fpu/bits/fenvinline.h

index 3f5c3aafd34d8d2a8c86e3ee2b08dbd32519ca6b..ecbf595f2f48dfba0218afa2981a775ac6b1b5ae 100644 (file)
--- 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].
 
index f40faee33d1155f2e7a703dee88d5238d4da14cd..281b53bf6a958ed88a46d0be1dcd5a765e8fd6a2 100644 (file)
@@ -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);
 }
index 552c8c9db7d4e20d55c804008fc8ba2edbbe0f86..f7700a49e78a2d3a4cd536b5ae003584bbbc14d4 100644 (file)
@@ -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