From 4ad934832a3bf982c24a5a2509c101e52694b11e Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 14 Mar 2012 21:21:22 -0600 Subject: [PATCH] - Add doi_IN, sat_IN and mni_IN to SUPPORTED locals (#803286) - Add stap probes in slowpow and slowexp. --- glibc-rh803286.patch | 27 ++++++++++++++++ glibc-stap-libm.patch | 72 +++++++++++++++++++++++++++++++++++++++++++ glibc.spec | 13 +++++++- 3 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 glibc-rh803286.patch create mode 100644 glibc-stap-libm.patch diff --git a/glibc-rh803286.patch b/glibc-rh803286.patch new file mode 100644 index 0000000..d9f909c --- /dev/null +++ b/glibc-rh803286.patch @@ -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 \ diff --git a/glibc-stap-libm.patch b/glibc-stap-libm.patch new file mode 100644 index 0000000..07761b9 --- /dev/null +++ b/glibc-stap-libm.patch @@ -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 ++ + #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 ++ + #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; + } diff --git a/glibc.spec b/glibc.spec index 8fffa08..0a0eef8 100644 --- a/glibc.spec +++ b/glibc.spec @@ -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 - 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 - 2.15-27 - Fix AVX checks (#801650)