[arch-commits] Commit in glibc/trunk (5 files)

Allan McRae allan at archlinux.org
Sat Mar 24 09:16:58 UTC 2012


    Date: Saturday, March 24, 2012 @ 05:16:58
  Author: allan
Revision: 154195

upgpkg: glibc 2.15-8

gcc-4.7 toolchain rebuild, install timezone binaries, update vfprintf nargs patch

Added:
  glibc/trunk/glibc-2.15-do-not-install-timezone-files-2.patch
  glibc/trunk/glibc-2.15-do-not-install-timezone-files.patch
Modified:
  glibc/trunk/PKGBUILD
  glibc/trunk/glibc-2.15-vfprintf-nargs.patch
Deleted:
  glibc/trunk/glibc-2.10-dont-build-timezone.patch

--------------------------------------------------+
 PKGBUILD                                         |   36 +++---
 glibc-2.10-dont-build-timezone.patch             |   13 --
 glibc-2.15-do-not-install-timezone-files-2.patch |   20 +++
 glibc-2.15-do-not-install-timezone-files.patch   |  124 +++++++++++++++++++++
 glibc-2.15-vfprintf-nargs.patch                  |   16 +-
 5 files changed, 175 insertions(+), 34 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-03-24 09:14:13 UTC (rev 154194)
+++ PKGBUILD	2012-03-24 09:16:58 UTC (rev 154195)
@@ -6,14 +6,14 @@
 
 pkgname=glibc
 pkgver=2.15
-pkgrel=7
+pkgrel=8
 _glibcdate=20111227
 pkgdesc="GNU C Library"
 arch=('i686' 'x86_64')
 url="http://www.gnu.org/software/libc"
 license=('GPL' 'LGPL')
 groups=('base')
-depends=('linux-api-headers>=3.1.6' 'tzdata')
+depends=('linux-api-headers>=3.3' 'tzdata')
 makedepends=('gcc>=4.6')
 backup=(etc/gai.conf
         etc/locale.gen
@@ -21,7 +21,8 @@
 options=('!strip')
 install=glibc.install
 source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
-        glibc-2.10-dont-build-timezone.patch
+        glibc-2.15-do-not-install-timezone-files.patch
+        glibc-2.15-do-not-install-timezone-files-2.patch
         glibc-__i686.patch
         glibc-2.12.2-ignore-origin-of-privileged-program.patch
         glibc-2.14-libdl-crash.patch
@@ -52,7 +53,8 @@
         locale.gen.txt
         locale-gen)
 md5sums=('6ffdf5832192b92f98bdd125317c0dfc'
-         '4dadb9203b69a3210d53514bb46f41c3'
+         '7ef69c530a15106de93e4de2df2d393e'
+         'b6c619e5cf91829a15ce34dccef676d5'
          '40cd342e21f71f5e49e32622b25acc52'
          'e60e33591c9ec1447e4cddadcbb9cf3a'
          '6970bcfeb3bf88913436d5112d16f588'
@@ -73,7 +75,7 @@
          '7a2998a04ebfcf8bf820540f490ce714'
          '0d77d20fa7fe2f87ad945cb9edb4d91d'
          'bfdefac3d705f41fbf84b1de1dc945af'
-         'dded423e264cdd178500f3e8ad62fe66'
+         '3443e89c1e98089cd6c3e3c23f0c3d85'
          '340deaa582a95ddde86edb624c3bfea0'
          '6bbac50e6ff82187654e6a0a7bd849e7'
          'c483504cf404ed0b44480af627813a97'
@@ -98,9 +100,12 @@
   cd ${srcdir}/glibc
 
   # timezone data is in separate package (tzdata)
-  patch -p1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+  # http://sourceware.org/git/?p=glibc.git;a=commit;h=482ff4da
+  patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files.patch
+  # http://sourceware.org/git/?p=glibc.git;a=commit;h=a458e7fe
+  patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files-2.patch
 
-  # undefine __i686 for gcc <= 4.6
+  # undefine __i686
   # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
   # fix in http://sourceware.org/git/?p=glibc.git;a=commit;h=d4a54ac6 requires additional backporting...
   patch -p1 -i ${srcdir}/glibc-__i686.patch
@@ -115,9 +120,9 @@
 
   # re-export RPC interface until libtirpc is ready as a replacement
   # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873  (fedora branch)
-  patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+  patch -p1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
   # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3  (fedora branch)
-  patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+  patch -p1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
 
   # fix res_query assertion
   # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
@@ -125,25 +130,25 @@
 
   # fix up regcomp/regexec
   # http://sourceware.org/git/?p=glibc.git;a=commit;h=2ba92745
-  patch -Np1 -i ${srcdir}/glibc-2.15-regex.patch
+  patch -p1 -i ${srcdir}/glibc-2.15-regex.patch
 
   # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223 
   # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64  (fedora branch)
-  patch -Np1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch
+  patch -p1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch
 
   # revert commit c5a0802a - causes various hangs
   # https://bugzilla.redhat.com/show_bug.cgi?id=769421
   # Note: fedora may have actual fix (not submitted upstream yet...)
   # http://pkgs.fedoraproject.org/gitweb/?p=glibc.git;a=blob_plain;f=glibc-rh552960-2.patch
-  patch -Np1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+  patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
 
   # fix realloc usage in vfscanf
   # http://sourceware.org/git/?p=glibc.git;a=commit;h=20b38e03
-  patch -Np1 -i ${srcdir}/glibc-2.15-scanf.patch
+  patch -p1 -i ${srcdir}/glibc-2.15-scanf.patch
 
   # fix ifunc relocations
   # http://sourceware.org/git/?p=glibc.git;a=commit;h=6ee65ed6
-  patch -Np1 -i ${srcdir}/glibc-2.15-ifunc.patch
+  patch -p1 -i ${srcdir}/glibc-2.15-ifunc.patch
         
   # fix AVX detection
   # http://sourceware.org/git/?p=glibc.git;a=commit;h=afc5ed09
@@ -184,8 +189,7 @@
   patch -p1 -i ${srcdir}/glibc-2.15-feraiseexcept-plt.patch
 
   # vfprintf nargs overflow - CVE-2012-0864
-  # http://sourceware.org/bugzilla/show_bug.cgi?id=13656
-  # http://sourceware.org/ml/libc-alpha/2012-02/msg00328.html
+  # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c1f4834
   patch -p1 -i ${srcdir}/glibc-2.15-vfprintf-nargs.patch
 
   # avoid out ouf bounds read in __libc_res_nquerydomain

Deleted: glibc-2.10-dont-build-timezone.patch
===================================================================
--- glibc-2.10-dont-build-timezone.patch	2012-03-24 09:14:13 UTC (rev 154194)
+++ glibc-2.10-dont-build-timezone.patch	2012-03-24 09:16:58 UTC (rev 154195)
@@ -1,13 +0,0 @@
-timezone data has been split into the package sys-libs/timezone-data
-
---- glibc-2.4/Makeconfig
-+++ glibc-2.4/Makeconfig
-@@ -931,7 +931,7 @@
- 	      stdlib stdio-common libio malloc string wcsmbs time dirent    \
- 	      grp pwd posix io termios resource misc socket sysvipc gmon    \
- 	      gnulib iconv iconvdata wctype manual shadow gshadow po argp   \
--	      crypt nss localedata timezone rt conform debug		    \
-+	      crypt nss localedata rt conform debug		    \
- 	      $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
- 
- ifndef avoid-generated

Added: glibc-2.15-do-not-install-timezone-files-2.patch
===================================================================
--- glibc-2.15-do-not-install-timezone-files-2.patch	                        (rev 0)
+++ glibc-2.15-do-not-install-timezone-files-2.patch	2012-03-24 09:16:58 UTC (rev 154195)
@@ -0,0 +1,20 @@
+diff --git a/timezone/Makefile b/timezone/Makefile
+index 00bfba6..9e55a6a 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -45,7 +45,6 @@ include ../Makeconfig	# Get objpfx defined so we can use it below.
+ CPPFLAGS-zic = -DNOT_IN_libc
+ 
+ ifeq ($(have-ksh),yes)
+-install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+ install-bin-script = tzselect
+ generated += tzselect
+ endif
+@@ -111,7 +110,3 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+ 	    -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
+ 	chmod 555 $@.new
+ 	mv -f $@.new $@
+-
+-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): \
+-    $(inst_zonedir)/%: % $(+force)
+-	$(do-install)

Added: glibc-2.15-do-not-install-timezone-files.patch
===================================================================
--- glibc-2.15-do-not-install-timezone-files.patch	                        (rev 0)
+++ glibc-2.15-do-not-install-timezone-files.patch	2012-03-24 09:16:58 UTC (rev 154195)
@@ -0,0 +1,124 @@
+diff --git a/timezone/Makefile b/timezone/Makefile
+index e8fb716..d5ea538 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1998,1999,2000,2002,2005,2007 Free Software Foundation, Inc.
++# Copyright (C) 1998-2000,2002,2005,2007,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
+@@ -49,33 +49,6 @@ include ../Makeconfig	# Get objpfx defined so we can use it below.
+ 
+ CPPFLAGS-zic = -DNOT_IN_libc
+ 
+-# z.* use this variable.
+-define nl
+-
+-
+-endef
+-ifndef avoid-generated
+-ifndef inhibit_timezone_rules
+--include $(addprefix $(objpfx)z.,$(tzfiles))
+-endif
+-endif
+-
+-# Make these absolute file names.
+-installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \
+-					$(addprefix $(inst_zonedir)/, \
+-						    $(localtime-file)))
+-installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \
+-					 $(addprefix $(inst_zonedir)/, \
+-						     $(posixrules-file)))
+-
+-ifeq ($(cross-compiling),no)
+-# Don't try to install the zoneinfo files since we can't run zic.
+-install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \
+-					      $(zonenames:%=posix/%) \
+-					      $(zonenames:%=right/%)) \
+-		 $(installed-localtime-file) $(installed-posixrules-file)
+-endif
+-
+ ifeq ($(have-ksh),yes)
+ install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+ install-bin-script = tzselect
+@@ -85,79 +58,6 @@ endif
+ include ../Rules
+ 
+ 
+-$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
+-# Kludge alert: we use an implicit rule (in what we are generating here)
+-# because that is the only way to tell Make that the one command builds all
+-# the files.
+-# The extra kludge for the $(tzlinks) files is necessary since running zic
+-# this file requires all other files to exist.  Blech!
+-	$(make-target-directory)
+-	(echo 'define $*-zones'						    ;\
+-	 $(AWK) '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\
+-	 echo 'endef'							    ;\
+-	 echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))'		    ;\
+-	 echo 'ifdef $*-zones'						    ;\
+-	 if test x$(findstring $*, $(tzlinks)) != x; then		     \
+-	   echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
+-	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\
+-	   echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
+-	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\
+-	   echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \'	    ;\
+-	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
+-	 fi								    ;\
+-	 echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\
+-	 echo '$< $$(objpfx)zic leapseconds yearistype'			    ;\
+-	 echo '	$$(tzcompile)'						    ;\
+-	 echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\
+-	 echo '$< $$(objpfx)zic /dev/null yearistype'			    ;\
+-	 echo '	$$(tzcompile)'						    ;\
+-	 echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\
+-	 echo '$< $$(objpfx)zic $$(leapseconds) yearistype'		    ;\
+-	 echo '	$$(tzcompile)'						    ;\
+-	 echo 'endif'							    ;\
+-	 echo 'zonenames := $$(zonenames) $$($*-zones)'			    ;\
+-	) > $@.new
+-	mv $@.new $@
+-
+-.PHONY: echo-zonenames
+-echo-zonenames:
+-	@echo 'Known zones: $(zonenames)'
+-
+-
+-# We have to use `-d $(inst_zonedir)' to explictly tell zic where to
+-# place the output files although $(zonedir) is compiled in.  But the
+-# user might have set $(install_root) on the command line of `make install'.
+-zic-cmd = $(built-program-cmd) -d $(inst_zonedir)
+-tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \
+-	    -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $<
+-
+-# The source files specify the zone names relative to the -d directory,
+-# so for the posix/ and right/ flavors we need to pass -d $(inst_zonedir)/posix
+-# and the like.  This magic extracts /posix or /right if it's the first
+-# component after $(inst_zonedir) in the target name $@.
+-target-zone-flavor = $(filter /posix /right, \
+-			      /$(firstword $(subst /, , \
+-					  $(patsubst $(inst_zonedir)/%,%,$@))))
+-
+-ifdef localtime
+-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic \
+-			     $(+force)
+-	$(make-target-directory)
+-	if test -r $@; then \
+-	  echo Site timezone NOT reset to Factory.; \
+-	else \
+-	  rm -f $@T; \
+-	  $(SHELL) $(..)scripts/rellns-sh $< $@T; \
+-	  mv -f $@T $@; \
+-	fi
+-endif
+-ifdef posixrules
+-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic \
+-			      $(+force)
+-	$(zic-cmd) -p $(posixrules)
+-endif
+-
+-
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+ 
+ tz-cflags = -DTZDIR='"$(zonedir)"' \

Modified: glibc-2.15-vfprintf-nargs.patch
===================================================================
--- glibc-2.15-vfprintf-nargs.patch	2012-03-24 09:14:13 UTC (rev 154194)
+++ glibc-2.15-vfprintf-nargs.patch	2012-03-24 09:16:58 UTC (rev 154195)
@@ -97,7 +97,7 @@
 +#define TEST_FUNCTION do_test ()
 +#include "../test-skeleton.c"
 diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
-index 863cd5d..022e72b 100644
+index 863cd5d..c802e46 100644
 --- a/stdio-common/vfprintf.c
 +++ b/stdio-common/vfprintf.c
 @@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
@@ -123,22 +123,26 @@
  
      /* Positional parameters refer to arguments directly.  This could
         also determine the maximum number of arguments.  Track the
-@@ -1698,13 +1702,33 @@ do_positional:
+@@ -1698,13 +1702,38 @@ do_positional:
  
      /* Determine the number of arguments the format string consumes.  */
      nargs = MAX (nargs, max_ref_arg);
++    /* Calculate total size needed to represent a single argument across
++       all three argument-related arrays.  */
 +    bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
 +                    + sizeof (*args_type);
 +
 +    /* Check for potential integer overflow.  */
-+    if (nargs > SIZE_MAX / bytes_per_arg)
++    if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0))
 +      {
++         __set_errno (ERANGE);
 +         done = -1;
 +         goto all_done;
 +      }
  
-     /* Allocate memory for the argument descriptions.  */
+-    /* Allocate memory for the argument descriptions.  */
 -    args_type = alloca (nargs * sizeof (int));
++    /* Allocate memory for all three argument arrays.  */
 +    if (__libc_use_alloca (nargs * bytes_per_arg))
 +        args_value = alloca (nargs * bytes_per_arg);
 +    else
@@ -151,6 +155,8 @@
 +          }
 +      }
 +
++    /* Set up the remaining two arrays to each point past the end of the
++       prior array, since space for all three has been allocated now.  */
 +    args_size = &args_value[nargs].pa_int;
 +    args_type = &args_size[nargs];
      memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
@@ -161,7 +167,7 @@
  
      /* XXX Could do sanity check here: If any element in ARGS_TYPE is
         still zero after this loop, format is invalid.  For now we
-@@ -1973,8 +1997,8 @@ do_positional:
+@@ -1973,8 +2002,8 @@ do_positional:
    }
  
  all_done:




More information about the arch-commits mailing list