From f96a2208b6a0ba89c3d824514a3929f08d79f7bf Mon Sep 17 00:00:00 2001 From: root Date: Mon, 26 Mar 2012 00:01:46 +0000 Subject: Mon Mar 26 00:01:45 UTC 2012 --- multilib-testing/lib32-glibc/PKGBUILD | 36 +++--- ...libc-2.15-do-not-install-timezone-files-2.patch | 20 ++++ .../glibc-2.15-do-not-install-timezone-files.patch | 124 +++++++++++++++++++++ .../lib32-glibc/glibc-2.15-vfprintf-nargs.patch | 16 ++- 4 files changed, 175 insertions(+), 21 deletions(-) create mode 100644 multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch create mode 100644 multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch (limited to 'multilib-testing/lib32-glibc') diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD index 72a563645..e6298fdc0 100644 --- a/multilib-testing/lib32-glibc/PKGBUILD +++ b/multilib-testing/lib32-glibc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 66927 2012-03-01 17:16:36Z heftig $ +# $Id: PKGBUILD 68428 2012-03-24 13:21:15Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) # Contributor: Jan de Groot # Contributor: Allan McRae @@ -9,7 +9,7 @@ _pkgbasename=glibc pkgname=lib32-$_pkgbasename pkgver=2.15 -pkgrel=7 +pkgrel=8 _glibcdate=20111227 pkgdesc="GNU C Library for multilib" arch=('x86_64') @@ -19,7 +19,8 @@ depends=("glibc>=$pkgver") makedepends=('gcc-multilib>=4.6') options=('!strip' '!emptydirs') source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${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 @@ -48,7 +49,8 @@ source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${pkgver}_${_glibcda glibc-2.15-nearbyintf-rounding.patch lib32-glibc.conf) md5sums=('6ffdf5832192b92f98bdd125317c0dfc' - '4dadb9203b69a3210d53514bb46f41c3' + '7ef69c530a15106de93e4de2df2d393e' + 'b6c619e5cf91829a15ce34dccef676d5' '40cd342e21f71f5e49e32622b25acc52' 'e60e33591c9ec1447e4cddadcbb9cf3a' '6970bcfeb3bf88913436d5112d16f588' @@ -69,7 +71,7 @@ md5sums=('6ffdf5832192b92f98bdd125317c0dfc' '7a2998a04ebfcf8bf820540f490ce714' '0d77d20fa7fe2f87ad945cb9edb4d91d' 'bfdefac3d705f41fbf84b1de1dc945af' - 'dded423e264cdd178500f3e8ad62fe66' + '3443e89c1e98089cd6c3e3c23f0c3d85' '340deaa582a95ddde86edb624c3bfea0' '6bbac50e6ff82187654e6a0a7bd849e7' 'c483504cf404ed0b44480af627813a97' @@ -81,9 +83,12 @@ build() { 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 @@ -98,9 +103,9 @@ build() { # 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 @@ -108,25 +113,25 @@ build() { # 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 @@ -167,8 +172,7 @@ build() { 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 diff --git a/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch new file mode 100644 index 000000000..d28237f85 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch @@ -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) diff --git a/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch new file mode 100644 index 000000000..e4f29bc1a --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch @@ -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)"' \ diff --git a/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch b/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch index 6a37bde68..f8dde53f5 100644 --- a/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch +++ b/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch @@ -97,7 +97,7 @@ index 0000000..13c66c0 +#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 @@ index 863cd5d..022e72b 100644 /* 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 @@ index 863cd5d..022e72b 100644 + } + } + ++ /* 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 @@ index 863cd5d..022e72b 100644 /* 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: -- cgit v1.2.3-54-g00ecf