diff --git a/.gitignore b/.gitignore index c6294e8..fe68b6d 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ glibc-2.14-394-g8f3b1ff /glibc-2.15.90-116a106a-fedora.tar.gz /glibc-2.15.90-116a106a.tar.gz /glibc-ports-2.15.90-a20c2b3c.tar.gz +/glibc-2.15.90-0479b30.tar.gz +/glibc-2.15.90-0479b30-fedora.tar.gz diff --git a/glibc-fedora.patch b/glibc-fedora.patch index 2fac1cd..7b58d3b 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -685,14 +685,6 @@ diff -Nrup a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h diff -Nrup a/include/link.h b/include/link.h --- a/include/link.h 2012-06-05 07:42:49.000000000 -0600 +++ b/include/link.h 2012-06-07 12:15:21.581319556 -0600 -@@ -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 @@ -289,7 +289,7 @@ struct link_map #endif #ifndef FORCED_DYNAMIC_TLS_OFFSET diff --git a/glibc-sw13579.patch b/glibc-sw13579.patch deleted file mode 100644 index f4aa905..0000000 --- a/glibc-sw13579.patch +++ /dev/null @@ -1,114 +0,0 @@ -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 diff --git a/glibc.spec b/glibc.spec index 647a8d6..30c1244 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,4 +1,4 @@ -%define glibcsrcdir glibc-2.15.90-116a106a +%define glibcsrcdir glibc-2.15.90-0479b30 %define glibcversion 2.15.90 %define glibcportsdir glibc-ports-2.15.90-a20c2b3c ### glibc.spec.in follows: @@ -28,7 +28,7 @@ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 15%{?dist} +Release: 16%{?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 @@ -68,7 +68,22 @@ Patch0001: %{name}-stap.patch # Reverting an upstream patch. I don't think this has been discussed # upstream yet. -Patch0005: %{name}-rh769421.patch +Patch0002: %{name}-rh769421.patch + +# Not likely to be accepted upstream +Patch0003: %{name}-rh787201.patch + +# Not necessary to send upstream, fedora specific +Patch0004: %{name}-rh688948.patch + +# Build info files in the source tree, then move to the build +# tree so that they're identical for multilib builds +Patch0005: %{name}-rh825061.patch + +# Horrible hack, never to be upstreamed. Can go away once the world +# has been rebuilt to use the new ld.so path. +Patch0006: %{name}-arm-hardfloat-3.patch + # stap, needs to be sent upstream Patch0007: %{name}-rh179072.patch @@ -80,27 +95,13 @@ Patch0008: %{name}-rh697421.patch Patch0009: %{name}-rh740682.patch # Needs to be sent upstream -Patch0011: %{name}-rh657588.patch - -# Not likely to be accepted upstream -Patch0012: %{name}-rh787201.patch - -# Not necessary to send upstream, fedora specific -Patch0016: %{name}-rh688948.patch +Patch0010: %{name}-rh657588.patch # Needs to be sent upstream -Patch0019: %{name}-rh564528.patch +Patch0011: %{name}-rh564528.patch # stap, needs to be sent upstream -Patch0027: %{name}-stap-libm.patch - -# Build info files in the source tree, then move to the build -# tree so that they're identical for multilib builds -Patch0032: %{name}-rh825061.patch - -# Horrible hack, never to be upstreamed. Can go away once the world -# has been rebuilt to use the new ld.so path. -Patch0035: %{name}-arm-hardfloat-3.patch +Patch0012: %{name}-stap-libm.patch # # Patches from upstream @@ -113,19 +114,16 @@ Patch0035: %{name}-arm-hardfloat-3.patch # Obviously we're not there right now, but that's the goal # -# Upstream BZ 13579 -Patch2002: %{name}-sw13579.patch - -Patch2003: %{name}-rh757881.patch +Patch2013: %{name}-rh757881.patch # Upstream BZ 13013 -Patch2004: %{name}-rh730856.patch +Patch2014: %{name}-rh730856.patch -Patch2013: %{name}-rh741105.patch -Patch2014: %{name}-rh770869.patch -Patch2015: %{name}-rh691912.patch +Patch2015: %{name}-rh741105.patch +Patch2016: %{name}-rh770869.patch Patch2017: %{name}-rh770439.patch Patch2018: %{name}-rh789209.patch +Patch2019: %{name}-rh691912.patch # Upstream BZ 13604 Patch2020: %{name}-rh790292.patch @@ -148,6 +146,9 @@ Patch2025: %{name}-rh789238.patch #Upstream BZ 13818 Patch2026: %{name}-rh800224.patch +# Upstream BZ 14247 +Patch2027: %{name}-rh827510.patch + Patch2028: %{name}-rh803286.patch @@ -161,13 +162,10 @@ Patch2030: %{name}-rh788989-2.patch Patch2031: %{name}-rh804630.patch # Upstream BZ 14185 -Patch2033: %{name}-rh819430.patch +Patch2032: %{name}-rh819430.patch # See http://sourceware.org/ml/libc-alpha/2012-06/msg00074.html -Patch2034: %{name}-rh767693-2.patch - -# Upstream BZ 14247 -Patch2036: %{name}-rh827510.patch +Patch2033: %{name}-rh767693-2.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: glibc-profile < 2.4 @@ -392,22 +390,24 @@ rm -rf %{glibcportsdir} %patch0000 -E -p1 %patch0001 -E -p1 -%patch2002 -p1 -%patch2003 -p1 -%patch2004 -p1 +%patch0002 -p1 +%patch0003 -p1 +%patch0004 -p1 %patch0005 -p1 +%patch0006 -p1 %patch0007 -p1 %patch0008 -p1 %patch0009 -p1 +%patch0010 -p1 %patch0011 -p1 %patch0012 -p1 %patch2013 -p1 %patch2014 -p1 %patch2015 -p1 -%patch0016 -p1 +%patch2016 -p1 %patch2017 -p1 %patch2018 -p1 -%patch0019 -p1 +%patch2019 -p1 %patch2020 -p1 %patch2021 -p1 %patch2022 -p1 @@ -415,16 +415,13 @@ rm -rf %{glibcportsdir} %patch2024 -p1 %patch2025 -p1 %patch2026 -p1 -%patch0027 -p1 +%patch2027 -p1 %patch2028 -p1 %patch2029 -p1 %patch2030 -p1 %patch2031 -p1 -%patch0032 -p1 +%patch2032 -p1 %patch2033 -p1 -%patch2034 -p1 -%patch0035 -p1 -%patch2036 -p1 # On powerpc32, hp timing is only available in power4/power6 # libs, not in base, so pre-power4 dynamic linker is incompatible @@ -1307,6 +1304,9 @@ rm -f *.filelist* %endif %changelog +* Fri Jun 21 2012 Jeff Law - 2.15.90-16 + - Resync with upstream sources, drop obsolete patch. + * Thu Jun 21 2012 Jeff Law - 2.15.90-15 - Resync with upstream sources (#834447). - Fix use-after-free in dcigettext.c (#816647). diff --git a/sources b/sources index 7e42a78..8c7353f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -281f4fd07d6f28c3463ceb3178bff664 glibc-2.15.90-116a106a-fedora.tar.gz -4057fc6c44b80ac29a709d839ddb9b89 glibc-2.15.90-116a106a.tar.gz +2b3b69a18c8b197f075484bf1b113962 glibc-2.15.90-0479b30.tar.gz +ce8b4d2ac6ef48454997b974380db5cb glibc-2.15.90-0479b30-fedora.tar.gz f29d9ebfdc591ebfbfbb14e24855b9c0 glibc-ports-2.15.90-a20c2b3c.tar.gz