]> git.pld-linux.org Git - packages/glibc.git/commitdiff
- drop obsolete patches
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 1 Jul 2012 07:23:03 +0000 (07:23 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    0061_all_glibc-2.13-static-memset.patch -> 1.2
    glibc-bad-fix.patch -> 1.4
    glibc-bug-13618.patch -> 1.2
    glibc.spec -> 1.965

0061_all_glibc-2.13-static-memset.patch [deleted file]
glibc-bad-fix.patch [deleted file]
glibc-bug-13618.patch [deleted file]
glibc.spec

diff --git a/0061_all_glibc-2.13-static-memset.patch b/0061_all_glibc-2.13-static-memset.patch
deleted file mode 100644 (file)
index eb9884d..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-http://bugs.gentoo.org/353816
-http://sourceware.org/ml/libc-alpha/2011-02/msg00152.html
-
-From 87fac357a6243982ce21cb71e21bbe0d35234eed Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Tue, 22 Feb 2011 13:26:19 -0500
-Subject: [PATCH] memset: fix define usage for shared libs
-
-The proper define to check "am I in a shared lib" is "SHARED", not "PIC".
-The two new memset_chk functions incorrectly depend on "PIC".
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-
-2011-02-22  Mike Frysinger  <vapier@gentoo.org>
-
-       * sysdeps/i386/i686/memset_chk.S: Change PIC to SHARED.
-       * sysdeps/x86_64/memset_chk.S: Likewise.
----
- sysdeps/i386/i686/memset_chk.S |    2 +-
- sysdeps/x86_64/memset_chk.S    |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sysdeps/i386/i686/memset_chk.S b/sysdeps/i386/i686/memset_chk.S
-index cd93d5e..e7511a0 100644
---- a/sysdeps/i386/i686/memset_chk.S
-+++ b/sysdeps/i386/i686/memset_chk.S
-@@ -20,7 +20,7 @@
- #include <sysdep.h>
- #include "asm-syntax.h"
--#ifndef PIC
-+#ifndef SHARED
-       /* For libc.so this is defined in memset.S.
-          For libc.a, this is a separate source to avoid
-          memset bringing in __chk_fail and all routines
-diff --git a/sysdeps/x86_64/memset_chk.S b/sysdeps/x86_64/memset_chk.S
-index c1c8c23..2c4fffc 100644
---- a/sysdeps/x86_64/memset_chk.S
-+++ b/sysdeps/x86_64/memset_chk.S
-@@ -20,7 +20,7 @@
- #include <sysdep.h>
- #include "asm-syntax.h"
--#ifndef PIC
-+#ifndef SHARED
-       /* For libc.so this is defined in memset.S.
-          For libc.a, this is a separate source to avoid
-          memset bringing in __chk_fail and all routines
--- 
-1.7.4.1
-
diff --git a/glibc-bad-fix.patch b/glibc-bad-fix.patch
deleted file mode 100644 (file)
index 4b58ccf..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From 675155e9084e060fd0e1e637b843f14e82898aa5 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@redhat.com>
-Date: Wed, 22 Sep 2010 12:06:30 +0200
-Subject: [PATCH] Fix memory leak on init/fini dependency list
-
-diff --git a/elf/dl-close.c b/elf/dl-close.c
-index 73b2a2f..9bd91e3 100644
---- a/elf/dl-close.c
-+++ b/elf/dl-close.c
-@@ -1,5 +1,5 @@
- /* Close a shared object opened by `_dl_open'.
--   Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2007, 2009, 2010 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
-@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
-   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
-       || dl_close_state != not_pending)
-     {
--      if (map->l_direct_opencount == 0)
--      {
--        if (map->l_type == lt_loaded)
--          dl_close_state = rerun;
--        else if (map->l_type == lt_library)
--          {
--            struct link_map **oldp = map->l_initfini;
--            map->l_initfini = map->l_orig_initfini;
--            _dl_scope_free (oldp);
--          }
--      }
-+      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
-+      dl_close_state = rerun;
-       /* There are still references to this object.  Do nothing more.  */
-       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
-diff --git a/elf/dl-deps.c b/elf/dl-deps.c
-index 9e30594..3890d00 100644
---- a/elf/dl-deps.c
-+++ b/elf/dl-deps.c
-@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
-                 nneeded * sizeof needed[0]);
-         atomic_write_barrier ();
-         l->l_initfini = l_initfini;
-+        l->l_free_initfini = 1;
-       }
-       /* If we have no auxiliary objects just go on to the next map.  */
-@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
-   l_initfini[nlist] = NULL;
-   atomic_write_barrier ();
-   map->l_initfini = l_initfini;
-+  map->l_free_initfini = 1;
-   if (l_reldeps != NULL)
-     {
-       atomic_write_barrier ();
-@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
-       _dl_scope_free (old_l_reldeps);
-     }
-   if (old_l_initfini != NULL)
--      map->l_orig_initfini = old_l_initfini;
-+    _dl_scope_free (old_l_initfini);
-diff --git a/elf/dl-libc.c b/elf/dl-libc.c
-index 7be9483..a13fce3 100644
---- a/elf/dl-libc.c
-+++ b/elf/dl-libc.c
-@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
-   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
-     {
--      /* Remove all additional names added to the objects.  */
-       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
-       {
-         struct libname_list *lnp = l->l_libname->next;
-         l->l_libname->next = NULL;
-+        /* Remove all additional names added to the objects.  */
-         while (lnp != NULL)
-           {
-             struct libname_list *old = lnp;
-@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
-             if (! old->dont_free)
-               free (old);
-           }
-+
-+        /* Free the initfini dependency list.  */
-+        if (l->l_free_initfini)
-+          free (l->l_initfini);
-       }
-       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 4a9109e..617e30e 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
-@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
-             lnp->dont_free = 1;
-             lnp = lnp->next;
-           }
-+        l->l_free_initfini = 0;
-         if (l != &GL(dl_rtld_map))
-           _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
-diff --git a/include/link.h b/include/link.h
-index e877104..051b99a 100644
---- a/include/link.h
-+++ b/include/link.h
-@@ -1,6 +1,6 @@
- /* Data structure for communication from the run-time dynamic linker for
-    loaded ELF shared objects.
--   Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+   Copyright (C) 1995-2006, 2007, 2009, 2010 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
-@@ -192,6 +192,9 @@ struct link_map
-                                                during LD_TRACE_PRELINKING=1
-                                                contains any DT_SYMBOLIC
-                                                libraries.  */
-+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
-+                                     freed, ie. not allocated with
-+                                     the dummy malloc in ld.so.  */
-     /* Collected information about own RPATH directories.  */
-     struct r_search_path_struct l_rpath_dirs;
-@@ -240,9 +243,6 @@ struct link_map
-     /* List of object in order of the init and fini calls.  */
-     struct link_map **l_initfini;
--    /* The init and fini list generated at startup, saved when the
--       object is also loaded dynamically.  */
--    struct link_map **l_orig_initfini;
-     /* List of the dependencies introduced through symbol binding.  */
-     struct link_map_reldeps
diff --git a/glibc-bug-13618.patch b/glibc-bug-13618.patch
deleted file mode 100644 (file)
index c18f3c4..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-From 6ee65ed6ddbf04402fad0bec6aa9c73b9d982ae4 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@gmail.com>
-Date: Fri, 27 Jan 2012 15:05:19 -0500
-Subject: [PATCH] Sort objects before relocations
-
----
- ChangeLog              |   11 ++++
- Makeconfig             |    6 ++
- NEWS                   |    4 +-
- elf/Makefile           |   15 +++++-
- elf/dl-open.c          |  128 ++++++++++++++++++++++++++++++++++++------------
- elf/tst-relsort1.c     |   19 +++++++
- elf/tst-relsort1mod1.c |    7 +++
- elf/tst-relsort1mod2.c |    7 +++
- 8 files changed, 160 insertions(+), 37 deletions(-)
- create mode 100644 elf/tst-relsort1.c
- create mode 100644 elf/tst-relsort1mod1.c
- create mode 100644 elf/tst-relsort1mod2.c
-
-diff --git a/Makeconfig b/Makeconfig
-index 2db2821..68547b2 100644
---- a/Makeconfig
-+++ b/Makeconfig
-@@ -900,6 +900,12 @@ else
- libdl = $(common-objpfx)dlfcn/libdl.a
- endif
-+ifeq ($(build-shared),yes)
-+libm = $(common-objpfx)math/libm.so$(libm.so-version)
-+else
-+libm = $(common-objpfx)math/libm.a
-+endif
-+
- # These are the subdirectories containing the library source.  The order
- # is more or less arbitrary.  The sorting step will take care of the
- # dependencies.
-diff --git a/elf/Makefile b/elf/Makefile
-index 052e763..3f1772a 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -124,7 +124,8 @@ distribute := rtld-Rules \
-                  tst-initordera1.c tst-initordera2.c tst-initorderb1.c \
-                  tst-initorderb2.c tst-initordera3.c tst-initordera4.c \
-                  tst-initorder.c \
--                 tst-initorder2.c
-+                 tst-initorder2.c \
-+                 tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c
- CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
- CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables
-@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
-        tst-audit1 tst-audit2 \
-        tst-stackguard1 tst-addr1 tst-thrlock \
-        tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
--       tst-initorder tst-initorder2
-+       tst-initorder tst-initorder2 tst-relsort1
- #      reldep9
- test-srcs = tst-pathopt
- selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
-@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
-               tst-initordera1 tst-initorderb1 \
-               tst-initordera2 tst-initorderb2 \
-               tst-initordera3 tst-initordera4 \
--              tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d
-+              tst-initorder2a tst-initorder2b tst-initorder2c \
-+              tst-initorder2d \
-+              tst-relsort1mod1 tst-relsort1mod2
- ifeq (yes,$(have-initfini-array))
- modules-names += tst-array2dep tst-array5dep
- endif
-@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
- CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
- CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
- endif
-+
-+$(objpfx)tst-relsort1: $(libdl)
-+$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
-+$(objpfx)tst-relsort1mod2.so: $(libm)
-+$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
-+                         $(objpfx)tst-relsort1mod2.so
-diff --git a/elf/dl-open.c b/elf/dl-open.c
-index a0b5c50..a56bdc1 100644
---- a/elf/dl-open.c
-+++ b/elf/dl-open.c
-@@ -1,5 +1,5 @@
- /* Load a shared object at runtime, relocate it, and run its initializer.
--   Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2007, 2009, 2010, 2011, 2012 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
-@@ -302,45 +302,109 @@ dl_open_worker (void *a)
-   if (GLRO(dl_lazy))
-     reloc_mode |= mode & RTLD_LAZY;
--  /* Relocate the objects loaded.  We do this in reverse order so that copy
--     relocs of earlier objects overwrite the data written by later objects.  */
--
-+  /* Sort the objects by dependency for the relocation process.  This
-+     allows IFUNC relocations to work and it also means copy
-+     relocation of dependencies are if necessary overwritten.  */
-+  size_t nmaps = 0;
-   struct link_map *l = new;
--  while (l->l_next)
--    l = l->l_next;
--  while (1)
-+  do
-+    {
-+      if (! l->l_real->l_relocated)
-+      ++nmaps;
-+      l = l->l_next;
-+    }
-+  while (l != NULL);
-+  struct link_map *maps[nmaps];
-+  nmaps = 0;
-+  l = new;
-+  do
-     {
-       if (! l->l_real->l_relocated)
-+      maps[nmaps++] = l;
-+      l = l->l_next;
-+    }
-+  while (l != NULL);
-+  if (nmaps > 1)
-+    {
-+      char seen[nmaps];
-+      memset (seen, '\0', nmaps);
-+      size_t i = 0;
-+      while (1)
-       {
--#ifdef SHARED
--        if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
-+        ++seen[i];
-+        struct link_map *thisp = maps[i];
-+
-+        /* Find the last object in the list for which the current one is
-+           a dependency and move the current object behind the object
-+           with the dependency.  */
-+        size_t k = nmaps - 1;
-+        while (k > i)
-           {
--            /* If this here is the shared object which we want to profile
--               make sure the profile is started.  We can find out whether
--               this is necessary or not by observing the `_dl_profile_map'
--               variable.  If was NULL but is not NULL afterwars we must
--               start the profiling.  */
--            struct link_map *old_profile_map = GL(dl_profile_map);
-+            struct link_map **runp = maps[k]->l_initfini;
-+            if (runp != NULL)
-+              /* Look through the dependencies of the object.  */
-+              while (*runp != NULL)
-+                if (__builtin_expect (*runp++ == thisp, 0))
-+                  {
-+                    /* Move the current object to the back past the last
-+                       object with it as the dependency.  */
-+                    memmove (&maps[i], &maps[i + 1],
-+                             (k - i) * sizeof (maps[0]));
-+                    maps[k] = thisp;
-+
-+                    if (seen[i + 1] > 1)
-+                      {
-+                        ++i;
-+                        goto next_clear;
-+                      }
-+
-+                    char this_seen = seen[i];
-+                    memmove (&seen[i], &seen[i + 1],
-+                             (k - i) * sizeof (seen[0]));
-+                    seen[k] = this_seen;
-+
-+                    goto next;
-+                  }
-+
-+            --k;
-+          }
--            _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
-+        if (++i == nmaps)
-+          break;
-+      next_clear:
-+        memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
-+      next:;
-+      }
-+    }
--            if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
--              {
--                /* We must prepare the profiling.  */
--                _dl_start_profile ();
-+  for (size_t i = nmaps; i-- > 0; )
-+    {
-+      l = maps[i];
--                /* Prevent unloading the object.  */
--                GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
--              }
-+#ifdef SHARED
-+      if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
-+      {
-+        /* If this here is the shared object which we want to profile
-+           make sure the profile is started.  We can find out whether
-+           this is necessary or not by observing the `_dl_profile_map'
-+           variable.  If it was NULL but is not NULL afterwars we must
-+           start the profiling.  */
-+        struct link_map *old_profile_map = GL(dl_profile_map);
-+
-+        _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
-+
-+        if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
-+          {
-+            /* We must prepare the profiling.  */
-+            _dl_start_profile ();
-+
-+            /* Prevent unloading the object.  */
-+            GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
-           }
--        else
--#endif
--          _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
-       }
--
--      if (l == new)
--      break;
--      l = l->l_prev;
-+      else
-+#endif
-+      _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
-     }
-   /* If the file is not loaded now as a dependency, add the search
-diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c
-new file mode 100644
-index 0000000..972100c
---- /dev/null
-+++ b/elf/tst-relsort1.c
-@@ -0,0 +1,19 @@
-+#include <dlfcn.h>
-+#include <stdio.h>
-+
-+
-+static int
-+do_test ()
-+{
-+  const char lib[] = "$ORIGIN/tst-relsort1mod1.so";
-+  void *h = dlopen (lib, RTLD_NOW);
-+  if (h == NULL)
-+    {
-+      puts (dlerror ());
-+      return 1;
-+    }
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c
-new file mode 100644
-index 0000000..9e4a943
---- /dev/null
-+++ b/elf/tst-relsort1mod1.c
-@@ -0,0 +1,7 @@
-+extern int foo (double);
-+
-+int
-+bar (void)
-+{
-+  return foo (1.2);
-+}
-diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c
-new file mode 100644
-index 0000000..a2c3e55
---- /dev/null
-+++ b/elf/tst-relsort1mod2.c
-@@ -0,0 +1,7 @@
-+#include <math.h>
-+
-+int
-+foo (double d)
-+{
-+  return floor (d) != 0.0;
-+}
--- 
-1.7.3.4
-
index e8c3f8e48bb4a8691eaecb06e9cc7c6152de29f9..be3d1864823273e495820392e41901994bdf80a8 100644 (file)
@@ -77,17 +77,16 @@ Patch22:    %{name}-with-stroke.patch
 Patch23:       %{name}-pt_pax.patch
 Patch25:       %{name}-cv_gnu89_inline.patch
 Patch26:       %{name}-posix-sh.patch
-Patch27:       %{name}-i686.patch
+
 Patch29:       %{name}-arm-alignment-fix.patch
 Patch30:       %{name}-bug-12492.patch
 Patch31:       %{name}-origin.patch
 Patch32:       %{name}-Os-fail-workaround.patch
 Patch33:       0020_all_glibc-tweak-rfc1918-lookup.patch
 Patch35:       0055_all_glibc-2.12-static-shared-getpagesize.patch
-Patch37:       0061_all_glibc-2.13-static-memset.patch
+
 Patch38:       1055_all_glibc-resolv-dynamic.patch
-Patch40:       %{name}-bad-fix.patch
-Patch41:       glibc-bug-13618.patch
+
 Patch42:       %{name}-pr13013.patch
 URL:           http://www.gnu.org/software/libc/
 %{?with_selinux:BuildRequires: audit-libs-devel}
@@ -943,8 +942,7 @@ mv %{name}-ports-%{ports_version} ports
 
 %patch25 -p1
 %patch26 -p1
-# SHOULD BE OBSOLETE
-#%patch27 -p1
+
 %patch29 -p1
 %patch30 -p0
 %patch31 -p1
@@ -954,15 +952,11 @@ mv %{name}-ports-%{ports_version} ports
 # SHOULD BE OBSOLETE
 #%patch35 -p1
 
-# SHOULD BE OBSOLETE
-#%patch37 -p1
 %patch38 -p1
 
-# SHOULD BE OBSOLETE
-#%patch40 -p1
-# SHOULD BE OBSOLETE
-#%patch41 -p1
-%patch42 -p1
+# THIS APPLIES BUT MAKE SURE ITS NEEDED
+# most likely was fixed by 8fdceb2efda8cf724cfc4444af86b5f135ad3172
+# %%patch42 -p1
 
 # cleanup backups after patching
 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
This page took 0.111565 seconds and 4 git commands to generate.