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.
This commit is contained in:
Roland McGrath 2006-02-03 22:28:47 +00:00
parent ee926fc8f9
commit f2a2deef4d
3 changed files with 18 additions and 5 deletions

View File

@ -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].

View 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);
}

View 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