Separate patch list into not likely to upstream, upstream, pending

upstream.  Remove unnecessary ia64 patch. No functional changes.
This commit is contained in:
Jeff Law 2012-04-05 15:59:29 -06:00
parent 073b690e45
commit 92f265ff30
4 changed files with 430 additions and 482 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,92 +0,0 @@
2004-05-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/configure.in: Use */lib64 even for ia64.
* sysdeps/unix/sysv/linux/configure: Rebuilt.
* sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
* sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Change /lib64/ld*
into /lib/ld*. Add LD_LIBRARY_VERSION.
* sysdeps/unix/sysv/linux/ia64/ldconfig.h
(SYSDEP_KNOWN_INTERPRETER_NAMES): Add /lib64/ld-linux-ia64.so.2.
* sysdeps/unix/sysv/linux/ia64/dl-cache.h: Include sparc-linux
dl-cache.h instead of generic dl-cache.h.
--- libc/sysdeps/unix/sysv/linux/configure.jj 2003-03-23 03:10:04.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/configure 2004-05-14 15:54:35.669802684 +0200
@@ -225,7 +225,7 @@ case "$prefix" in
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
case $machine in
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
- mips/mips64/n64/* )
+ mips/mips64/n64/* | ia64 )
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
libdir='${exec_prefix}/lib64';
--- libc/sysdeps/unix/sysv/linux/configure.in.jj 2003-03-23 03:10:04.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/configure.in 2004-05-14 15:53:44.355998785 +0200
@@ -158,7 +158,7 @@ case "$prefix" in
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
case $machine in
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
- mips/mips64/n64/* )
+ mips/mips64/n64/* | ia64 )
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
libdir='${exec_prefix}/lib64';
--- libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c.jj 2004-05-14 15:42:09.307560515 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 2003-09-30 00:23:24.000000000 +0200
@@ -0,0 +1,5 @@
+#ifdef IS_IN_ldconfig
+#include <sysdeps/i386/dl-procinfo.c>
+#else
+#include <sysdeps/generic/dl-procinfo.c>
+#endif
--- libc/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed.jj 2002-01-17 07:49:28.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 2004-05-14 16:21:03.041325040 +0200
@@ -1 +1,4 @@
-s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+s_^\(RTLDLIST=\)/lib64/ld\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"/lib/ld\2-ia64\3 /lib/ld\2\3"_
+s_^\(RTLDLIST=\)\([^"][^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_
--- libc/sysdeps/unix/sysv/linux/ia64/ldconfig.h.jj 2001-07-06 06:56:17.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/ldconfig.h 2004-05-14 15:45:40.103783087 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2004 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
@@ -19,7 +19,8 @@
#include <sysdeps/generic/ldconfig.h>
#define SYSDEP_KNOWN_INTERPRETER_NAMES \
- { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 },
+ { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \
+ { "/lib64/ld-linux-ia64.so.2", FLAG_ELF_LIBC6 },
#define SYSDEP_KNOWN_LIBRARY_NAMES \
{ "libc.so.6", FLAG_ELF_LIBC6 }, \
{ "libm.so.6", FLAG_ELF_LIBC6 },
--- libc/sysdeps/unix/sysv/linux/ia64/dl-cache.h.jj 2001-07-06 06:56:17.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/dl-cache.h 2004-05-14 15:41:11.658891907 +0200
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2004 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,4 +22,4 @@
#define _dl_cache_check_flags(flags) \
((flags) == _DL_CACHE_DEFAULT_ID)
-#include_next <dl-cache.h>
+#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>
--- libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h.jj 2004-05-14 15:42:13.018895395 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 2003-07-23 00:06:23.000000000 +0200
@@ -0,0 +1,5 @@
+#ifdef IS_IN_ldconfig
+#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
+#else
+#include <sysdeps/generic/dl-procinfo.h>
+#endif

114
glibc-sw13579.patch Normal file
View File

@ -0,0 +1,114 @@
diff -Nrup a/elf/dl-close.c b/elf/dl-close.c
--- a/elf/dl-close.c 2012-01-01 05:16:32.000000000 -0700
+++ b/elf/dl-close.c 2012-01-01 20:41:26.638439843 -0700
@@ -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 -Nrup a/elf/dl-deps.c b/elf/dl-deps.c
--- a/elf/dl-deps.c 2012-01-01 05:16:32.000000000 -0700
+++ b/elf/dl-deps.c 2012-01-01 20:41:26.638439843 -0700
@@ -489,6 +489,7 @@ _dl_map_object_deps (struct link_map *ma
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. */
@@ -689,6 +690,7 @@ Filters not supported with LD_TRACE_PREL
l_initfini[nlist] = NULL;
atomic_write_barrier ();
map->l_initfini = l_initfini;
+ map->l_free_initfini = 1;
if (l_reldeps != NULL)
{
atomic_write_barrier ();
@@ -697,7 +699,7 @@ Filters not supported with LD_TRACE_PREL
_dl_scope_free (old_l_reldeps);
}
if (old_l_initfini != NULL)
- map->l_orig_initfini = old_l_initfini;
+ _dl_scope_free (old_l_initfini);
if (errno_reason)
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
diff -Nrup a/elf/dl-libc.c b/elf/dl-libc.c
--- a/elf/dl-libc.c 2012-01-01 05:16:32.000000000 -0700
+++ b/elf/dl-libc.c 2012-01-01 20:41:26.639439843 -0700
@@ -270,13 +270,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;
@@ -284,6 +284,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 -Nrup a/elf/rtld.c b/elf/rtld.c
--- a/elf/rtld.c 2012-01-01 05:16:32.000000000 -0700
+++ b/elf/rtld.c 2012-01-01 20:41:26.643439841 -0700
@@ -2276,6 +2274,7 @@ ERROR: ld.so: object '%s' cannot be load
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 -Nrup a/include/link.h b/include/link.h
--- a/include/link.h 2012-01-01 05:16:32.000000000 -0700
+++ b/include/link.h 2012-01-01 20:41:26.646439841 -0700
@@ -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

View File

@ -40,97 +40,147 @@ URL: http://www.gnu.org/software/glibc/
Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.gz
Source1: %{?glibc_release_url}%{glibcportsdir}.tar.gz
Source2: %{glibcsrcdir}-fedora.tar.gz
Patch0: %{name}-fedora.patch
Patch1: %{name}-stap.patch
Patch2: %{name}-ia64-lib64.patch
# Uli wants to see this undergo more analyis (what happens when thread B calls into malloc when
# thread A has unlocked on the error path
# There's an alternate approach using mmap after detecting an error that needs discussion
Patch3: %{name}-rh757881.patch
# From upstream.
Patch4: %{name}-rh740506.patch
# Aurelien submitted upstream, Uli has largely ignored
Patch5: %{name}-rh730856.patch
# Reverting an upstream patch. I don't think this has been discussed upstream yet.
# Caused a variety of problems for Fedora & Debian
Patch6: %{name}-rh769421.patch
Patch7: %{name}-rh729661.patch
Patch8: %{name}-rh446078.patch
Patch9: %{name}-rh454629.patch
Patch10: %{name}-rh784402.patch
Patch11: %{name}-rh622499.patch
# 0000-0999 for patches which are unlikely to ever go upstream or which
# have not been analyzed to see if they ought to go upstream yet.
#
# 1000-2000 for patches that are already upstream.
#
# 2000-3000 for patches that are awaiting upstream approval
#
# Yes, I realize this means some gratutious changes as patches to from
# one bucket to another, but I find this scheme makes it easier to track
# the upstream divergence and patches needing approval.
#
# Note that we can still apply the patches in any order we see fit, so
# the changes from one bucket to another won't necessarily result in needing
# to twiddle the patch because of dependencies on prior patches and the like.
#
# Patches that are highly unlikely to ever be accepated upstream.
#
# Still needs to be broken down into individual patches
Patch0000: %{name}-fedora.patch
# Systemtap and thus won't likely be accepted upstream
Patch0001: %{name}-stap.patch
# Reverting an upstream patch. I don't think this has been discussed
# upstream yet.
Patch0006: %{name}-rh769421.patch
# Depends on systemtap infrastructure, so can't go upstream
Patch12: %{name}-rh179072.patch
Patch13: %{name}-rh697421.patch
Patch14: %{name}-rh740682.patch
Patch15: %{name}-sw13618.patch
# Fix bogus sorting code which was copied from dl-deps.
Patch16: %{name}-sw13618-2.patch
Patch17: %{name}-rh783979.patch
# Needs to go upstream
Patch18: %{name}-rh657588.patch
Patch19: %{name}-rh787201.patch
# Sent upstream, awaiting feedback
Patch20: %{name}-rh741105.patch
# Sent upstream, awaiting feedback
Patch21: %{name}-rh770869.patch
# Sent upstream, awaiting feedback
Patch22: %{name}-rh691912.patch
# Not necessary to send upstream
Patch23: %{name}-rh688948.patch
# Rakesh & Pravin will send upstream
Patch24: %{name}-rh770439.patch
# Sent upstream
Patch25: %{name}-rh789209.patch
# Was acked in the upstream BZ, but patch never got installed
Patch26: %{name}-rh624296.patch
Patch0012: %{name}-rh179072.patch
# Needs to be sent upstream
Patch27: %{name}-rh564528.patch
# Submitted upstream BZ 13604
Patch28: %{name}-rh790292.patch
# Submitted upstream BZ 13603
Patch29: %{name}-rh790298.patch
# Submitted upstream BZ 13698
Patch30: %{name}-rh791161.patch
# Submitted upstream BZ 12377
Patch31 : %{name}-rh697149.patch
# Submitted upstream BZ 9954
Patch32 : %{name}-rh739743.patch
# Submitted upstream, BZ13939
Patch33 : %{name}-rh789238.patch
# From upstream
Patch34 : %{name}-rh794797.patch
# From upstream
Patch35 : %{name}-rh788989.patch
# From upstream (sans comment which was added during review)
Patch36 : %{name}-rh795498.patch
# From upstream
Patch37 : %{name}-rh760935.patch
# From upstream
Patch38 : %{name}-rh798471.patch
# From upstream
Patch39 : %{name}-rh758888.patch
# Submitted upstream BZ 13818
Patch40 : %{name}-rh800224.patch
# From upstream
Patch41 : %{name}-rh794797-2.patch
# From upstream
Patch42 : %{name}-rh801650-1.patch
Patch43 : %{name}-rh801650-2.patch
Patch0013: %{name}-rh697421.patch
# Needs to be sent upstream
Patch0014: %{name}-rh740682.patch
# Needs to be sent upstream
Patch0018: %{name}-rh657588.patch
# Not likely to be accepted upstream
Patch0019: %{name}-rh787201.patch
# Not necessary to send upstream, fedora specific
Patch0023: %{name}-rh688948.patch
# Needs to be sent upstream
Patch0027: %{name}-rh564528.patch
# stap and thus will never be accepted upstream
Patch44 : %{name}-stap-libm.patch
# Waiting on upstream
Patch45 : %{name}-rh803286.patch
# Sent upstream, waiting on review
Patch46 : %{name}-rh806403.patch
# Submitted upstream, BZ 13594
Patch47 : %{name}-rh806070.patch
# Submitted upstream
Patch48 : %{name}-rh804792.patch
# Submitted upstream (BZ 13939)
Patch49 : %{name}-rh789238-2.patch
# Submitted upstream
Patch50 : %{name}-rh682500.patch
Patch0044: %{name}-stap-libm.patch
#
# Patches from upstream
#
Patch1004: %{name}-rh740506.patch
Patch1010: %{name}-rh784402.patch
Patch1026: %{name}-rh624296.patch
Patch1034: %{name}-rh794797.patch
Patch1035: %{name}-rh788989.patch
Patch1036: %{name}-rh795498.patch
Patch1037: %{name}-rh760935.patch
Patch1038: %{name}-rh798471.patch
Patch1039: %{name}-rh758888.patch
Patch1041: %{name}-rh794797-2.patch
Patch1042: %{name}-rh801650-1.patch
Patch1043: %{name}-rh801650-2.patch
Patch1046: %{name}-rh806403.patch
Patch1048: %{name}-rh804792.patch
#
# Patches submitted, but not yet approved upstream.
# Each should be associated with a BZ.
# Obviously we're not there right now, but that's the goal
#
# Upstream BZ 13579
Patch2002: %{name}-sw13579.patch
Patch2003: %{name}-rh757881.patch
# Upstream BZ 13013
Patch2005: %{name}-rh730856.patch
Patch2007: %{name}-rh729661.patch
# Upstream BZ 13197
Patch2008: %{name}-rh446078.patch
# Upstream BZ 13905
Patch2009: %{name}-rh454629.patch
# Upstream BZ 13948
Patch2011: %{name}-rh622499.patch
# Upstream BZ 13618
Patch2015: %{name}-sw13618.patch
Patch2016: %{name}-sw13618-2.patch
Patch2017: %{name}-rh783979.patch
Patch2020: %{name}-rh741105.patch
Patch2021: %{name}-rh770869.patch
Patch2022: %{name}-rh691912.patch
Patch2024: %{name}-rh770439.patch
Patch2025: %{name}-rh789209.patch
# Upstream BZ 13604
Patch2028: %{name}-rh790292.patch
# Upstream BZ 13603
Patch2029: %{name}-rh790298.patch
# Upstream BZ 13698
Patch2030: %{name}-rh791161.patch
# Upstream BZ 12377
Patch2031: %{name}-rh697149.patch
# Upstream BZ 9954
Patch2032: %{name}-rh739743.patch
# Upstream BZ 13939
Patch2033: %{name}-rh789238.patch
#Upstream BZ 13818
Patch2040: %{name}-rh800224.patch
Patch2045: %{name}-rh803286.patch
# Upstream BZ 13594
Patch2047: %{name}-rh806070.patch
# Upstream BZ 13939
Patch2049: %{name}-rh789238-2.patch
# Upstream BZ 13946
Patch2050: %{name}-rh682500.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -345,61 +395,58 @@ package or when debugging this package.
%prep
rm -rf %{glibcportsdir}
%setup -q -n %{glibcsrcdir} -b1 -b2
%patch0 -E -p1
%patch1 -E -p1
%ifarch ia64
%if "%{_lib}" == "lib64"
%patch2 -p1
%endif
%endif
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch0000 -E -p1
%patch0001 -E -p1
%patch2002 -p1
%patch2003 -p1
%patch1004 -p1
%patch2005 -p1
%patch0006 -p1
%patch2007 -p1
%patch2008 -p1
%patch2009 -p1
%patch1010 -p1
%patch2011 -p1
%patch0012 -p1
%patch0013 -p1
%patch0014 -p1
%patch2015 -p1
%patch2016 -p1
%patch2017 -p1
%patch0018 -p1
%patch0019 -p1
%patch2020 -p1
%patch2021 -p1
%patch2022 -p1
%patch0023 -p1
%patch2024 -p1
%patch2025 -p1
%patch1026 -p1
%patch0027 -p1
%patch2028 -p1
%patch2029 -p1
%patch2030 -p1
%patch2031 -p1
%patch2032 -p1
%patch2033 -p1
%patch1034 -p1
%patch1035 -p1
%patch1036 -p1
%patch1037 -p1
%patch1038 -p1
%patch1039 -p1
%patch2040 -p1
%patch1041 -p1
%patch1042 -p1
%patch1043 -p1
%patch0044 -p1
%patch2045 -p1
%patch1046 -p1
%patch2047 -p1
%patch1048 -p1
%patch2049 -p1
%patch2050 -p1
# A lot of programs still misuse memcpy when they have to use
# memmove. The memcpy implementation below is not tolerant at