[glibc] Resync with upstream master

Siddhesh Poyarekar siddhesh at fedoraproject.org
Tue Jun 4 16:54:47 UTC 2013


commit 3cd9b9ce3d4e69b8e030cc8437b7b5a4a607f350
Author: Siddhesh Poyarekar <siddhesh.poyarekar at gmail.com>
Date:   Tue Jun 4 22:23:45 2013 +0530

    Resync with upstream master
    
    Dropped upstreamed patches and adjusted others to apply to latest
    upstream.

 glibc-fedora-elf-init-hidden_undef.patch |   10 +-
 glibc-fedora-regcomp-sw11561.patch       |  147 --------
 glibc-rh841318.patch                     |   20 +-
 glibc-rh892777.patch                     |   61 ----
 glibc-rh905184.patch                     |   95 -----
 glibc-rh905877.patch                     |  147 --------
 glibc-rh911307.patch                     |    7 +-
 glibc-rh921760.patch                     |   55 ---
 glibc-rh959034.patch                     |   80 -----
 glibc-rh961238.patch                     |  560 ------------------------------
 glibc-stap-libm.patch                    |   99 +++---
 glibc.spec                               |   29 +--
 sources                                  |    4 +-
 13 files changed, 77 insertions(+), 1237 deletions(-)
---
diff --git a/glibc-fedora-elf-init-hidden_undef.patch b/glibc-fedora-elf-init-hidden_undef.patch
index cd50d3b..36ef59c 100644
--- a/glibc-fedora-elf-init-hidden_undef.patch
+++ b/glibc-fedora-elf-init-hidden_undef.patch
@@ -4,9 +4,9 @@
 diff -Nrup a/csu/elf-init.c b/csu/elf-init.c
 --- a/csu/elf-init.c	2012-06-05 07:42:49.000000000 -0600
 +++ b/csu/elf-init.c	2012-06-07 12:15:21.570319597 -0600
-@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int,
- extern void (*__fini_array_start []) (void) attribute_hidden;
- extern void (*__fini_array_end []) (void) attribute_hidden;
+@@ -62,6 +62,23 @@ extern void _fini (void);
+    programs, this module will come from libc_nonshared.a and differs from
+    the libc.a module in that it doesn't call the preinit array.  */
  
 +#if defined HAVE_VISIBILITY_ATTRIBUTE \
 +    && (defined SHARED || defined LIBC_NONSHARED)
@@ -26,5 +26,5 @@ diff -Nrup a/csu/elf-init.c b/csu/elf-init.c
 +hidden_undef (__fini_array_start)
 +hidden_undef (__fini_array_end)
  
- /* These function symbols are provided for the .init/.fini section entry
-    points automagically by the linker.  */
+ void
+ __libc_csu_init (int argc, char **argv, char **envp)
diff --git a/glibc-rh841318.patch b/glibc-rh841318.patch
index 21859d5..18ffd8f 100644
--- a/glibc-rh841318.patch
+++ b/glibc-rh841318.patch
@@ -5,7 +5,7 @@ diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile
  	 bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
  	 scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
  	 bug-vfprintf-nargs tst-long-dbl-fphex tst-fphex-wide tst-sprintf3 \
--	 bug25 tst-printf-round
+-	 bug25 tst-printf-round bug26
 +	 bug25 tst-printf-round bug23-2 bug23-3
  
  test-srcs = tst-unbputc tst-printf
@@ -45165,9 +45165,9 @@ diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c
 +#include "../test-skeleton.c"
 +
 diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
---- a/stdio-common/vfprintf.c	2012-09-14 14:31:29.000000000 -0600
-+++ b/stdio-common/vfprintf.c	2012-09-14 14:41:27.891840141 -0600
-@@ -243,6 +243,12 @@ vfprintf (FILE *s, const CHAR_T *format,
+--- a/stdio-common/vfprintf.c	2013-06-04 16:40:55.000000000 +0530
++++ b/stdio-common/vfprintf.c	2013-06-04 21:17:10.648403112 +0530
+@@ -263,6 +263,12 @@ vfprintf (FILE *s, const CHAR_T *format,
    /* For the argument descriptions, which may be allocated on the heap.  */
    void *args_malloced = NULL;
  
@@ -45180,7 +45180,7 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
    /* This table maps a character into a number representing a
       class.  In each step there is a destination label for each
       class.  */
-@@ -1685,8 +1691,8 @@ do_positional:
+@@ -1672,8 +1678,8 @@ do_positional:
      size_t nspecs = 0;
      /* A more or less arbitrary start value.  */
      size_t nspecs_size = 32 * sizeof (struct printf_spec);
@@ -45190,7 +45190,7 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
      /* The number of arguments the format string requests.  This will
         determine the size of the array needed to store the argument
         attributes.  */
-@@ -1727,10 +1733,25 @@ do_positional:
+@@ -1715,10 +1721,25 @@ do_positional:
  	  {
  	    /* Extend the array of format specifiers.  */
  	    struct printf_spec *old = specs;
@@ -45218,12 +45218,12 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
  	  }
  
  	/* Parse the format specifier.  */
-@@ -2045,6 +2066,8 @@ do_positional:
+@@ -2039,6 +2060,8 @@ do_positional:
    }
  
  all_done:
 +  if (specs_malloced)
 +    free (specs);
-   free (args_malloced);
-   free (workstart);
-   /* Unlock the stream.  */
+   if (__glibc_unlikely (args_malloced != NULL))
+     free (args_malloced);
+   if (__glibc_unlikely (workstart != NULL))
diff --git a/glibc-rh911307.patch b/glibc-rh911307.patch
index 9eb0426..49de569 100644
--- a/glibc-rh911307.patch
+++ b/glibc-rh911307.patch
@@ -24,9 +24,9 @@
 diff -urN glibc-2.17-c758a686/string/Makefile tmp/glibc-2.17-c758a686/string/Makefile
 --- glibc-2.17-c758a686/string/Makefile	2013-02-27 18:07:34.618968703 -0500
 +++ tmp/glibc-2.17-c758a686/string/Makefile	2013-02-27 18:08:16.075796160 -0500
-@@ -78,6 +78,14 @@
- CFLAGS-bug-strstr1.c = -fno-builtin
- CFLAGS-bug-strcasestr1.c = -fno-builtin
+@@ -72,6 +72,14 @@ CFLAGS-stratcliff.c = -fno-builtin
+ CFLAGS-test-ffs.c = -fno-builtin
+ CFLAGS-tst-inlcall.c = -fno-builtin
  
 +# Disable any optimization which might result in function calls to the very
 +# same functions we are trying to compile, thus creating an infinite loop.
@@ -58,3 +58,4 @@ diff -urN glibc-2.17-c758a686/elf/Makefile tmp/glibc-2.17-c758a686/elf/Makefile
 +
  test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
  generated += $(addsuffix .so,$(strip $(modules-names)))
+ 
diff --git a/glibc-stap-libm.patch b/glibc-stap-libm.patch
index fd20b7f..a9fe600 100644
--- a/glibc-stap-libm.patch
+++ b/glibc-stap-libm.patch
@@ -1,41 +1,42 @@
 diff -rup c/sysdeps/ieee754/dbl-64/slowexp.c d/sysdeps/ieee754/dbl-64/slowexp.c
---- c/sysdeps/ieee754/dbl-64/slowexp.c	2012-05-20 19:47:38.000000000 -0600
-+++ d/sysdeps/ieee754/dbl-64/slowexp.c	2012-05-21 10:02:51.693957300 -0600
-@@ -30,6 +30,8 @@
- #include "mpa.h"
+--- c/sysdeps/ieee754/dbl-64/slowexp.c	2013-06-04 16:40:55.000000000 +0530
++++ d/sysdeps/ieee754/dbl-64/slowexp.c	2013-06-04 21:02:49.377439607 +0530
+@@ -29,6 +29,8 @@
+ /**************************************************************************/
  #include <math_private.h>
  
 +#include <stap-probe.h>
 +
- #ifndef SECTION
- # define SECTION
- #endif
-@@ -60,12 +62,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);
+ #ifndef USE_LONG_DOUBLE_FOR_MP
+ # include "mpa.h"
+ void __mpexp (mp_no *x, mp_no *y, int p);
+@@ -60,13 +62,22 @@ __slowexp (double x)
+   __mp_dbl (&mpw, &w, p);
+   __mp_dbl (&mpz, &z, p);
+   if (w == z)
+-    return w;
++    {
++      /* 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
+     {
+       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;
-   }
- }
++      /* 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;
+     }
+ #else
 diff -rup c/sysdeps/ieee754/dbl-64/slowpow.c d/sysdeps/ieee754/dbl-64/slowpow.c
---- c/sysdeps/ieee754/dbl-64/slowpow.c	2012-05-20 19:47:38.000000000 -0600
-+++ d/sysdeps/ieee754/dbl-64/slowpow.c	2012-05-21 10:02:51.694957291 -0600
+--- c/sysdeps/ieee754/dbl-64/slowpow.c	2013-06-04 16:40:55.000000000 +0530
++++ d/sysdeps/ieee754/dbl-64/slowpow.c	2013-06-04 21:05:21.776433149 +0530
 @@ -34,6 +34,8 @@
  #include "mpa.h"
  #include <math_private.h>
@@ -45,28 +46,28 @@ diff -rup c/sysdeps/ieee754/dbl-64/slowpow.c d/sysdeps/ieee754/dbl-64/slowpow.c
  #ifndef SECTION
  # define SECTION
  #endif
-@@ -65,7 +67,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;
-+  }
+@@ -97,7 +99,12 @@ __slowpow (double x, double y, double z)
+   __sub (&mpp, &eps, &mpr1, p);
+   __mp_dbl (&mpr1, &res1, p);
+   if (res == res1)
+-    return res;
++    {
++      /* 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 */
-@@ -75,5 +82,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 */
+   /* If we don't, then we repeat using a higher precision.  768 bits of
+      precision ought to be enough for anybody.  */
+@@ -109,5 +116,10 @@ __slowpow (double x, double y, double z)
+   __mul (&mpy, &mpz, &mpw, p);
+   __mpexp (&mpw, &mpp, p);
+   __mp_dbl (&mpp, &res, p);
 +
 +  /* 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);
++  LIBC_PROBE (slowpow_p32, 4, &x, &y, &z, &res);
 +
    return res;
  }
diff --git a/glibc.spec b/glibc.spec
index e5ed333..39be2bf 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,5 +1,5 @@
-%define glibcsrcdir glibc-2.17-c758a686
-%define glibcversion 2.17
+%define glibcsrcdir glibc-2.17-757-g96df079
+%define glibcversion 2.17.90
 ### glibc.spec.in follows:
 %define run_glibc_tests 1
 %define auxarches athlon alphaev6
@@ -27,7 +27,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: %{glibcversion}
-Release: 9%{?dist}
+Release: 1%{?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
@@ -63,7 +63,6 @@ Source1: %{glibcsrcdir}-releng.tar.gz
 # change this.
 Patch0001: %{name}-fedora-nscd.patch
 
-Patch0002: %{name}-fedora-regcomp-sw11561.patch
 Patch0003: %{name}-fedora-ldd.patch
 
 Patch0004: %{name}-fedora-ppc-unwind.patch
@@ -108,17 +107,11 @@ Patch0034: %{name}-fedora-elf-init-hidden_undef.patch
 
 # Needs to be sent upstream
 Patch0035: %{name}-rh911307.patch
-Patch0036: %{name}-rh892777.patch
 Patch0037: %{name}-rh952799.patch
-Patch0038: %{name}-rh959034.patch
 
 #
 # Patches from upstream
 #
-# Upstream BZ 15078
-Patch2029: %{name}-rh905877.patch
-
-Patch1030: %{name}-rh921760.patch
 
 #
 # Patches submitted, but not yet approved upstream.
@@ -147,12 +140,6 @@ Patch2026: %{name}-rh841787.patch
 # Upstream BZ 14185
 Patch2027: %{name}-rh819430.patch
 
-# Upstream BZ 15006
-Patch2028: %{name}-rh905184.patch
-
-# Upstream BZ 15465
-Patch2039: %{name}-rh961238.patch
-
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Obsoletes: glibc-profile < 2.4
 Obsoletes: nss_db
@@ -377,7 +364,6 @@ package or when debugging this package.
 %setup -q -n %{glibcsrcdir} -b1
 
 %patch0001 -p1
-%patch0002 -p1
 %patch0003 -p1
 %patch0004 -p1
 %patch0005 -p1
@@ -410,14 +396,8 @@ package or when debugging this package.
 %patch0032 -p1
 %patch0033 -p1
 %patch0034 -p1
-%patch2028 -p1
 %patch0035 -p1
-%patch0036 -p1
 %patch0037 -p1
-%patch2029 -p1
-%patch1030 -p1
-%patch0038 -p1
-%patch2039 -p1
 
 # On powerpc32, hp timing is only available in power4/power6
 # libs, not in base, so pre-power4 dynamic linker is incompatible
@@ -1217,6 +1197,9 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Jun  4 2013 Siddhesh Poyarekar <siddhesh at redhat.com> - 2.17.90-1
+  - Resync with upstream master.
+
 * Tue May 14 2013 Siddhesh Poyarekar <siddhesh at redhat.com> - 2.17-9
   - Avoid crashing in LD_DEBUG when program name is unavailable (#961238).
 
diff --git a/sources b/sources
index d1d2286..f3afc4a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-a0eee6c5a6ed680b723f2247576d4232  glibc-2.17-c758a686-releng.tar.gz
-d91ac2e9667310fa815c2316d542567e  glibc-2.17-c758a686.tar.gz
+caa90cd9da8f21559e2d548b91ce55a3  glibc-2.17-757-g96df079.tar.gz
+f95967f50dfad07b8afe06f7358a80c9  glibc-2.17-757-g96df079-releng.tar.gz


More information about the scm-commits mailing list