forked from rpms/glibc
		
	- Resync with upstream sources, drop obsolete patch.
This commit is contained in:
		
							parent
							
								
									5176c4e7b5
								
							
						
					
					
						commit
						dd8ae6f66d
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -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 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
							
								
								
									
										86
									
								
								glibc.spec
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								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 <law@redhat.com> - 2.15.90-16 | ||||
|   - Resync with upstream sources, drop obsolete patch. | ||||
| 
 | ||||
| * Thu Jun 21 2012 Jeff Law <law@redhat.com> - 2.15.90-15 | ||||
|   - Resync with upstream sources (#834447). | ||||
|   - Fix use-after-free in dcigettext.c (#816647). | ||||
|  | ||||
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								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 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user