- Add doi_IN, sat_IN and mni_IN to SUPPORTED locals (#803286)

- Add stap probes in slowpow and slowexp.
This commit is contained in:
Jeff Law 2012-03-14 21:21:22 -06:00
parent d893fa43b7
commit 4ad934832a
3 changed files with 111 additions and 1 deletions

27
glibc-rh803286.patch Normal file
View File

@ -0,0 +1,27 @@
diff -rup a/localedata/SUPPORTED b/localedata/SUPPORTED
--- a/localedata/SUPPORTED 2012-03-12 14:11:04.134056609 -0600
+++ b/localedata/SUPPORTED 2012-03-14 20:59:39.993269235 -0600
@@ -103,6 +103,7 @@ de_DE@euro/ISO-8859-15 \
de_LU.UTF-8/UTF-8 \
de_LU/ISO-8859-1 \
de_LU@euro/ISO-8859-15 \
+doi_IN/UTF-8 \
dv_MV/UTF-8 \
dz_BT/UTF-8 \
el_GR.UTF-8/UTF-8 \
@@ -298,6 +299,7 @@ mk_MK.UTF-8/UTF-8 \
mk_MK/ISO-8859-5 \
ml_IN/UTF-8 \
mn_MN/UTF-8 \
+mni_IN/UTF-8 \
mr_IN/UTF-8 \
ms_MY.UTF-8/UTF-8 \
ms_MY/ISO-8859-1 \
@@ -350,6 +352,7 @@ ru_UA.UTF-8/UTF-8 \
ru_UA/KOI8-U \
rw_RW/UTF-8 \
sa_IN/UTF-8 \
+sat_IN/UTF-8 \
sc_IT/UTF-8 \
sd_IN/UTF-8 \
sd_IN@devanagari/UTF-8 \

72
glibc-stap-libm.patch Normal file
View File

@ -0,0 +1,72 @@
diff -rup a/sysdeps/ieee754/dbl-64/slowexp.c b/sysdeps/ieee754/dbl-64/slowexp.c
--- a/sysdeps/ieee754/dbl-64/slowexp.c 2012-01-01 05:16:32.000000000 -0700
+++ b/sysdeps/ieee754/dbl-64/slowexp.c 2012-03-13 11:57:51.225330782 -0600
@@ -31,6 +31,8 @@
#include "mpa.h"
#include "math_private.h"
+#include <stap-probe.h>
+
#ifndef SECTION
# define SECTION
#endif
@@ -61,12 +63,21 @@ __slowexp(double x) {
__sub(&mpy,&mpcor,&mpz,p);
__mp_dbl(&mpw, &w, p);
__mp_dbl(&mpz, &z, p);
- if (w == z) return w;
+ if (w == z) {
+ /* Track how often we get to the slow exp code plus
+ its input/output values. */
+ LIBC_PROBE (slowexp_p6, 2, &x, &w);
+ return w;
+ }
else { /* if calculating is not exactly */
p = 32;
__dbl_mp(x,&mpx,p);
__mpexp(&mpx, &mpy, p);
__mp_dbl(&mpy, &res, p);
+
+ /* Track how often we get to the uber-slow exp code plus
+ its input/output values. */
+ LIBC_PROBE (slowexp_p32, 2, &x, &res);
return res;
}
}
diff -rup a/sysdeps/ieee754/dbl-64/slowpow.c b/sysdeps/ieee754/dbl-64/slowpow.c
--- a/sysdeps/ieee754/dbl-64/slowpow.c 2012-01-01 05:16:32.000000000 -0700
+++ b/sysdeps/ieee754/dbl-64/slowpow.c 2012-03-13 11:57:59.865284437 -0600
@@ -35,6 +35,8 @@
#include "mpa.h"
#include "math_private.h"
+#include <stap-probe.h>
+
#ifndef SECTION
# define SECTION
#endif
@@ -66,7 +68,12 @@ __slowpow(double x, double y, double z)
__mp_dbl(&mpr, &res, p);
__sub(&mpp,&eps,&mpr1,p); /* pp -eps =r1 */
__mp_dbl(&mpr1, &res1, p); /* converting into double precision */
- if (res == res1) return res;
+ if (res == res1) {
+ /* Track how often we get to the slow pow code plus
+ its input/output values. */
+ LIBC_PROBE (slowpow_p6, 4, &x, &y, &z, &res);
+ return res;
+ }
p = 32; /* if we get here result wasn't calculated exactly, continue */
__dbl_mp(x,&mpx,p); /* for more exact calculation */
@@ -76,5 +83,10 @@ __slowpow(double x, double y, double z)
__mul(&mpy,&mpz,&mpw,p); /* y*z =w */
__mpexp(&mpw, &mpp, p); /* e^w=pp */
__mp_dbl(&mpp, &res, p); /* converting into double precision */
+
+ /* Track how often we get to the uber-slow pow code plus
+ its input/output values. */
+ LIBC_PROBE (slowpow_p32, 4, &x, &y, &z, &res);
+
return res;
}

View File

@ -28,7 +28,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
Release: 27%{?dist}
Release: 28%{?dist}
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@ -117,6 +117,11 @@ Patch41 : %{name}-rh794797-2.patch
# From upstream
Patch42 : %{name}-rh801650-1.patch
Patch43 : %{name}-rh801650-2.patch
# stap and thus will never be accepted upstream
Patch44 : %{name}-stap-libm.patch
# Waiting on upstream
Patch45 : %{name}-rh803286.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Obsoletes: glibc-profile < 2.4
@ -378,6 +383,8 @@ rm -rf %{glibcportsdir}
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
# A lot of programs still misuse memcpy when they have to use
# memmove. The memcpy implementation below is not tolerant at
@ -1230,6 +1237,10 @@ rm -f *.filelist*
%endif
%changelog
* Wed Mar 13 2012 Jeff Law <law@redhat.com> - 2.15-28
- Add doi_IN, sat_IN and mni_IN to SUPPORTED locals (#803286)
- Add stap probes in slowpow and slowexp.
* Fri Mar 09 2012 Jeff Law <law@redhat.com> - 2.15-27
- Fix AVX checks (#801650)