diff --git a/cve-2010-3847.patch b/cve-2010-3847.patch deleted file mode 100644 index b3e227e..0000000 --- a/cve-2010-3847.patch +++ /dev/null @@ -1,82 +0,0 @@ -2010-10-18 Andreas Schwab - - * elf/dl-load.c (is_dst): Remove last parameter. - (_dl_dst_count): Ignore $ORIGIN in privileged programs. - (_dl_dst_substitute): Likewise. ---- - elf/dl-load.c | 30 +++++++++++++----------------- - 1 files changed, 13 insertions(+), 17 deletions(-) - -diff --git a/elf/dl-load.c b/elf/dl-load.c -index a7162eb..776f7e4 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -169,8 +169,7 @@ local_strdup (const char *s) - - - static size_t --is_dst (const char *start, const char *name, const char *str, -- int is_path, int secure) -+is_dst (const char *start, const char *name, const char *str, int is_path) - { - size_t len; - bool is_curly = false; -@@ -199,11 +198,6 @@ is_dst (const char *start, const char *name, const char *str, - && (!is_path || name[len] != ':')) - return 0; - -- if (__builtin_expect (secure, 0) -- && ((name[len] != '\0' && (!is_path || name[len] != ':')) -- || (name != start + 1 && (!is_path || name[-2] != ':')))) -- return 0; -- - return len; - } - -@@ -218,13 +212,12 @@ _dl_dst_count (const char *name, int is_path) - { - size_t len; - -- /* $ORIGIN is not expanded for SUID/GUID programs (except if it -- is $ORIGIN alone) and it must always appear first in path. */ -+ /* $ORIGIN is not expanded for SUID/GUID programs. */ - ++name; -- if ((len = is_dst (start, name, "ORIGIN", is_path, -- INTUSE(__libc_enable_secure))) != 0 -- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 -- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) -+ if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0 -+ && !INTUSE(__libc_enable_secure)) -+ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 -+ || (len = is_dst (start, name, "LIB", is_path)) != 0) - ++cnt; - - name = strchr (name + len, '$'); -@@ -256,9 +249,12 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, - size_t len; - - ++name; -- if ((len = is_dst (start, name, "ORIGIN", is_path, -- INTUSE(__libc_enable_secure))) != 0) -+ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) - { -+ /* Ignore this path element in SUID/SGID programs. */ -+ if (INTUSE(__libc_enable_secure)) -+ repl = (const char *) -1; -+ else - #ifndef SHARED - if (l == NULL) - repl = _dl_get_origin (); -@@ -266,9 +262,9 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, - #endif - repl = l->l_origin; - } -- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) -+ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) - repl = GLRO(dl_platform); -- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) -+ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) - repl = DL_DST_LIB; - - if (repl != NULL && repl != (const char *) -1) - diff --git a/cve-2011-0536.patch b/cve-2011-0536.patch deleted file mode 100644 index 2e6703b..0000000 --- a/cve-2011-0536.patch +++ /dev/null @@ -1,186 +0,0 @@ -From 47c3cd7a74e8c089d60d603afce6d9cf661178d6 Mon Sep 17 00:00:00 2001 -From: Ulrich Drepper -Date: Sat, 7 May 2011 11:44:26 -0400 -Subject: [PATCH] Allow $ORIGIN to reference trusted directoreis in SUID binaries. - -2011-05-07 Petr Baudis - Ulrich Drepper - - [BZ #12393] - * elf/dl-load.c (fillin_rpath): Move trusted path check... - (is_trusted_path): ...to here. - (is_norm_trusted_path): Add wrapper for /../ and /./ normalization. - (_dl_dst_substitute): Verify expanded $ORIGIN path elements - using is_norm_trusted_path() in setuid scripts. - -diff --git a/elf/dl-load.c b/elf/dl-load.c -index 00ea465..f2773d5 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -168,6 +168,71 @@ local_strdup (const char *s) - } - - -+static bool -+is_trusted_path (const char *path, size_t len) -+{ -+ /* All trusted directories must be complete names. */ -+ if (path[0] != '/') -+ return false; -+ -+ const char *trun = system_dirs; -+ -+ for (size_t idx = 0; idx < nsystem_dirs_len; ++idx) -+ { -+ if (len == system_dirs_len[idx] && memcmp (trun, path, len) == 0) -+ /* Found it. */ -+ return true; -+ -+ trun += system_dirs_len[idx] + 1; -+ } -+ -+ return false; -+} -+ -+ -+static bool -+is_trusted_path_normalize (const char *path, size_t len) -+{ -+ char *npath = (char *) alloca (len + 2); -+ char *wnp = npath; -+ -+ while (*path != '\0') -+ { -+ if (path[0] == '/') -+ { -+ if (path[1] == '.') -+ { -+ if (path[2] == '.' && (path[3] == '/' || path[3] == '\0')) -+ { -+ while (wnp > npath && *--wnp != '/') -+ ; -+ path += 3; -+ continue; -+ } -+ else if (path[2] == '/' || path[2] == '\0') -+ { -+ path += 2; -+ continue; -+ } -+ } -+ -+ if (wnp > npath && wnp[-1] == '/') -+ { -+ ++path; -+ continue; -+ } -+ } -+ -+ *wnp++ = *path++; -+ } -+ if (wnp > npath && wnp[-1] != '/') -+ *wnp++ = '/'; -+ *wnp = '\0'; -+ -+ return is_trusted_path (npath, wnp - npath); -+} -+ -+ - static size_t - is_dst (const char *start, const char *name, const char *str, - int is_path, int secure) -@@ -240,13 +305,14 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, - int is_path) - { - const char *const start = name; -- char *last_elem, *wp; - - /* Now fill the result path. While copying over the string we keep - track of the start of the last path element. When we come accross - a DST we copy over the value or (if the value is not available) - leave the entire path element out. */ -- last_elem = wp = result; -+ char *wp = result; -+ char *last_elem = result; -+ bool check_for_trusted = false; - - do - { -@@ -265,6 +331,9 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, - else - #endif - repl = l->l_origin; -+ -+ check_for_trusted = (INTUSE(__libc_enable_secure) -+ && l->l_type == lt_executable); - } - else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) - repl = GLRO(dl_platform); -@@ -297,11 +366,29 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, - { - *wp++ = *name++; - if (is_path && *name == ':') -- last_elem = wp; -+ { -+ /* In SUID/SGID programs, after $ORIGIN expansion the -+ normalized path must be rooted in one of the trusted -+ directories. */ -+ if (__builtin_expect (check_for_trusted, false) -+ && is_trusted_path_normalize (last_elem, wp - last_elem)) -+ { -+ wp = last_elem; -+ check_for_trusted = false; -+ } -+ else -+ last_elem = wp; -+ } - } - } - while (*name != '\0'); - -+ /* In SUID/SGID programs, after $ORIGIN expansion the normalized -+ path must be rooted in one of the trusted directories. */ -+ if (__builtin_expect (check_for_trusted, false) -+ && is_trusted_path_normalize (last_elem, wp - last_elem)) -+ wp = last_elem; -+ - *wp = '\0'; - - return result; -@@ -411,33 +498,8 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep, - cp[len++] = '/'; - - /* Make sure we don't use untrusted directories if we run SUID. */ -- if (__builtin_expect (check_trusted, 0)) -- { -- const char *trun = system_dirs; -- size_t idx; -- int unsecure = 1; -- -- /* All trusted directories must be complete names. */ -- if (cp[0] == '/') -- { -- for (idx = 0; idx < nsystem_dirs_len; ++idx) -- { -- if (len == system_dirs_len[idx] -- && memcmp (trun, cp, len) == 0) -- { -- /* Found it. */ -- unsecure = 0; -- break; -- } -- -- trun += system_dirs_len[idx] + 1; -- } -- } -- -- if (unsecure) -- /* Simply drop this directory. */ -- continue; -- } -+ if (__builtin_expect (check_trusted, 0) && !is_trusted_path (cp, len)) -+ continue; - - /* See if this directory is already known. */ - for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next) - diff --git a/cve-2011-1089.patch b/cve-2011-1089.patch deleted file mode 100644 index c7a7c65..0000000 --- a/cve-2011-1089.patch +++ /dev/null @@ -1,24 +0,0 @@ -From e1fb097f447a89aa69a926e45e673a52d86a6c57 Mon Sep 17 00:00:00 2001 -From: Ulrich Drepper -Date: Wed, 11 May 2011 23:37:25 -0400 -Subject: [PATCH] Report write error in addmnt even for cached streams. - - 2011-05-11 Ulrich Drepper - - [BZ #12625] - * misc/mntent_r.c (addmntent): Flush the stream after the output - -diff --git a/misc/mntent_r.c b/misc/mntent_r.c -index 9598528..6959f0e 100644 ---- a/misc/mntent_r.c -+++ b/misc/mntent_r.c -@@ -263,8 +263,8 @@ __addmntent (FILE *stream, const struct mntent *mnt) - mntcopy.mnt_type, - mntcopy.mnt_opts, - mntcopy.mnt_freq, -- mntcopy.mnt_passno) -- < 0 ? 1 : 0); -+ mntcopy.mnt_passno) < 0 -+ || fflush (stream) != 0); - } - weak_alias (__addmntent, addmntent) diff --git a/cve-2011-1659.patch b/cve-2011-1659.patch deleted file mode 100644 index 3bf4d07..0000000 --- a/cve-2011-1659.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8126d90480fa3e0c5c5cd0d02cb1c93174b45485 Mon Sep 17 00:00:00 2001 -From: Ulrich Drepper -Date: Fri, 18 Mar 2011 05:29:20 -0400 -Subject: [PATCH] Check size of pattern in wide character representation in fnmatch. - -2011-03-18 Ulrich Drepper - - * posix/fnmatch.c (fnmatch): Check size of pattern in wide - character representation. - Partly based on a patch by Tomas Hoger . -diff --git a/posix/fnmatch.c b/posix/fnmatch.c -index 0af5ee6..819a6a7 100644 ---- a/posix/fnmatch.c -+++ b/posix/fnmatch.c -@@ -1,4 +1,4 @@ --/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2007,2010 -+/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2007,2010,2011 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - -@@ -375,6 +375,11 @@ fnmatch (pattern, string, flags) - XXX Do we have to set `errno' to something which mbsrtows hasn't - already done? */ - return -1; -+ if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) -+ { -+ __set_errno (ENOMEM); -+ return -2; -+ } - wpattern_malloc = wpattern - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); - assert (mbsinit (&ps)); -@@ -419,6 +424,12 @@ fnmatch (pattern, string, flags) - XXX Do we have to set `errno' to something which mbsrtows hasn't - already done? */ - goto free_return; -+ if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) -+ { -+ free (wpattern_malloc); -+ __set_errno (ENOMEM); -+ return -2; -+ } - - wstring_malloc = wstring - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); - diff --git a/eglibc-2.15-mips-async-unwind.patch b/eglibc-2.15-mips-async-unwind.patch new file mode 100644 index 0000000..e5baba1 --- /dev/null +++ b/eglibc-2.15-mips-async-unwind.patch @@ -0,0 +1,16 @@ +--- eglibc-2.15/ports/sysdeps/mips/Makefile 2012-01-04 17:35:09.000000000 +0100 ++++ eglibc-2.15-mips-async-unwind/ports/sysdeps/mips/Makefile 2012-02-24 15:19:44.915827395 +0100 +@@ -21,11 +21,11 @@ + endif + + ifeq ($(subdir),csu) +-CFLAGS-initfini.s += -fno-unwind-tables ++CFLAGS-initfini.s += -fno-asynchronous-unwind-tables -fno-unwind-tables + endif + + ifeq ($(subdir),nptl) +-CFLAGS-pt-initfini.s += -fno-unwind-tables ++CFLAGS-pt-initfini.s += -fno-asynchronous-unwind-tables -fno-unwind-tables + endif + + ASFLAGS-.os += $(pic-ccflag) diff --git a/eglibc-2.15-mips-no-n32-n64.patch b/eglibc-2.15-mips-no-n32-n64.patch new file mode 100644 index 0000000..c8ae7c3 --- /dev/null +++ b/eglibc-2.15-mips-no-n32-n64.patch @@ -0,0 +1,11 @@ +--- eglibc-2.15/ports/sysdeps/unix/sysv/linux/mips/Makefile 2011-12-22 20:27:39.000000000 +0100 ++++ eglibc-2.15-mips-no-n32-n64/ports/sysdeps/unix/sysv/linux/mips/Makefile 2012-02-24 16:23:23.380420249 +0100 +@@ -7,7 +7,7 @@ + + sysdep_headers += sys/cachectl.h sys/sysmips.h sys/tas.h + +-syscall-list-variants := o32 n32 n64 ++syscall-list-variants := o32 + syscall-list-includes := sgidefs.h + syscall-list-o32-options := -mabi=32 + syscall-list-o32-condition := _MIPS_SIM == _MIPS_SIM_ABI32 diff --git a/glibc-2.14.1-nsswitchconf-location.3.diff b/eglibc-2.15-nsswitchconf-location.3.diff similarity index 59% rename from glibc-2.14.1-nsswitchconf-location.3.diff rename to eglibc-2.15-nsswitchconf-location.3.diff index 8b831d1..c1f997e 100644 --- a/glibc-2.14.1-nsswitchconf-location.3.diff +++ b/eglibc-2.15-nsswitchconf-location.3.diff @@ -1,17 +1,17 @@ -diff -ur glibc-2.14.1+p2/nss/nsswitch.c glibc-2.14.1/nss/nsswitch.c ---- glibc-2.14.1+p2/nss/nsswitch.c 2011-10-07 12:48:55.000000000 +0300 -+++ glibc-2.14.1/nss/nsswitch.c 2011-11-16 17:21:16.000000000 +0200 -@@ -41,6 +41,8 @@ - #include "nsswitch.h" - #include "../nscd/nscd_proto.h" +diff -ru eglibc-2.15/nss/nsswitch.c eglibc-2.15-nsswitch/nss/nsswitch.c +--- eglibc-2.15/nss/nsswitch.c 2011-11-17 22:56:08.000000000 +0100 ++++ eglibc-2.15-nsswitch/nss/nsswitch.c 2012-02-22 10:38:02.004928523 +0100 +@@ -53,6 +53,8 @@ + See ../option-groups.def for the details. */ + #if __OPTION_EGLIBC_NSSWITCH +#include /* __libc_enable_secure */ + /* Prototypes for the local functions. */ static name_database *nss_parse_file (const char *fname) internal_function; static name_database_entry *nss_getline (char *line) internal_function; -@@ -105,8 +107,16 @@ - +@@ -141,8 +143,16 @@ + #if __OPTION_EGLIBC_NSSWITCH /* Are we initialized yet? */ if (service_table == NULL) - /* Read config file. */ @@ -26,6 +26,9 @@ diff -ur glibc-2.14.1+p2/nss/nsswitch.c glibc-2.14.1/nss/nsswitch.c + service_table = nss_parse_file (ext_nss_config_file ? + ext_nss_config_file : _PATH_NSSWITCH_CONF); + } + #endif /* Test whether configuration data is available. */ - if (service_table != NULL) +Only in eglibc-2.15-nsswitch/nss: nsswitch.c~ +Only in eglibc-2.15-nsswitch/nss: nsswitch.c.orig +Only in eglibc-2.15-nsswitch/nss: nsswitch.c.rej diff --git a/eglibc_2.15-0ubuntu2.diff.gz b/eglibc_2.15-0ubuntu2.diff.gz new file mode 100644 index 0000000..0dfddbd Binary files /dev/null and b/eglibc_2.15-0ubuntu2.diff.gz differ diff --git a/glibc-2.13.tar.bz2 b/eglibc_2.15.orig.tar.gz similarity index 53% rename from glibc-2.13.tar.bz2 rename to eglibc_2.15.orig.tar.gz index 6b8ed0c..dde1cdf 100644 Binary files a/glibc-2.13.tar.bz2 and b/eglibc_2.15.orig.tar.gz differ diff --git a/glibc-2.13-fedora.tar.bz2 b/glibc-2.13-fedora.tar.bz2 deleted file mode 100644 index 750e4e3..0000000 Binary files a/glibc-2.13-fedora.tar.bz2 and /dev/null differ diff --git a/glibc-2.13-locale.patch b/glibc-2.13-locale.patch deleted file mode 100644 index 61e7d3b..0000000 --- a/glibc-2.13-locale.patch +++ /dev/null @@ -1,344 +0,0 @@ ---- glibc-2.13/localedata/SUPPORTED.orig 2011-05-23 16:37:19.189331750 +0800 -+++ glibc-2.13/localedata/SUPPORTED 2011-05-23 16:54:11.832044735 +0800 -@@ -1,88 +1,8 @@ - # This file names the currently supported and somewhat tested locales. - # If you have any additions please file a glibc bug report. - SUPPORTED-LOCALES=\ --aa_DJ.UTF-8/UTF-8 \ --aa_DJ/ISO-8859-1 \ --aa_ER/UTF-8 \ --aa_ER@saaho/UTF-8 \ --aa_ET/UTF-8 \ --af_ZA.UTF-8/UTF-8 \ --af_ZA/ISO-8859-1 \ --am_ET/UTF-8 \ --an_ES.UTF-8/UTF-8 \ --an_ES/ISO-8859-15 \ --ar_AE.UTF-8/UTF-8 \ --ar_AE/ISO-8859-6 \ --ar_BH.UTF-8/UTF-8 \ --ar_BH/ISO-8859-6 \ --ar_DZ.UTF-8/UTF-8 \ --ar_DZ/ISO-8859-6 \ --ar_EG.UTF-8/UTF-8 \ --ar_EG/ISO-8859-6 \ --ar_IN/UTF-8 \ --ar_IQ.UTF-8/UTF-8 \ --ar_IQ/ISO-8859-6 \ --ar_JO.UTF-8/UTF-8 \ --ar_JO/ISO-8859-6 \ --ar_KW.UTF-8/UTF-8 \ --ar_KW/ISO-8859-6 \ --ar_LB.UTF-8/UTF-8 \ --ar_LB/ISO-8859-6 \ --ar_LY.UTF-8/UTF-8 \ --ar_LY/ISO-8859-6 \ --ar_MA.UTF-8/UTF-8 \ --ar_MA/ISO-8859-6 \ --ar_OM.UTF-8/UTF-8 \ --ar_OM/ISO-8859-6 \ --ar_QA.UTF-8/UTF-8 \ --ar_QA/ISO-8859-6 \ --ar_SA.UTF-8/UTF-8 \ --ar_SA/ISO-8859-6 \ --ar_SD.UTF-8/UTF-8 \ --ar_SD/ISO-8859-6 \ --ar_SY.UTF-8/UTF-8 \ --ar_SY/ISO-8859-6 \ --ar_TN.UTF-8/UTF-8 \ --ar_TN/ISO-8859-6 \ --ar_YE.UTF-8/UTF-8 \ --ar_YE/ISO-8859-6 \ --az_AZ/UTF-8 \ --as_IN/UTF-8 \ --ast_ES.UTF-8/UTF-8 \ --ast_ES/ISO-8859-15 \ --be_BY.UTF-8/UTF-8 \ --be_BY/CP1251 \ --be_BY@latin/UTF-8 \ --ber_DZ/UTF-8 \ --ber_MA/UTF-8 \ --bg_BG.UTF-8/UTF-8 \ --bg_BG/CP1251 \ --bn_BD/UTF-8 \ --bn_IN/UTF-8 \ --bo_CN/UTF-8 \ --bo_IN/UTF-8 \ --br_FR.UTF-8/UTF-8 \ --br_FR/ISO-8859-1 \ --br_FR@euro/ISO-8859-15 \ --bs_BA.UTF-8/UTF-8 \ --bs_BA/ISO-8859-2 \ --byn_ER/UTF-8 \ --ca_AD.UTF-8/UTF-8 \ --ca_AD/ISO-8859-15 \ --ca_ES.UTF-8/UTF-8 \ --ca_ES/ISO-8859-1 \ --ca_ES@euro/ISO-8859-15 \ --ca_FR.UTF-8/UTF-8 \ --ca_FR/ISO-8859-15 \ --ca_IT.UTF-8/UTF-8 \ --ca_IT/ISO-8859-15 \ --crh_UA/UTF-8 \ - cs_CZ.UTF-8/UTF-8 \ - cs_CZ/ISO-8859-2 \ --csb_PL/UTF-8 \ --cv_RU/UTF-8 \ --cy_GB.UTF-8/UTF-8 \ --cy_GB/ISO-8859-14 \ - da_DK.UTF-8/UTF-8 \ - da_DK/ISO-8859-1 \ - da_DK.ISO-8859-15/ISO-8859-15 \ -@@ -100,8 +20,6 @@ - de_LU.UTF-8/UTF-8 \ - de_LU/ISO-8859-1 \ - de_LU@euro/ISO-8859-15 \ --dv_MV/UTF-8 \ --dz_BT/UTF-8 \ - el_GR.UTF-8/UTF-8 \ - el_GR/ISO-8859-7 \ - el_CY.UTF-8/UTF-8 \ -@@ -179,19 +97,10 @@ - es_UY/ISO-8859-1 \ - es_VE.UTF-8/UTF-8 \ - es_VE/ISO-8859-1 \ --et_EE.UTF-8/UTF-8 \ --et_EE/ISO-8859-1 \ --et_EE.ISO-8859-15/ISO-8859-15 \ --eu_ES.UTF-8/UTF-8 \ --eu_ES/ISO-8859-1 \ --eu_ES@euro/ISO-8859-15 \ --fa_IR/UTF-8 \ - fi_FI.UTF-8/UTF-8 \ - fi_FI/ISO-8859-1 \ - fi_FI@euro/ISO-8859-15 \ - fil_PH/UTF-8 \ --fo_FO.UTF-8/UTF-8 \ --fo_FO/ISO-8859-1 \ - fr_BE.UTF-8/UTF-8 \ - fr_BE/ISO-8859-1 \ - fr_BE@euro/ISO-8859-15 \ -@@ -205,102 +114,17 @@ - fr_LU.UTF-8/UTF-8 \ - fr_LU/ISO-8859-1 \ - fr_LU@euro/ISO-8859-15 \ --fur_IT/UTF-8 \ --fy_NL/UTF-8 \ --fy_DE/UTF-8 \ --ga_IE.UTF-8/UTF-8 \ --ga_IE/ISO-8859-1 \ --ga_IE@euro/ISO-8859-15 \ --gd_GB.UTF-8/UTF-8 \ --gd_GB/ISO-8859-15 \ --gez_ER/UTF-8 \ --gez_ER@abegede/UTF-8 \ --gez_ET/UTF-8 \ --gez_ET@abegede/UTF-8 \ --gl_ES.UTF-8/UTF-8 \ --gl_ES/ISO-8859-1 \ --gl_ES@euro/ISO-8859-15 \ --gu_IN/UTF-8 \ --gv_GB.UTF-8/UTF-8 \ --gv_GB/ISO-8859-1 \ --ha_NG/UTF-8 \ --he_IL.UTF-8/UTF-8 \ --he_IL/ISO-8859-8 \ --hi_IN/UTF-8 \ --hne_IN/UTF-8 \ --hr_HR.UTF-8/UTF-8 \ --hr_HR/ISO-8859-2 \ --hsb_DE/ISO-8859-2 \ --hsb_DE.UTF-8/UTF-8 \ --ht_HT/UTF-8 \ - hu_HU.UTF-8/UTF-8 \ - hu_HU/ISO-8859-2 \ --hy_AM/UTF-8 \ --hy_AM.ARMSCII-8/ARMSCII-8 \ --id_ID.UTF-8/UTF-8 \ --id_ID/ISO-8859-1 \ --ig_NG/UTF-8 \ --ik_CA/UTF-8 \ --is_IS.UTF-8/UTF-8 \ --is_IS/ISO-8859-1 \ - it_CH.UTF-8/UTF-8 \ - it_CH/ISO-8859-1 \ - it_IT.UTF-8/UTF-8 \ - it_IT/ISO-8859-1 \ - it_IT@euro/ISO-8859-15 \ --iu_CA/UTF-8 \ --iw_IL.UTF-8/UTF-8 \ --iw_IL/ISO-8859-8 \ - ja_JP.EUC-JP/EUC-JP \ - ja_JP.UTF-8/UTF-8 \ --ka_GE.UTF-8/UTF-8 \ --ka_GE/GEORGIAN-PS \ --kk_KZ.UTF-8/UTF-8 \ --kk_KZ/PT154 \ --kl_GL.UTF-8/UTF-8 \ --kl_GL/ISO-8859-1 \ --km_KH/UTF-8 \ --kn_IN/UTF-8 \ - ko_KR.EUC-KR/EUC-KR \ - ko_KR.UTF-8/UTF-8 \ --kok_IN/UTF-8 \ --ks_IN/UTF-8 \ --ks_IN@devanagari/UTF-8 \ --ku_TR.UTF-8/UTF-8 \ --ku_TR/ISO-8859-9 \ --kw_GB.UTF-8/UTF-8 \ --kw_GB/ISO-8859-1 \ --ky_KG/UTF-8 \ --lg_UG.UTF-8/UTF-8 \ --lg_UG/ISO-8859-10 \ --li_BE/UTF-8 \ --li_NL/UTF-8 \ --lo_LA/UTF-8 \ --lt_LT.UTF-8/UTF-8 \ --lt_LT/ISO-8859-13 \ --lv_LV.UTF-8/UTF-8 \ --lv_LV/ISO-8859-13 \ --mai_IN/UTF-8 \ --mg_MG.UTF-8/UTF-8 \ --mg_MG/ISO-8859-15 \ --mi_NZ.UTF-8/UTF-8 \ --mi_NZ/ISO-8859-13 \ --mk_MK.UTF-8/UTF-8 \ --mk_MK/ISO-8859-5 \ --ml_IN/UTF-8 \ --mn_MN/UTF-8 \ --mr_IN/UTF-8 \ --ms_MY.UTF-8/UTF-8 \ --ms_MY/ISO-8859-1 \ --mt_MT.UTF-8/UTF-8 \ --mt_MT/ISO-8859-3 \ --my_MM/UTF-8 \ --nan_TW@latin/UTF-8 \ --nb_NO.UTF-8/UTF-8 \ --nb_NO/ISO-8859-1 \ --nds_DE/UTF-8 \ --nds_NL/UTF-8 \ --ne_NP/UTF-8 \ - nl_AW/UTF-8 \ - nl_BE.UTF-8/UTF-8 \ - nl_BE/ISO-8859-1 \ -@@ -308,120 +132,24 @@ - nl_NL.UTF-8/UTF-8 \ - nl_NL/ISO-8859-1 \ - nl_NL@euro/ISO-8859-15 \ --nn_NO.UTF-8/UTF-8 \ --nn_NO/ISO-8859-1 \ --no_NO.UTF-8/UTF-8 \ --no_NO/ISO-8859-1 \ --nr_ZA/UTF-8 \ --nso_ZA/UTF-8 \ --oc_FR.UTF-8/UTF-8 \ --oc_FR/ISO-8859-1 \ --om_ET/UTF-8 \ --om_KE.UTF-8/UTF-8 \ --om_KE/ISO-8859-1 \ --or_IN/UTF-8 \ --pa_IN/UTF-8 \ --pa_PK/UTF-8 \ --pap_AN/UTF-8 \ - pl_PL.UTF-8/UTF-8 \ - pl_PL/ISO-8859-2 \ --ps_AF/UTF-8 \ - pt_BR.UTF-8/UTF-8 \ - pt_BR/ISO-8859-1 \ --pt_PT.UTF-8/UTF-8 \ --pt_PT/ISO-8859-1 \ --pt_PT@euro/ISO-8859-15 \ --ro_RO.UTF-8/UTF-8 \ --ro_RO/ISO-8859-2 \ --ru_RU.KOI8-R/KOI8-R \ --ru_RU.UTF-8/UTF-8 \ --ru_RU/ISO-8859-5 \ --ru_UA.UTF-8/UTF-8 \ --ru_UA/KOI8-U \ --rw_RW/UTF-8 \ --sa_IN/UTF-8 \ --sc_IT/UTF-8 \ --sd_IN/UTF-8 \ --sd_IN@devanagari/UTF-8 \ --se_NO/UTF-8 \ --shs_CA/UTF-8 \ --si_LK/UTF-8 \ --sid_ET/UTF-8 \ --sk_SK.UTF-8/UTF-8 \ --sk_SK/ISO-8859-2 \ --sl_SI.UTF-8/UTF-8 \ --sl_SI/ISO-8859-2 \ --so_DJ.UTF-8/UTF-8 \ --so_DJ/ISO-8859-1 \ --so_ET/UTF-8 \ --so_KE.UTF-8/UTF-8 \ --so_KE/ISO-8859-1 \ --so_SO.UTF-8/UTF-8 \ --so_SO/ISO-8859-1 \ --sq_AL.UTF-8/UTF-8 \ --sq_AL/ISO-8859-1 \ --sq_MK/UTF-8 \ --sr_ME/UTF-8 \ --sr_RS/UTF-8 \ --sr_RS@latin/UTF-8 \ --ss_ZA/UTF-8 \ --st_ZA.UTF-8/UTF-8 \ --st_ZA/ISO-8859-1 \ - sv_FI.UTF-8/UTF-8 \ - sv_FI/ISO-8859-1 \ - sv_FI@euro/ISO-8859-15 \ - sv_SE.UTF-8/UTF-8 \ - sv_SE/ISO-8859-1 \ - sv_SE.ISO-8859-15/ISO-8859-15 \ --ta_IN/UTF-8 \ --te_IN/UTF-8 \ --tg_TJ.UTF-8/UTF-8 \ --tg_TJ/KOI8-T \ --th_TH.UTF-8/UTF-8 \ --th_TH/TIS-620 \ --ti_ER/UTF-8 \ --ti_ET/UTF-8 \ --tig_ER/UTF-8 \ --tk_TM/UTF-8 \ --tl_PH.UTF-8/UTF-8 \ --tl_PH/ISO-8859-1 \ --tn_ZA/UTF-8 \ - tr_CY.UTF-8/UTF-8 \ - tr_CY/ISO-8859-9 \ - tr_TR.UTF-8/UTF-8 \ - tr_TR/ISO-8859-9 \ --ts_ZA/UTF-8 \ --tt_RU/UTF-8 \ --tt_RU@iqtelif/UTF-8 \ --ug_CN/UTF-8 \ --uk_UA.UTF-8/UTF-8 \ --uk_UA/KOI8-U \ --ur_PK/UTF-8 \ --uz_UZ/ISO-8859-1 \ --uz_UZ@cyrillic/UTF-8 \ --ve_ZA/UTF-8 \ --vi_VN.TCVN/TCVN5712-1 \ --vi_VN/UTF-8 \ --wa_BE/ISO-8859-1 \ --wa_BE@euro/ISO-8859-15 \ --wa_BE.UTF-8/UTF-8 \ --wo_SN/UTF-8 \ --xh_ZA.UTF-8/UTF-8 \ --xh_ZA/ISO-8859-1 \ --yi_US.UTF-8/UTF-8 \ --yi_US/CP1255 \ --yo_NG/UTF-8 \ - zh_CN.GB18030/GB18030 \ - zh_CN.GBK/GBK \ - zh_CN.UTF-8/UTF-8 \ - zh_CN/GB2312 \ --zh_HK.UTF-8/UTF-8 \ --zh_HK/BIG5-HKSCS \ --zh_SG.UTF-8/UTF-8 \ --zh_SG.GBK/GBK \ --zh_SG/GB2312 \ - zh_TW.EUC-TW/EUC-TW \ - zh_TW.UTF-8/UTF-8 \ - zh_TW/BIG5 \ --zu_ZA.UTF-8/UTF-8 \ --zu_ZA/ISO-8859-1 \ diff --git a/glibc-2.13-onlyenus.patch b/glibc-2.13-onlyenus.patch deleted file mode 100644 index 26886bc..0000000 --- a/glibc-2.13-onlyenus.patch +++ /dev/null @@ -1,161 +0,0 @@ -diff -ru glibc-2.13/localedata/SUPPORTED glibc-2.13-onlyenus/localedata/SUPPORTED ---- glibc-2.13/localedata/SUPPORTED 2011-11-25 16:58:19.729182658 +0100 -+++ glibc-2.13-onlyenus/localedata/SUPPORTED 2011-11-25 16:56:20.001281100 +0100 -@@ -1,155 +1,7 @@ - # This file names the currently supported and somewhat tested locales. - # If you have any additions please file a glibc bug report. - SUPPORTED-LOCALES=\ --cs_CZ.UTF-8/UTF-8 \ --cs_CZ/ISO-8859-2 \ --da_DK.UTF-8/UTF-8 \ --da_DK/ISO-8859-1 \ --da_DK.ISO-8859-15/ISO-8859-15 \ --de_AT.UTF-8/UTF-8 \ --de_AT/ISO-8859-1 \ --de_AT@euro/ISO-8859-15 \ --de_BE.UTF-8/UTF-8 \ --de_BE/ISO-8859-1 \ --de_BE@euro/ISO-8859-15 \ --de_CH.UTF-8/UTF-8 \ --de_CH/ISO-8859-1 \ --de_DE.UTF-8/UTF-8 \ --de_DE/ISO-8859-1 \ --de_DE@euro/ISO-8859-15 \ --de_LU.UTF-8/UTF-8 \ --de_LU/ISO-8859-1 \ --de_LU@euro/ISO-8859-15 \ --el_GR.UTF-8/UTF-8 \ --el_GR/ISO-8859-7 \ --el_CY.UTF-8/UTF-8 \ --el_CY/ISO-8859-7 \ --en_AG/UTF-8 \ --en_AU.UTF-8/UTF-8 \ --en_AU/ISO-8859-1 \ --en_BW.UTF-8/UTF-8 \ --en_BW/ISO-8859-1 \ --en_CA.UTF-8/UTF-8 \ --en_CA/ISO-8859-1 \ --en_DK.UTF-8/UTF-8 \ --en_DK/ISO-8859-1 \ --en_GB.UTF-8/UTF-8 \ --en_GB/ISO-8859-1 \ --en_GB.ISO-8859-15/ISO-8859-15 \ --en_HK.UTF-8/UTF-8 \ --en_HK/ISO-8859-1 \ --en_IE.UTF-8/UTF-8 \ --en_IE/ISO-8859-1 \ --en_IE@euro/ISO-8859-15 \ --en_IN/UTF-8 \ --en_NG/UTF-8 \ --en_NZ.UTF-8/UTF-8 \ --en_NZ/ISO-8859-1 \ --en_PH.UTF-8/UTF-8 \ --en_PH/ISO-8859-1 \ --en_SG.UTF-8/UTF-8 \ --en_SG/ISO-8859-1 \ - en_US.UTF-8/UTF-8 \ - en_US/ISO-8859-1 \ - en_US.ISO-8859-15/ISO-8859-15 \ --en_ZA.UTF-8/UTF-8 \ --en_ZA/ISO-8859-1 \ --en_ZW.UTF-8/UTF-8 \ --en_ZW/ISO-8859-1 \ --es_AR.UTF-8/UTF-8 \ --es_AR/ISO-8859-1 \ --es_BO.UTF-8/UTF-8 \ --es_BO/ISO-8859-1 \ --es_CL.UTF-8/UTF-8 \ --es_CL/ISO-8859-1 \ --es_CO.UTF-8/UTF-8 \ --es_CO/ISO-8859-1 \ --es_CR.UTF-8/UTF-8 \ --es_CR/ISO-8859-1 \ --es_DO.UTF-8/UTF-8 \ --es_DO/ISO-8859-1 \ --es_EC.UTF-8/UTF-8 \ --es_EC/ISO-8859-1 \ --es_ES.UTF-8/UTF-8 \ --es_ES/ISO-8859-1 \ --es_ES@euro/ISO-8859-15 \ --es_GT.UTF-8/UTF-8 \ --es_GT/ISO-8859-1 \ --es_HN.UTF-8/UTF-8 \ --es_HN/ISO-8859-1 \ --es_MX.UTF-8/UTF-8 \ --es_MX/ISO-8859-1 \ --es_NI.UTF-8/UTF-8 \ --es_NI/ISO-8859-1 \ --es_PA.UTF-8/UTF-8 \ --es_PA/ISO-8859-1 \ --es_PE.UTF-8/UTF-8 \ --es_PE/ISO-8859-1 \ --es_PR.UTF-8/UTF-8 \ --es_PR/ISO-8859-1 \ --es_PY.UTF-8/UTF-8 \ --es_PY/ISO-8859-1 \ --es_SV.UTF-8/UTF-8 \ --es_SV/ISO-8859-1 \ --es_US.UTF-8/UTF-8 \ --es_US/ISO-8859-1 \ --es_UY.UTF-8/UTF-8 \ --es_UY/ISO-8859-1 \ --es_VE.UTF-8/UTF-8 \ --es_VE/ISO-8859-1 \ --fi_FI.UTF-8/UTF-8 \ --fi_FI/ISO-8859-1 \ --fi_FI@euro/ISO-8859-15 \ --fil_PH/UTF-8 \ --fr_BE.UTF-8/UTF-8 \ --fr_BE/ISO-8859-1 \ --fr_BE@euro/ISO-8859-15 \ --fr_CA.UTF-8/UTF-8 \ --fr_CA/ISO-8859-1 \ --fr_CH.UTF-8/UTF-8 \ --fr_CH/ISO-8859-1 \ --fr_FR.UTF-8/UTF-8 \ --fr_FR/ISO-8859-1 \ --fr_FR@euro/ISO-8859-15 \ --fr_LU.UTF-8/UTF-8 \ --fr_LU/ISO-8859-1 \ --fr_LU@euro/ISO-8859-15 \ --hu_HU.UTF-8/UTF-8 \ --hu_HU/ISO-8859-2 \ --it_CH.UTF-8/UTF-8 \ --it_CH/ISO-8859-1 \ --it_IT.UTF-8/UTF-8 \ --it_IT/ISO-8859-1 \ --it_IT@euro/ISO-8859-15 \ --ja_JP.EUC-JP/EUC-JP \ --ja_JP.UTF-8/UTF-8 \ --ko_KR.EUC-KR/EUC-KR \ --ko_KR.UTF-8/UTF-8 \ --nl_AW/UTF-8 \ --nl_BE.UTF-8/UTF-8 \ --nl_BE/ISO-8859-1 \ --nl_BE@euro/ISO-8859-15 \ --nl_NL.UTF-8/UTF-8 \ --nl_NL/ISO-8859-1 \ --nl_NL@euro/ISO-8859-15 \ --pl_PL.UTF-8/UTF-8 \ --pl_PL/ISO-8859-2 \ --pt_BR.UTF-8/UTF-8 \ --pt_BR/ISO-8859-1 \ --sv_FI.UTF-8/UTF-8 \ --sv_FI/ISO-8859-1 \ --sv_FI@euro/ISO-8859-15 \ --sv_SE.UTF-8/UTF-8 \ --sv_SE/ISO-8859-1 \ --sv_SE.ISO-8859-15/ISO-8859-15 \ --tr_CY.UTF-8/UTF-8 \ --tr_CY/ISO-8859-9 \ --tr_TR.UTF-8/UTF-8 \ --tr_TR/ISO-8859-9 \ --zh_CN.GB18030/GB18030 \ --zh_CN.GBK/GBK \ --zh_CN.UTF-8/UTF-8 \ --zh_CN/GB2312 \ --zh_TW.EUC-TW/EUC-TW \ --zh_TW.UTF-8/UTF-8 \ --zh_TW/BIG5 \ -+ -Only in glibc-2.13-onlyenus/localedata: SUPPORTED~ diff --git a/glibc-arm-atomics-disable-qemu.patch b/glibc-arm-atomics-disable-qemu.patch deleted file mode 100644 index 6b0a019..0000000 --- a/glibc-arm-atomics-disable-qemu.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru glibc-2.13/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h glibc-2.13-arm-qemu-atomics/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h ---- glibc-2.13/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h 2011-01-25 22:00:16.000000000 +0100 -+++ glibc-2.13-arm-qemu-atomics/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h 2011-06-23 12:44:45.051613056 +0200 -@@ -39,7 +39,7 @@ - - /* Use the atomic builtins provided by GCC in case the backend provides - a pattern to do this efficiently. */ -- -+#undef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 - #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 - #define atomic_full_barrier() __sync_synchronize () - #elif defined __thumb2__ diff --git a/glibc-fedora.patch b/glibc-fedora.patch deleted file mode 100644 index 5d66794..0000000 --- a/glibc-fedora.patch +++ /dev/null @@ -1,2990 +0,0 @@ ---- glibc-2.13/ChangeLog -+++ glibc-2.13-1/ChangeLog -@@ -285,6 +285,11 @@ - - * sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_DISCARD): Define. - -+2010-12-13 Andreas Schwab -+ -+ * elf/dl-object.c (_dl_new_object): Ignore origin of privileged -+ program. -+ - 2010-11-11 Andreas Schwab - - * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca. -@@ -606,6 +611,11 @@ - * string/str-two-way.h (two_way_long_needle): Always clear memory - when skipping input due to the shift table. - -+2010-10-05 Andreas Schwab -+ -+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't discard result of -+ decoding ACE if AI_CANONIDN. -+ - 2010-10-03 Ulrich Drepper - - [BZ #12005] -@@ -648,6 +658,34 @@ - * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS): - Mask out sign-bit copies when constructing f_fsid. - -+2010-09-28 Andreas Schwab -+ -+ * elf/rtld.c (dl_main): Move setting of GLRO(dl_init_all_dirs) -+ before performing relro protection. -+ -+2010-09-27 Andreas Schwab -+ -+ * include/link.h (struct link_map): Add l_free_initfini. -+ * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning -+ l_initfini. -+ * elf/rtld.c (dl_main): Clear it on all objects loaded on startup. -+ * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is -+ set. -+ -+ [BZ #11561] -+ * posix/regcomp.c (parse_bracket_exp): When looking up collating -+ elements compare against the byte sequence of it, not its name. -+ -+ [BZ #6530] -+ * stdio-common/vfprintf.c (process_string_arg): Revert 2000-07-22 -+ change. -+ -+ * nss/nss_files/files-XXX.c (internal_getent): Declare linebuflen -+ as size_t. -+ -+ * sysdeps/i386/i686/multiarch/strspn.S (ENTRY): Add missing -+ backslash. -+ - 2010-09-24 Petr Baudis - - * debug/stack_chk_fail_local.c: Add missing licence exception. -@@ -1439,6 +1477,32 @@ - call returning > 0 value. - * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise. - -+2010-07-01 Andreas Schwab -+ -+ * include/sys/resource.h (__getrlimit): Add hidden proto. -+ * sysdeps/unix/sysv/linux/i386/getrlimit.c: Add libc_hidden_weak. -+ * sysdeps/mach/hurd/getrlimit.c: Add libc_hidden_def. -+ * resource/getrlimit.c: Likewise. -+ -+2010-06-28 Andreas Schwab -+ -+ * allocatestack.c (setxid_mark_thread): Ensure that the exiting -+ thread is woken up. -+ -+ * elf/Makefile: Add rules to build and run unload8 test. -+ * elf/unload8.c: New file. -+ * elf/unload8mod1.c: New file. -+ * elf/unload8mod1x.c: New file. -+ * elf/unload8mod2.c: New file. -+ * elf/unload8mod3.c: New file. -+ -+ * elf/dl-close.c (_dl_close_worker): Reset private search list if -+ it wasn't used. -+ -+2010-06-21 Andreas Schwab -+ -+ * sysdeps/i386/i686/Makefile: Don't pass -mtune to assembler. -+ - 2010-06-07 Andreas Schwab - - * dlfcn/Makefile: Remove explicit dependencies on libc.so and -@@ -1491,6 +1555,24 @@ - * hurd/hurd/fd.h (__file_name_lookup_at): Update comment. - * sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS. - -+2010-06-11 Andreas Schwab -+ -+ * elf/rtld.c (_dl_starting_up): Always define. -+ (dl_main): Always set _dl_starting_up. -+ * elf/dl-support.c (_dl_starting_up): Always define. -+ * elf/dl-init.c (_dl_init): Always clear _dl_starting_up. -+ -+2010-06-10 Andreas Schwab -+ -+ * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE -+ is always available. -+ -+ * sysdeps/unix/sysv/linux/i386/Versions: Export __uname under -+ GLIBC_PRIVATE. -+ * nptl/Versions: Export __getrlimit under GLIBC_PRIVATE. -+ * sysdeps/unix/sysv/linux/i386/smp.h: Call __uname instead of uname. -+ * nptl/nptl-init.c: Call __getrlimit instead of getrlimit. -+ - 2010-05-28 Luis Machado - - * sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi. ---- glibc-2.13/ChangeLog.15 -+++ glibc-2.13-1/ChangeLog.15 -@@ -477,6 +477,14 @@ - - 2004-11-26 Jakub Jelinek - -+ * posix/Makefile (generated: Add getconf.speclist. -+ ($(inst_libexecdir)/getconf): Use getconf.speclist instead of -+ getconf output. -+ ($(objpfx)getconf.speclist): New rule. -+ * posix/getconf.speclist.h: New file. -+ -+2004-11-26 Jakub Jelinek -+ - * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR. - - 2004-11-26 Kaz Kojima -@@ -1103,6 +1111,13 @@ - * sysdeps/generic/tempname.c (__path_search): Add missing argument - TRY_TMPDIR. - -+2004-11-02 Jakub Jelinek -+ -+ * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat -+ GCC 3.4.x-RH >= 3.4.2-8. -+ * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not -+ being able to recognize subobjects. -+ - 2004-10-31 Mariusz Mazur - - * sysdeps/unix/sysv/linux/alpha/setregid.c: New file. -@@ -1443,6 +1458,11 @@ - * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ... - (__readonly_area): ... this. - -+2004-10-19 Jakub Jelinek -+ -+ * include/features.h (__USE_FORTIFY_LEVEL): Enable even with -+ Red Hat gcc4 4.0.0 and above. -+ - 2004-10-18 Jakub Jelinek - - * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking -@@ -3182,6 +3202,23 @@ - before return type. - * locale/localename.c (__current_locale_name): Likewise. - -+2004-08-31 Jakub Jelinek -+ -+ * elf/ldconfig.c (parse_conf): Add prefix argument, prepend it -+ before arguments to add_dir and pass to parse_conf_include. -+ (parse_conf_include): Add prefix argument, pass it down to -+ parse_conf. -+ (main): Call arch_startup. Adjust parse_conf caller. -+ Call add_arch_dirs. -+ * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define. -+ * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file. -+ * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup, -+ add_arch_dirs): Define. -+ * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend -+ /emul/ia32-linux before the 32-bit ld.so pathname. -+ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file. -+ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file. -+ - 2004-08-30 Roland McGrath - - * scripts/extract-abilist.awk: If `lastversion' variable defined, omit ---- glibc-2.13/ChangeLog.16 -+++ glibc-2.13-1/ChangeLog.16 -@@ -2042,6 +2042,9 @@ - (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT - followed by __THROW. - -+ * sysdeps/unix/sysv/linux/futimesat.c (futimesat): If -+ file == NULL, use __futimes unconditionally. -+ - 2006-02-02 Ulrich Drepper - - * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat] -@@ -2101,6 +2104,11 @@ - * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo. - * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps. - -+2006-01-30 Jakub Jelinek -+ -+ * include/bits/stdlib-ldbl.h: New file. -+ * include/bits/wchar-ldbl.h: New file. -+ - 2006-01-19 Thomas Schwinge - - * libio/genops.c: Include . -@@ -8922,6 +8930,12 @@ - * argp/argp-help.c (__argp_error): __asprintf -> vasprintf. - (__argp_failure): Likewise. - -+2005-08-08 Jakub Jelinek -+ -+ * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard): -+ Shift marked &errno down on big-endian instead of up. -+ * elf/tst-stackguard1.c (do_test): Fix a typo. -+ - 2005-08-08 Ulrich Drepper - - * nscd/cache.c (cache_add): Commit hash table and header to disk. -@@ -9046,6 +9060,17 @@ - __syslog_chk. - * misc/Versions: Export __syslog_chk and __vsyslog_chk. - -+2005-07-29 Jakub Jelinek -+ -+ * sysdeps/unix/sysv/linux/dl-osinfo.h: Include errno.h, hp-timing.h, -+ endian.h. -+ (_dl_setup_stack_chk_guard): Even without -+ --enable-stackguard-randomization attempt to do some guard -+ randomization using hp-timing (if available) and kernel stack and -+ mmap randomization. -+ * elf/tst-stackguard1.c (do_test): Don't fail if the poor man's -+ randomization doesn't work well enough. -+ - 2005-07-28 Thomas Schwinge - - [BZ #1137] ---- glibc-2.13/ChangeLog.17 -+++ glibc-2.13-1/ChangeLog.17 -@@ -256,6 +256,12 @@ - - * Makerules (libc-abis): Fix search for libc-abis in add-ons. - -+2010-04-06 Ulrich Drepper -+ -+ * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global -+ scope to RFC 1918 addresses. -+ * posix/gai.conf: Document difference from RFC 3484. -+ - 2010-04-05 Thomas Schwinge - - * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/. -@@ -1010,6 +1016,13 @@ - * sysdeps/x86_64/fpu/fegetenv.c: Likewise - * sysdeps/s390/fpu/fegetenv.c: Likewise. Remove unused headers. - -+2009-10-27 Aurelien Jarno -+ -+ [BZ #10855] -+ * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory -+ used later with MMAP_FIXED | MMAP_SHARED to cope with different -+ alignment restrictions. -+ - 2010-02-05 H.J. Lu - - [BZ #11230] -@@ -2953,6 +2966,11 @@ d2009-10-30 Ulrich Drepper - * sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in - the unique symbol hash table should not be const. - -+2009-07-22 Jakub Jelinek -+ -+ * Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS). -+ * sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686. -+ - 2009-07-21 Ulrich Drepper - - * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups. Remove -@@ -3218,6 +3236,11 @@ d2009-10-30 Ulrich Drepper - out common code into new function get_common_indeces. Determine - extended family and model for Intel processors. - -+2009-06-26 Andreas Schwab -+ -+ * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ -+ string when the timezone ends in DST. -+ - 2009-06-26 Ulrich Drepper - - * resolv/resolv.h: Define RES_SNGLKUPREOP. -@@ -11818,6 +11841,10 @@ d2009-10-30 Ulrich Drepper - [BZ #4368] - * stdlib/stdlib.h: Remove obsolete part of comment for realpath. - -+2007-04-16 Jakub Jelinek -+ -+ * locale/programs/locarchive.c (add_alias, insert_name): Remove static. -+ - 2007-04-16 Ulrich Drepper - - [BZ #4364] -@@ -13075,6 +13102,15 @@ d2009-10-30 Ulrich Drepper - separators also if no non-zero digits found. - * stdlib/Makefile (tests): Add tst-strtod3. - -+2006-12-10 Jakub Jelinek -+ -+ * sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h -+ if IFA_MAX is not defined. -+ (IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not -+ defined. -+ * sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h -+ instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h. -+ - 2006-12-09 Ulrich Drepper - - [BZ #3632] ---- glibc-2.13/Makeconfig -+++ glibc-2.13-1/Makeconfig -@@ -789,12 +789,12 @@ endif - # The assembler can generate debug information too. - ifndef ASFLAGS - ifeq ($(have-cpp-asm-debuginfo),yes) --ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) -+ASFLAGS = $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) - else --ASFLAGS := -+ASFLAGS = - endif - endif --ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) -+ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS) - - ifndef BUILD_CC - BUILD_CC = $(CC) ---- glibc-2.13/csu/Makefile -+++ glibc-2.13-1/csu/Makefile -@@ -93,7 +93,8 @@ omit-deps += $(crtstuff) - $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h - $(compile.S) -g0 $(ASFLAGS-.os) -o $@ - --CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ -+ -fno-asynchronous-unwind-tables - - vpath initfini.c $(sysdirs) - ---- glibc-2.13/csu/elf-init.c -+++ glibc-2.13-1/csu/elf-init.c -@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, char **, char **) - extern void (*__fini_array_start []) (void) attribute_hidden; - extern void (*__fini_array_end []) (void) attribute_hidden; - -+#if defined HAVE_VISIBILITY_ATTRIBUTE \ -+ && (defined SHARED || defined LIBC_NONSHARED) -+# define hidden_undef_2(x) #x -+# define hidden_undef_1(x) hidden_undef_2 (x) -+# define hidden_undef(x) \ -+ __asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \ -+ __asm (".hidden " #x); -+#else -+# define hidden_undef(x) -+#endif -+ -+hidden_undef (__preinit_array_start) -+hidden_undef (__preinit_array_end) -+hidden_undef (__init_array_start) -+hidden_undef (__init_array_end) -+hidden_undef (__fini_array_start) -+hidden_undef (__fini_array_end) - - /* These function symbols are provided for the .init/.fini section entry - points automagically by the linker. */ ---- glibc-2.13/debug/tst-chk1.c -+++ glibc-2.13-1/debug/tst-chk1.c -@@ -17,6 +17,9 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -+/* Hack: make sure GCC doesn't know __chk_fail () will not return. */ -+#define __noreturn__ -+ - #include - #include - #include -@@ -242,7 +245,7 @@ do_test (void) - if (memcmp (a.buf1, "aabcdabcjj", 10)) - FAIL (); - --#if __USE_FORTIFY_LEVEL < 2 -+#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0) - /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2 - and sufficient GCC support, as the string operations overflow - from a.buf1 into a.buf2. */ -@@ -357,7 +360,7 @@ do_test (void) - memset (a.buf1 + 9, 'j', l0 + 2); - CHK_FAIL_END - --# if __USE_FORTIFY_LEVEL >= 2 -+# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0) - # define O 0 - # else - # define O 1 ---- glibc-2.13/elf/Makefile -+++ glibc-2.13-1/elf/Makefile -@@ -89,6 +89,7 @@ distribute := rtld-Rules \ - unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \ - unload6mod1.c unload6mod2.c unload6mod3.c \ - unload7mod1.c unload7mod2.c \ -+ unload8mod1.c unload8mod1x.c unload8mod2.c unload8mod3.c \ - tst-audit1.c tst-audit2.c tst-audit3.c tst-audit4.c \ - tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \ - tst-auditmod4a.c tst-auditmod4b.c \ -@@ -129,6 +130,7 @@ include ../Makeconfig - ifeq ($(unwind-find-fde),yes) - routines += unwind-dw2-fde-glibc - shared-only-routines += unwind-dw2-fde-glibc -+CFLAGS-unwind-dw2-fde-glibc.c = -fno-strict-aliasing - endif - - before-compile = $(objpfx)trusted-dirs.h -@@ -195,7 +197,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ - tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \ - tst-dlmodcount tst-dlopenrpath tst-deep1 \ - tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ -- unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \ -+ unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \ - tst-audit1 tst-audit2 \ - tst-stackguard1 tst-addr1 tst-thrlock \ - tst-unique1 tst-unique2 -@@ -248,6 +250,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ - unload4mod1 unload4mod2 unload4mod3 unload4mod4 \ - unload6mod1 unload6mod2 unload6mod3 \ - unload7mod1 unload7mod2 \ -+ unload8mod1 unload8mod1x unload8mod2 unload8mod3 \ - order2mod1 order2mod2 order2mod3 order2mod4 \ - tst-unique1mod1 tst-unique1mod2 \ - tst-unique2mod1 tst-unique2mod2 -@@ -531,6 +534,9 @@ $(objpfx)unload6mod2.so: $(libdl) - $(objpfx)unload6mod3.so: $(libdl) - $(objpfx)unload7mod1.so: $(libdl) - $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so -+$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so -+$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so -+$(objpfx)unload8mod3.so: $(libdl) - - LDFLAGS-tst-tlsmod5.so = -nostdlib - LDFLAGS-tst-tlsmod6.so = -nostdlib -@@ -832,6 +838,9 @@ $(objpfx)unload7: $(libdl) - $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so - unload7-ENV = MALLOC_PERTURB_=85 - -+$(objpfx)unload8: $(libdl) -+$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so -+ - ifdef libdl - $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a - $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so ---- glibc-2.13/elf/dl-close.c -+++ glibc-2.13-1/elf/dl-close.c -@@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map) - - imap->l_scope_max = new_size; - } -+ else if (new_list != NULL) -+ { -+ /* We didn't change the scope array, so reset the search -+ list. */ -+ imap->l_searchlist.r_list = NULL; -+ imap->l_searchlist.r_nlist = 0; -+ } - - /* The loader is gone, so mark the object as not having one. - Note: l_idx != IDX_STILL_USED -> object will be removed. */ ---- glibc-2.13/elf/dl-deps.c -+++ glibc-2.13-1/elf/dl-deps.c -@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map, - 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. */ -@@ -662,6 +663,7 @@ Filters not supported with LD_TRACE_PRELINKING")); - l_initfini[nlist] = NULL; - atomic_write_barrier (); - map->l_initfini = l_initfini; -+ map->l_free_initfini = 1; - if (l_reldeps != NULL) - { - atomic_write_barrier (); ---- glibc-2.13/elf/dl-init.c -+++ glibc-2.13-1/elf/dl-init.c -@@ -24,11 +24,9 @@ - /* Type of the initializer. */ - typedef void (*init_t) (int, char **, char **); - --#ifndef HAVE_INLINED_SYSCALLS - /* Flag, nonzero during startup phase. */ - extern int _dl_starting_up; - extern int _dl_starting_up_internal attribute_hidden; --#endif - - - static void -@@ -133,9 +131,7 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env) - while (i-- > 0) - call_init (main_map->l_initfini[i], argc, argv, env); - --#ifndef HAVE_INLINED_SYSCALLS - /* Finished starting up. */ - INTUSE(_dl_starting_up) = 0; --#endif - } - INTDEF (_dl_init) ---- glibc-2.13/elf/dl-libc.c -+++ glibc-2.13-1/elf/dl-libc.c -@@ -265,13 +265,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; -@@ -279,6 +279,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 ---- glibc-2.13/elf/dl-object.c -+++ glibc-2.13-1/elf/dl-object.c -@@ -220,6 +220,9 @@ _dl_new_object (char *realname, const char *libname, int type, - out: - new->l_origin = origin; - } -+ else if (INTUSE(__libc_enable_secure) && type == lt_executable) -+ /* The origin of a privileged program cannot be trusted. */ -+ new->l_origin = (char *) -1; - - return new; - } ---- glibc-2.13/elf/dl-support.c -+++ glibc-2.13-1/elf/dl-support.c -@@ -81,10 +81,8 @@ unsigned long long _dl_load_adds; - create a fake scope containing nothing. */ - struct r_scope_elem _dl_initial_searchlist; - --#ifndef HAVE_INLINED_SYSCALLS - /* Nonzero during startup. */ - int _dl_starting_up = 1; --#endif - - /* Random data provided by the kernel. */ - void *_dl_random; ---- glibc-2.13/elf/ldconfig.c -+++ glibc-2.13-1/elf/ldconfig.c -@@ -1031,17 +1031,19 @@ search_dirs (void) - - - static void parse_conf_include (const char *config_file, unsigned int lineno, -- bool do_chroot, const char *pattern); -+ const char *prefix, bool do_chroot, -+ const char *pattern); - - /* Parse configuration file. */ - static void --parse_conf (const char *filename, bool do_chroot) -+parse_conf (const char *filename, const char *prefix, bool do_chroot) - { - FILE *file = NULL; - char *line = NULL; - const char *canon; - size_t len = 0; - unsigned int lineno; -+ size_t prefix_len = prefix ? strlen (prefix) : 0; - - if (do_chroot && opt_chroot) - { -@@ -1102,7 +1104,14 @@ parse_conf (const char *filename, bool do_chroot) - cp += 8; - while ((dir = strsep (&cp, " \t")) != NULL) - if (dir[0] != '\0') -- parse_conf_include (filename, lineno, do_chroot, dir); -+ parse_conf_include (filename, lineno, prefix, do_chroot, dir); -+ } -+ else if (prefix != NULL) -+ { -+ size_t cp_len = strlen (cp); -+ char new_cp [prefix_len + cp_len + 1]; -+ memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1); -+ add_dir (new_cp); - } - else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5])) - { -@@ -1165,7 +1174,7 @@ parse_conf (const char *filename, bool do_chroot) - config files to read. */ - static void - parse_conf_include (const char *config_file, unsigned int lineno, -- bool do_chroot, const char *pattern) -+ const char *prefix, bool do_chroot, const char *pattern) - { - if (opt_chroot && pattern[0] != '/') - error (EXIT_FAILURE, 0, -@@ -1197,7 +1206,7 @@ parse_conf_include (const char *config_file, unsigned int lineno, - { - case 0: - for (size_t i = 0; i < gl.gl_pathc; ++i) -- parse_conf (gl.gl_pathv[i], false); -+ parse_conf (gl.gl_pathv[i], prefix, false); - globfree64 (&gl); - break; - -@@ -1240,6 +1249,8 @@ main (int argc, char **argv) - /* Set the text message domain. */ - textdomain (_libc_intl_domainname); - -+ arch_startup (argc, argv); -+ - /* Parse and process arguments. */ - int remaining; - argp_parse (&argp, argc, argv, 0, &remaining, NULL); -@@ -1349,12 +1360,14 @@ main (int argc, char **argv) - - if (!opt_only_cline) - { -- parse_conf (config_file, true); -+ parse_conf (config_file, NULL, true); - - /* Always add the standard search paths. */ - add_system_dir (SLIBDIR); - if (strcmp (SLIBDIR, LIBDIR)) - add_system_dir (LIBDIR); -+ -+ add_arch_dirs (config_file); - } - - const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; ---- glibc-2.13/elf/rtld.c -+++ glibc-2.13-1/elf/rtld.c -@@ -107,7 +107,6 @@ static struct audit_list - struct audit_list *next; - } *audit_list; - --#ifndef HAVE_INLINED_SYSCALLS - /* Set nonzero during loading and initialization of executable and - libraries, cleared before the executable's entry point runs. This - must not be initialized to nonzero, because the unused dynamic -@@ -117,7 +116,6 @@ static struct audit_list - never be called. */ - int _dl_starting_up = 0; - INTVARDEF(_dl_starting_up) --#endif - - /* This is the structure which defines all variables global to ld.so - (except those which cannot be added for some reason). */ -@@ -923,10 +921,8 @@ dl_main (const ElfW(Phdr) *phdr, - /* Process the environment variable which control the behaviour. */ - process_envvars (&mode); - --#ifndef HAVE_INLINED_SYSCALLS - /* Set up a flag which tells we are just starting. */ - INTUSE(_dl_starting_up) = 1; --#endif - - if (*user_entry == (ElfW(Addr)) ENTRY_POINT) - { -@@ -2179,6 +2175,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - we need it in the memory handling later. */ - GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist; - -+ /* Remember the last search directory added at startup, now that -+ malloc will no longer be the one from dl-minimal.c. */ -+ GLRO(dl_init_all_dirs) = GL(dl_all_dirs); -+ - if (prelinked) - { - if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL) -@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - 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, -@@ -2298,10 +2299,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", - lossage); - } - -- /* Remember the last search directory added at startup, now that -- malloc will no longer be the one from dl-minimal.c. */ -- GLRO(dl_init_all_dirs) = GL(dl_all_dirs); -- - if (! prelinked && rtld_multiple_ref) - { - /* There was an explicit ref to the dynamic linker as a shared lib. ---- glibc-2.13/elf/tst-stackguard1.c -+++ glibc-2.13-1/elf/tst-stackguard1.c -@@ -160,17 +160,21 @@ do_test (void) - the 16 runs, something is very wrong. */ - int ndifferences = 0; - int ndefaults = 0; -+ int npartlyrandomized = 0; - for (i = 0; i < N; ++i) - { - if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) - ndifferences++; - else if (child_stack_chk_guards[i] == default_guard) - ndefaults++; -+ else if (*(char *) &child_stack_chk_guards[i] == 0) -+ npartlyrandomized++; - } - -- printf ("differences %d defaults %d\n", ndifferences, ndefaults); -+ printf ("differences %d defaults %d partly randomized %d\n", -+ ndifferences, ndefaults, npartlyrandomized); - -- if (ndifferences < N / 2 && ndefaults < N / 2) -+ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) - { - puts ("stack guard canaries are not randomized enough"); - puts ("nor equal to the default canary value"); ---- glibc-2.13/elf/unload8.c -+++ glibc-2.13-1/elf/unload8.c -@@ -0,0 +1,33 @@ -+#include -+#include -+ -+int -+main (void) -+{ -+ void *h = dlopen ("$ORIGIN/unload8mod1.so", RTLD_LAZY); -+ if (h == NULL) -+ { -+ puts ("dlopen unload8mod1.so failed"); -+ return 1; -+ } -+ -+ void *h2 = dlopen ("$ORIGIN/unload8mod1x.so", RTLD_LAZY); -+ if (h2 == NULL) -+ { -+ puts ("dlopen unload8mod1x.so failed"); -+ return 1; -+ } -+ dlclose (h2); -+ -+ int (*mod1) (void) = dlsym (h, "mod1"); -+ if (mod1 == NULL) -+ { -+ puts ("dlsym failed"); -+ return 1; -+ } -+ -+ mod1 (); -+ dlclose (h); -+ -+ return 0; -+} ---- glibc-2.13/elf/unload8mod1.c -+++ glibc-2.13-1/elf/unload8mod1.c -@@ -0,0 +1,7 @@ -+extern void mod2 (void); -+ -+void -+mod1 (void) -+{ -+ mod2 (); -+} ---- glibc-2.13/elf/unload8mod1x.c -+++ glibc-2.13-1/elf/unload8mod1x.c -@@ -0,0 +1 @@ -+int mod1x; ---- glibc-2.13/elf/unload8mod2.c -+++ glibc-2.13-1/elf/unload8mod2.c -@@ -0,0 +1,7 @@ -+extern void mod3 (void); -+ -+void -+mod2 (void) -+{ -+ mod3 (); -+} ---- glibc-2.13/elf/unload8mod3.c -+++ glibc-2.13-1/elf/unload8mod3.c -@@ -0,0 +1,27 @@ -+#include -+#include -+#include -+ -+void -+mod3_fini2 (void) -+{ -+} -+ -+void -+mod3_fini (void) -+{ -+ mod3_fini2 (); -+} -+ -+void -+mod3 (void) -+{ -+ void *h = dlopen ("$ORIGIN/unload8mod2.so", RTLD_LAZY); -+ if (h == NULL) -+ { -+ puts ("dlopen unload8mod2.so failed"); -+ exit (1); -+ } -+ -+ atexit (mod3_fini); -+} ---- glibc-2.13/include/bits/stdlib-ldbl.h -+++ glibc-2.13-1/include/bits/stdlib-ldbl.h -@@ -0,0 +1 @@ -+#include ---- glibc-2.13/include/bits/wchar-ldbl.h -+++ glibc-2.13-1/include/bits/wchar-ldbl.h -@@ -0,0 +1 @@ -+#include ---- glibc-2.13/include/features.h -+++ glibc-2.13-1/include/features.h -@@ -309,8 +309,13 @@ - #endif - - #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ -- && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 --# if _FORTIFY_SOURCE > 1 -+ && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 -+# if !__GNUC_PREREQ (4, 1) -+# ifdef __GNUC_RH_RELEASE__ -+# warning _FORTIFY_SOURCE supported only with GCC 4.1 and later -+# endif -+# define __USE_FORTIFY_LEVEL 0 -+# elif _FORTIFY_SOURCE > 1 - # define __USE_FORTIFY_LEVEL 2 - # else - # define __USE_FORTIFY_LEVEL 1 ---- glibc-2.13/include/link.h -+++ glibc-2.13-1/include/link.h -@@ -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; ---- glibc-2.13/include/sys/resource.h -+++ glibc-2.13-1/include/sys/resource.h -@@ -13,4 +13,5 @@ extern int __getrusage (enum __rusage_who __who, struct rusage *__usage) - - extern int __setrlimit (enum __rlimit_resource __resource, - const struct rlimit *__rlimits); -+libc_hidden_proto (__getrlimit) - #endif ---- glibc-2.13/inet/Makefile -+++ glibc-2.13-1/inet/Makefile -@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ - - include ../Rules - -+CFLAGS-tst-inet6_rth.c = -fno-strict-aliasing -+ - ifeq ($(have-thread-library),yes) - - CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions ---- glibc-2.13/intl/locale.alias -+++ glibc-2.13-1/intl/locale.alias -@@ -57,8 +57,6 @@ korean ko_KR.eucKR - korean.euc ko_KR.eucKR - ko_KR ko_KR.eucKR - lithuanian lt_LT.ISO-8859-13 --no_NO nb_NO.ISO-8859-1 --no_NO.ISO-8859-1 nb_NO.ISO-8859-1 - norwegian nb_NO.ISO-8859-1 - nynorsk nn_NO.ISO-8859-1 - polish pl_PL.ISO-8859-2 ---- glibc-2.13/libio/stdio.h -+++ glibc-2.13-1/libio/stdio.h -@@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t; - extern struct _IO_FILE *stdin; /* Standard input stream. */ - extern struct _IO_FILE *stdout; /* Standard output stream. */ - extern struct _IO_FILE *stderr; /* Standard error output stream. */ -+#ifdef __STDC__ - /* C89/C99 say they're macros. Make them happy. */ - #define stdin stdin - #define stdout stdout - #define stderr stderr -+#endif - - __BEGIN_NAMESPACE_STD - /* Remove file FILENAME. */ ---- glibc-2.13/locale/iso-4217.def -+++ glibc-2.13-1/locale/iso-4217.def -@@ -8,6 +8,7 @@ - * - * !!! The list has to be sorted !!! - */ -+DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */ - DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ - DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ - DEFINE_INT_CURR("ALL") /* Albanian Lek */ -@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD") /* Armenia Dram */ - DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ - DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ - DEFINE_INT_CURR("ARS") /* Argentine Peso */ -+DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */ - DEFINE_INT_CURR("AUD") /* Australian Dollar */ - DEFINE_INT_CURR("AWG") /* Aruba Guilder */ - DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */ - DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */ - DEFINE_INT_CURR("BBD") /* Barbados Dollar */ - DEFINE_INT_CURR("BDT") /* Bangladesh Taka */ -+DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */ - DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ - DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ - DEFINE_INT_CURR("BIF") /* Burundi Franc */ -@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP") /* Cuban Peso */ - DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ - DEFINE_INT_CURR("CYP") /* Cypriot Pound */ - DEFINE_INT_CURR("CZK") /* Czech Koruna */ -+DEFINE_INT_CURR("DEM") /* German Mark -> EUR */ - DEFINE_INT_CURR("DJF") /* Djibouti Franc */ - DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ - DEFINE_INT_CURR("DOP") /* Dominican Republic */ -@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD") /* Algerian Dinar */ - DEFINE_INT_CURR("EEK") /* Estonian Kroon */ - DEFINE_INT_CURR("EGP") /* Egyptian Pound */ - DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ -+DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */ - DEFINE_INT_CURR("ETB") /* Ethiopian Birr */ - DEFINE_INT_CURR("EUR") /* European Union Euro */ -+DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */ - DEFINE_INT_CURR("FJD") /* Fiji Dollar */ - DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */ -+DEFINE_INT_CURR("FRF") /* French Franc -> EUR */ - DEFINE_INT_CURR("GBP") /* British Pound */ - DEFINE_INT_CURR("GEL") /* Georgia Lari */ - DEFINE_INT_CURR("GHC") /* Ghana Cedi */ - DEFINE_INT_CURR("GIP") /* Gibraltar Pound */ - DEFINE_INT_CURR("GMD") /* Gambian Dalasi */ - DEFINE_INT_CURR("GNF") /* Guinea Franc */ -+DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */ - DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ - DEFINE_INT_CURR("GYD") /* Guyana Dollar */ - DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ -@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK") /* Croatia Kuna */ - DEFINE_INT_CURR("HTG") /* Haiti Gourde */ - DEFINE_INT_CURR("HUF") /* Hungarian Forint */ - DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ -+DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */ - DEFINE_INT_CURR("ILS") /* Israeli Shekel */ - DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */ - DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */ - DEFINE_INT_CURR("IQD") /* Iraqi Dinar */ - DEFINE_INT_CURR("IRR") /* Iranian Rial */ - DEFINE_INT_CURR("ISK") /* Iceland Krona */ -+DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */ - DEFINE_INT_CURR("JEP") /* Jersey Pound */ - DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ - DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ -@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR") /* Sri Lankan Rupee */ - DEFINE_INT_CURR("LRD") /* Liberian Dollar */ - DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ - DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ -+DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */ - DEFINE_INT_CURR("LVL") /* Latvia Lat */ - DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ - DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ -@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM") /* Mozambique Metical */ - DEFINE_INT_CURR("NAD") /* Namibia Dollar */ - DEFINE_INT_CURR("NGN") /* Nigeria Naira */ - DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ -+DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */ - DEFINE_INT_CURR("NOK") /* Norwegian Krone */ - DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ - DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ -@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK") /* Papau New Guinea Kina */ - DEFINE_INT_CURR("PHP") /* Philippines Peso */ - DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ - DEFINE_INT_CURR("PLN") /* Polish Zloty */ -+DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */ - DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ - DEFINE_INT_CURR("QAR") /* Qatar Rial */ - DEFINE_INT_CURR("ROL") /* Romanian Leu */ ---- glibc-2.13/locale/programs/locarchive.c -+++ glibc-2.13-1/locale/programs/locarchive.c -@@ -134,7 +134,7 @@ create_archive (const char *archivefname, struct locarhandle *ah) - size_t reserved = RESERVE_MMAP_SIZE; - int xflags = 0; - if (total < reserved -- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, -+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, - -1, 0)) != MAP_FAILED)) - xflags = MAP_FIXED; - else -@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const void *b) - /* forward decls for below */ - static uint32_t add_locale (struct locarhandle *ah, const char *name, - locale_data_t data, bool replace); --static void add_alias (struct locarhandle *ah, const char *alias, -- bool replace, const char *oldname, -- uint32_t *locrec_offset_p); -+void add_alias (struct locarhandle *ah, const char *alias, -+ bool replace, const char *oldname, -+ uint32_t *locrec_offset_p); - - - static bool -@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) - size_t reserved = RESERVE_MMAP_SIZE; - int xflags = 0; - if (total < reserved -- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, -+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, - -1, 0)) != MAP_FAILED)) - xflags = MAP_FIXED; - else -@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bool readonly) - int xflags = 0; - void *p; - if (st.st_size < reserved -- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, -+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, - -1, 0)) != MAP_FAILED)) - xflags = MAP_FIXED; - else -@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah) - #include "../../intl/explodename.c" - #include "../../intl/l10nflist.c" - --static struct namehashent * -+struct namehashent * - insert_name (struct locarhandle *ah, - const char *name, size_t name_len, bool replace) - { -@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah, - return &namehashtab[idx]; - } - --static void -+void - add_alias (struct locarhandle *ah, const char *alias, bool replace, - const char *oldname, uint32_t *locrec_offset_p) - { ---- glibc-2.13/localedata/ChangeLog -+++ glibc-2.13-1/localedata/ChangeLog -@@ -1,3 +1,8 @@ -+2010-12-08 Andreas Schwab -+ -+ * SUPPORTED: Remove .UTF-8 suffix from az_AZ, as_IN, tt_RU locale -+ names. -+ - 2010-05-17 Andreas Schwab - - * locales/es_CR (LC_ADDRESS): Fix character names in lang_ab. ---- glibc-2.13/localedata/Makefile -+++ glibc-2.13-1/localedata/Makefile -@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir - echo -n '...'; \ - input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ - $(LOCALEDEF) --alias-file=../intl/locale.alias \ -+ --no-archive \ - -i locales/$$input -c -f charmaps/$$charset \ - $(addprefix --prefix=,$(install_root)) $$locale; \ - echo ' done'; \ ---- glibc-2.13/localedata/SUPPORTED -+++ glibc-2.13-1/localedata/SUPPORTED -@@ -46,8 +46,8 @@ ar_TN.UTF-8/UTF-8 \ - ar_TN/ISO-8859-6 \ - ar_YE.UTF-8/UTF-8 \ - ar_YE/ISO-8859-6 \ --az_AZ.UTF-8/UTF-8 \ --as_IN.UTF-8/UTF-8 \ -+az_AZ/UTF-8 \ -+as_IN/UTF-8 \ - ast_ES.UTF-8/UTF-8 \ - ast_ES/ISO-8859-15 \ - be_BY.UTF-8/UTF-8 \ -@@ -85,6 +85,7 @@ cy_GB.UTF-8/UTF-8 \ - cy_GB/ISO-8859-14 \ - da_DK.UTF-8/UTF-8 \ - da_DK/ISO-8859-1 \ -+da_DK.ISO-8859-15/ISO-8859-15 \ - de_AT.UTF-8/UTF-8 \ - de_AT/ISO-8859-1 \ - de_AT@euro/ISO-8859-15 \ -@@ -116,6 +117,7 @@ en_DK.UTF-8/UTF-8 \ - en_DK/ISO-8859-1 \ - en_GB.UTF-8/UTF-8 \ - en_GB/ISO-8859-1 \ -+en_GB.ISO-8859-15/ISO-8859-15 \ - en_HK.UTF-8/UTF-8 \ - en_HK/ISO-8859-1 \ - en_IE.UTF-8/UTF-8 \ -@@ -131,6 +133,7 @@ en_SG.UTF-8/UTF-8 \ - en_SG/ISO-8859-1 \ - en_US.UTF-8/UTF-8 \ - en_US/ISO-8859-1 \ -+en_US.ISO-8859-15/ISO-8859-15 \ - en_ZA.UTF-8/UTF-8 \ - en_ZA/ISO-8859-1 \ - en_ZW.UTF-8/UTF-8 \ -@@ -307,6 +310,8 @@ nl_NL/ISO-8859-1 \ - nl_NL@euro/ISO-8859-15 \ - nn_NO.UTF-8/UTF-8 \ - nn_NO/ISO-8859-1 \ -+no_NO.UTF-8/UTF-8 \ -+no_NO/ISO-8859-1 \ - nr_ZA/UTF-8 \ - nso_ZA/UTF-8 \ - oc_FR.UTF-8/UTF-8 \ -@@ -367,6 +372,7 @@ sv_FI/ISO-8859-1 \ - sv_FI@euro/ISO-8859-15 \ - sv_SE.UTF-8/UTF-8 \ - sv_SE/ISO-8859-1 \ -+sv_SE.ISO-8859-15/ISO-8859-15 \ - ta_IN/UTF-8 \ - te_IN/UTF-8 \ - tg_TJ.UTF-8/UTF-8 \ -@@ -385,8 +391,8 @@ tr_CY/ISO-8859-9 \ - tr_TR.UTF-8/UTF-8 \ - tr_TR/ISO-8859-9 \ - ts_ZA/UTF-8 \ --tt_RU.UTF-8/UTF-8 \ --tt_RU.UTF-8@iqtelif/UTF-8 \ -+tt_RU/UTF-8 \ -+tt_RU@iqtelif/UTF-8 \ - ug_CN/UTF-8 \ - uk_UA.UTF-8/UTF-8 \ - uk_UA/KOI8-U \ ---- glibc-2.13/localedata/locales/cy_GB -+++ glibc-2.13-1/localedata/locales/cy_GB -@@ -248,8 +248,11 @@ mon "";/ - d_t_fmt "" - d_fmt "" - t_fmt "" --am_pm "";"" --t_fmt_ampm "" -+am_pm "";"" -+t_fmt_ampm "" -+date_fmt "/ -+/ -+" - END LC_TIME - - LC_MESSAGES ---- glibc-2.13/localedata/locales/en_GB -+++ glibc-2.13-1/localedata/locales/en_GB -@@ -116,8 +116,8 @@ mon "";/ - d_t_fmt "" - d_fmt "" - t_fmt "" --am_pm "";"" --t_fmt_ampm "" -+am_pm "";"" -+t_fmt_ampm "" - date_fmt "/ - / - " ---- glibc-2.13/localedata/locales/no_NO -+++ glibc-2.13-1/localedata/locales/no_NO -@@ -0,0 +1,69 @@ -+escape_char / -+comment_char % -+ -+% Norwegian language locale for Norway -+% Source: Norsk Standardiseringsforbund -+% Address: University Library, -+% Drammensveien 41, N-9242 Oslo, Norge -+% Contact: Kolbjoern Aamboe -+% Tel: +47 - 22859109 -+% Fax: +47 - 22434497 -+% Email: kolbjorn.aambo@usit.uio.no -+% Language: no -+% Territory: NO -+% Revision: 4.3 -+% Date: 1996-10-15 -+% Application: general -+% Users: general -+% Repertoiremap: mnemonic.ds -+% Charset: ISO-8859-1 -+% Distribution and use is free, also -+% for commercial purposes. -+ -+LC_IDENTIFICATION -+copy "nb_NO" -+END LC_IDENTIFICATION -+ -+LC_COLLATE -+copy "nb_NO" -+END LC_COLLATE -+ -+LC_CTYPE -+copy "nb_NO" -+END LC_CTYPE -+ -+LC_MONETARY -+copy "nb_NO" -+END LC_MONETARY -+ -+LC_NUMERIC -+copy "nb_NO" -+END LC_NUMERIC -+ -+LC_TIME -+copy "nb_NO" -+END LC_TIME -+ -+LC_MESSAGES -+copy "nb_NO" -+END LC_MESSAGES -+ -+LC_PAPER -+copy "nb_NO" -+END LC_PAPER -+ -+LC_TELEPHONE -+copy "nb_NO" -+END LC_TELEPHONE -+ -+LC_MEASUREMENT -+copy "nb_NO" -+END LC_MEASUREMENT -+ -+LC_NAME -+copy "nb_NO" -+END LC_NAME -+ -+LC_ADDRESS -+copy "nb_NO" -+END LC_ADDRESS ---- glibc-2.13/localedata/locales/zh_TW -+++ glibc-2.13-1/localedata/locales/zh_TW -@@ -1,7 +1,7 @@ - comment_char % - escape_char / - % --% Chinese language locale for Taiwan R.O.C. -+% Chinese language locale for Taiwan - % charmap: BIG5-CP950 - % - % Original Author: -@@ -17,7 +17,7 @@ escape_char / - % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf - - LC_IDENTIFICATION --title "Chinese locale for Taiwan R.O.C." -+title "Chinese locale for Taiwan" - source "" - address "" - contact "" -@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org" - tel "" - fax "" - language "Chinese" --territory "Taiwan R.O.C." -+territory "Taiwan" - revision "0.2" - date "2000-08-02" - % ---- glibc-2.13/malloc/mcheck.c -+++ glibc-2.13-1/malloc/mcheck.c -@@ -25,10 +25,26 @@ - # include - # include - # include -+# include - # include - # include - #endif - -+#ifdef _LIBC -+extern __typeof (malloc) __libc_malloc; -+extern __typeof (free) __libc_free; -+extern __typeof (realloc) __libc_realloc; -+libc_hidden_proto (__libc_malloc) -+libc_hidden_proto (__libc_realloc) -+libc_hidden_proto (__libc_free) -+libc_hidden_proto (__libc_memalign) -+#else -+# define __libc_malloc(sz) malloc (sz) -+# define __libc_free(ptr) free (ptr) -+# define __libc_realloc(ptr, sz) realloc (ptr, sz) -+# define __libc_memalign(al, sz) memalign (al, sz) -+#endif -+ - /* Old hook values. */ - static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t); - static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t); -@@ -199,7 +215,7 @@ freehook (__ptr_t ptr, const __ptr_t caller) - if (old_free_hook != NULL) - (*old_free_hook) (ptr, caller); - else -- free (ptr); -+ __libc_free (ptr); - __free_hook = freehook; - } - -@@ -222,7 +238,7 @@ mallochook (__malloc_size_t size, const __ptr_t caller) - hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1, - caller); - else -- hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1); -+ hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1); - __malloc_hook = mallochook; - if (hdr == NULL) - return NULL; -@@ -259,7 +275,7 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size, - if (old_memalign_hook != NULL) - block = (*old_memalign_hook) (alignment, slop + size + 1, caller); - else -- block = memalign (alignment, slop + size + 1); -+ block = __libc_memalign (alignment, slop + size + 1); - __memalign_hook = memalignhook; - if (block == NULL) - return NULL; -@@ -320,8 +336,8 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller) - sizeof (struct hdr) + size + 1, - caller); - else -- hdr = (struct hdr *) realloc ((__ptr_t) hdr, -- sizeof (struct hdr) + size + 1); -+ hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr, -+ sizeof (struct hdr) + size + 1); - __free_hook = freehook; - __malloc_hook = mallochook; - __memalign_hook = memalignhook; -@@ -381,8 +397,8 @@ mcheck (func) - if (__malloc_initialized <= 0 && !mcheck_used) - { - /* We call malloc() once here to ensure it is initialized. */ -- void *p = malloc (0); -- free (p); -+ void *p = __libc_malloc (0); -+ __libc_free (p); - - old_free_hook = __free_hook; - __free_hook = freehook; ---- glibc-2.13/manual/libc.texinfo -+++ glibc-2.13-1/manual/libc.texinfo -@@ -5,7 +5,7 @@ - @c setchapternewpage odd - - @comment Tell install-info what to do. --@dircategory Software libraries -+@dircategory Libraries - @direntry - * Libc: (libc). C library. - @end direntry ---- glibc-2.13/misc/sys/cdefs.h -+++ glibc-2.13-1/misc/sys/cdefs.h -@@ -132,7 +132,10 @@ - #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) - #define __bos0(ptr) __builtin_object_size (ptr, 0) - --#if __GNUC_PREREQ (4,3) -+#if __GNUC_PREREQ (4,3) \ -+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ -+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ -+ && __GNUC_RH_RELEASE__ >= 31) - # define __warndecl(name, msg) \ - extern void name (void) __attribute__((__warning__ (msg))) - # define __warnattr(msg) __attribute__((__warning__ (msg))) -@@ -291,10 +294,16 @@ - - /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. */ --#if !defined __cplusplus || __GNUC_PREREQ (4,3) -+#if !defined __cplusplus || __GNUC_PREREQ (4,3) \ -+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ -+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ -+ && __GNUC_RH_RELEASE__ >= 31) - # if defined __GNUC_STDC_INLINE__ || defined __cplusplus - # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) --# if __GNUC_PREREQ (4,3) -+# if __GNUC_PREREQ (4,3) \ -+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ -+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ -+ && __GNUC_RH_RELEASE__ >= 31) - # define __extern_always_inline \ - extern __always_inline __attribute__ ((__gnu_inline__, __artificial__)) - # else -@@ -314,7 +323,10 @@ - - /* GCC 4.3 and above allow passing all anonymous arguments of an - __extern_always_inline function to some other vararg function. */ --#if __GNUC_PREREQ (4,3) -+#if __GNUC_PREREQ (4,3) \ -+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ -+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ -+ && __GNUC_RH_RELEASE__ >= 31) - # define __va_arg_pack() __builtin_va_arg_pack () - # define __va_arg_pack_len() __builtin_va_arg_pack_len () - #endif ---- glibc-2.13/nis/Makefile -+++ glibc-2.13-1/nis/Makefile -@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) - - include ../Rules - -+CFLAGS-nis_findserv.c = -fno-strict-aliasing -+CFLAGS-ypclnt.c = -fno-strict-aliasing - - $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) - $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ ---- glibc-2.13/nis/nss -+++ glibc-2.13-1/nis/nss -@@ -25,7 +25,7 @@ - # memory with every getXXent() call. Otherwise each getXXent() call - # might result into a network communication with the server to get - # the next entry. --#SETENT_BATCH_READ=TRUE -+SETENT_BATCH_READ=TRUE - # - # ADJUNCT_AS_SHADOW - # If set to TRUE, the passwd routines in the NIS NSS module will not ---- glibc-2.13/nptl/ChangeLog -+++ glibc-2.13-1/nptl/ChangeLog -@@ -3982,6 +3982,15 @@ - Use __sigfillset. Document that sigfillset does the right thing wrt - to SIGSETXID. - -+2005-08-08 Jakub Jelinek -+ -+ * tst-stackguard1.c (do_test): Likewise. -+ -+2005-07-29 Jakub Jelinek -+ -+ * tst-stackguard1.c (do_test): Don't fail if the poor man's -+ randomization doesn't work well enough. -+ - 2005-07-11 Jakub Jelinek - - [BZ #1102] -@@ -4718,6 +4727,11 @@ - Move definition inside libpthread, libc, librt check. Provide - definition for rtld. - -+2004-09-02 Jakub Jelinek -+ -+ * pthread_cond_destroy.c (__pthread_cond_destroy): If there are -+ waiters, awake all waiters on the associated mutex. -+ - 2004-09-02 Ulrich Drepper - - * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. -@@ -6792,6 +6806,11 @@ - - * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). - -+2003-07-22 Jakub Jelinek -+ -+ * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h -+ if __need_struct_pthread_size, instead define lll_lock_t. -+ - 2003-07-25 Jakub Jelinek - - * tst-cancel17.c (do_test): Check if aio_cancel failed. ---- glibc-2.13/nptl/Makefile -+++ glibc-2.13-1/nptl/Makefile -@@ -342,7 +342,8 @@ endif - extra-objs += $(crti-objs) $(crtn-objs) - omit-deps += crti crtn - --CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -+CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ -+ -fno-asynchronous-unwind-tables - endif - - CFLAGS-flockfile.c = -D_IO_MTSAFE_IO -@@ -529,15 +530,19 @@ $(addprefix $(objpfx), \ - $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ - $(objpfx)libpthread_nonshared.a - $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so --# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so, -+# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so, - # since otherwise libpthread.so comes before libc.so when linking. - $(addprefix $(objpfx), $(tests-reverse)): \ -- $(objpfx)../libc.so $(objpfx)libpthread.so \ -+ $(objpfx)linklibc.so $(objpfx)libpthread.so \ - $(objpfx)libpthread_nonshared.a - $(objpfx)../libc.so: $(common-objpfx)libc.so ; - $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a - - $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so -+ -+$(objpfx)linklibc.so: $(common-objpfx)libc.so -+ ln -s ../libc.so $@ -+generated += libclink.so - else - $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a - endif ---- glibc-2.13/nptl/Versions -+++ glibc-2.13-1/nptl/Versions -@@ -30,6 +30,7 @@ libc { - __libc_alloca_cutoff; - # Internal libc interface to libpthread - __libc_dl_error_tsd; -+ __getrlimit; - } - } - ---- glibc-2.13/nptl/allocatestack.c -+++ glibc-2.13-1/nptl/allocatestack.c -@@ -994,7 +994,16 @@ setxid_mark_thread (struct xid_command *cmdp, struct pthread *t) - - /* If the thread is exiting right now, ignore it. */ - if ((ch & EXITING_BITMASK) != 0) -- return; -+ { -+ /* Release the futex if there is no other setxid in -+ progress. */ -+ if ((ch & SETXID_BITMASK) == 0) -+ { -+ t->setxid_futex = 1; -+ lll_futex_wake (&t->setxid_futex, 1, LLL_PRIVATE); -+ } -+ return; -+ } - } - while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling, - ch | SETXID_BITMASK, ch)); ---- glibc-2.13/nptl/nptl-init.c -+++ glibc-2.13-1/nptl/nptl-init.c -@@ -396,7 +396,7 @@ __pthread_initialize_minimal_internal (void) - /* Determine the default allowed stack size. This is the size used - in case the user does not specify one. */ - struct rlimit limit; -- if (getrlimit (RLIMIT_STACK, &limit) != 0 -+ if (__getrlimit (RLIMIT_STACK, &limit) != 0 - || limit.rlim_cur == RLIM_INFINITY) - /* The system limit is not usable. Use an architecture-specific - default. */ ---- glibc-2.13/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h -+++ glibc-2.13-1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h -@@ -189,4 +189,7 @@ - /* Typed memory objects are not available. */ - #define _POSIX_TYPED_MEMORY_OBJECTS -1 - -+/* Streams are not available. */ -+#define _XOPEN_STREAMS -1 -+ - #endif /* bits/posix_opt.h */ ---- glibc-2.13/nptl/sysdeps/unix/sysv/linux/i386/Versions -+++ glibc-2.13-1/nptl/sysdeps/unix/sysv/linux/i386/Versions -@@ -0,0 +1,6 @@ -+libc { -+ GLIBC_PRIVATE { -+ # Internal libc interface to libpthread -+ __uname; -+ } -+} ---- glibc-2.13/nptl/sysdeps/unix/sysv/linux/i386/smp.h -+++ glibc-2.13-1/nptl/sysdeps/unix/sysv/linux/i386/smp.h -@@ -37,7 +37,7 @@ is_smp_system (void) - char *cp; - - /* Try reading the number using `sysctl' first. */ -- if (uname (&u.uts) == 0) -+ if (__uname (&u.uts) == 0) - cp = u.uts.version; - else - { ---- glibc-2.13/nptl/sysdeps/unix/sysv/linux/kernel-features.h -+++ glibc-2.13-1/nptl/sysdeps/unix/sysv/linux/kernel-features.h -@@ -0,0 +1,6 @@ -+#include_next -+ -+/* NPTL can always assume all clone thread flags work. */ -+#ifndef __ASSUME_CLONE_THREAD_FLAGS -+# define __ASSUME_CLONE_THREAD_FLAGS 1 -+#endif ---- glibc-2.13/nptl/tst-stackguard1.c -+++ glibc-2.13-1/nptl/tst-stackguard1.c -@@ -190,17 +190,21 @@ do_test (void) - the 16 runs, something is very wrong. */ - int ndifferences = 0; - int ndefaults = 0; -+ int npartlyrandomized = 0; - for (i = 0; i < N; ++i) - { - if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) - ndifferences++; - else if (child_stack_chk_guards[i] == default_guard) - ndefaults++; -+ else if (*(char *) &child_stack_chk_guards[i] == 0) -+ npartlyrandomized++; - } - -- printf ("differences %d defaults %d\n", ndifferences, ndefaults); -+ printf ("differences %d defaults %d partly randomized %d\n", -+ ndifferences, ndefaults, npartlyrandomized); - -- if (ndifferences < N / 2 && ndefaults < N / 2) -+ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) - { - puts ("stack guard canaries are not randomized enough"); - puts ("nor equal to the default canary value"); ---- glibc-2.13/nscd/nscd.conf -+++ glibc-2.13-1/nscd/nscd.conf -@@ -33,7 +33,7 @@ - # logfile /var/log/nscd.log - # threads 4 - # max-threads 32 --# server-user nobody -+ server-user nscd - # stat-user somebody - debug-level 0 - # reload-count 5 ---- glibc-2.13/nscd/nscd.init -+++ glibc-2.13-1/nscd/nscd.init -@@ -9,6 +9,7 @@ - # slow naming services like NIS, NIS+, LDAP, or hesiod. - # processname: /usr/sbin/nscd - # config: /etc/nscd.conf -+# config: /etc/sysconfig/nscd - # - ### BEGIN INIT INFO - # Provides: nscd -@@ -28,20 +29,8 @@ - # Source function library. - . /etc/init.d/functions - --# nscd does not run on any kernel lower than 2.2.0 because of threading --# problems, so we require that in first place. --case $(uname -r) in -- 2.[2-9].*) -- # this is okay -- ;; -- [3-9]*) -- # these are of course also okay -- ;; -- *) -- #this is not -- exit 1 -- ;; --esac -+# Source an auxiliary options file if we have one, and pick up NSCD_OPTIONS. -+[ -r /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd - - RETVAL=0 - prog=nscd -@@ -50,7 +39,7 @@ start () { - [ -d /var/run/nscd ] || mkdir /var/run/nscd - [ -d /var/db/nscd ] || mkdir /var/db/nscd - echo -n $"Starting $prog: " -- daemon /usr/sbin/nscd -+ daemon /usr/sbin/nscd $NSCD_OPTIONS - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd -@@ -83,11 +72,11 @@ restart() { - # See how we were called. - case "$1" in - start) -- start -+ [ -e /var/lock/subsys/nscd ] || start - RETVAL=$? - ;; - stop) -- stop -+ [ ! -e /var/lock/subsys/nscd ] || stop - RETVAL=$? - ;; - status) -@@ -99,14 +88,17 @@ case "$1" in - RETVAL=$? - ;; - try-restart | condrestart) -- [ -e /var/lock/subsys/nscd ] && restart -+ [ ! -e /var/lock/subsys/nscd ] || restart - RETVAL=$? - ;; - force-reload | reload) - echo -n $"Reloading $prog: " -- killproc /usr/sbin/nscd -HUP -- RETVAL=$? -- echo -+ RETVAL=0 -+ /usr/sbin/nscd -i passwd || RETVAL=$? -+ /usr/sbin/nscd -i group || RETVAL=$? -+ /usr/sbin/nscd -i hosts || RETVAL=$? -+ /usr/sbin/nscd -i services || RETVAL=$? -+ echo - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" ---- glibc-2.13/nss/Makefile -+++ glibc-2.13-1/nss/Makefile -@@ -75,6 +75,7 @@ endif - - include ../Rules - -+CFLAGS-files-hosts.c = -fno-strict-aliasing - - ifeq (yes,$(build-static-nss)) - $(objpfx)getent: $(objpfx)libnss_files.a ---- glibc-2.13/nss/nss_files/files-XXX.c -+++ glibc-2.13-1/nss/nss_files/files-XXX.c -@@ -1,5 +1,5 @@ - /* Common code for file-based databases in nss_files module. -- Copyright (C) 1996-1999,2001,2002,2004,2007,2008 -+ Copyright (C) 1996-1999,2001,2002,2004,2007,2008,2010 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - -@@ -190,7 +190,7 @@ internal_getent (struct STRUCTURE *result, - { - char *p; - struct parser_data *data = (void *) buffer; -- int linebuflen = buffer + buflen - data->linebuffer; -+ size_t linebuflen = buffer + buflen - data->linebuffer; - int parse_result; - - if (buflen < sizeof *data + 2) ---- glibc-2.13/posix/Makefile -+++ glibc-2.13-1/posix/Makefile -@@ -325,15 +325,8 @@ $(inst_libexecdir)/getconf: $(inst_bindir)/getconf \ - mv -f $@/$$spec.new $@/$$spec; \ - done < $(objpfx)getconf.speclist - --$(objpfx)getconf.speclist: $(objpfx)getconf --ifeq (no,$(cross-compiling)) -- LC_ALL=C GETCONF_DIR=/dev/null \ -- $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new -- LC_ALL=C GETCONF_DIR=/dev/null \ -- $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new -- LC_ALL=C GETCONF_DIR=/dev/null \ -- $(run-program-prefix) $< _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new --else -- > $@.new --endif -+$(objpfx)getconf.speclist: getconf.speclist.h -+ $(CC) -E $(CFLAGS) $(CPPFLAGS) $< \ -+ | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \ -+ > $@.new - mv -f $@.new $@ ---- glibc-2.13/posix/gai.conf -+++ glibc-2.13-1/posix/gai.conf -@@ -41,7 +41,7 @@ - # - # precedence - # Add another rule to the RFC 3484 precedence table. See section 2.1 --# and 10.3 in RFC 3484. The default is: -+# and 10.3 in RFC 3484. The RFC requires: - # - #precedence ::1/128 50 - #precedence ::/0 40 -@@ -58,7 +58,7 @@ - # Add another rule to the RFC 3484 scope table for IPv4 addresses. - # By default the scope IDs described in section 3.2 in RFC 3484 are - # used. Changing these defaults should hardly ever be necessary. --# The defaults are equivalent to: -+# The definitions in RFC 1918 are equivalent to: - # - #scopev4 ::ffff:169.254.0.0/112 2 - #scopev4 ::ffff:127.0.0.0/104 2 -@@ -75,3 +75,5 @@ - #scopev4 ::ffff:169.254.0.0/112 2 - #scopev4 ::ffff:127.0.0.0/104 2 - #scopev4 ::ffff:0.0.0.0/96 14 -+# -+# This is what the Red Hat setting currently uses. ---- glibc-2.13/posix/getconf.speclist.h -+++ glibc-2.13-1/posix/getconf.speclist.h -@@ -0,0 +1,39 @@ -+#include -+const char *START_OF_STRINGS = -+#if _POSIX_V7_ILP32_OFF32 == 1 -+"POSIX_V7_ILP32_OFF32" -+#endif -+#if _POSIX_V7_ILP32_OFFBIG == 1 -+"POSIX_V7_ILP32_OFFBIG" -+#endif -+#if _POSIX_V7_LP64_OFF64 == 1 -+"POSIX_V7_LP64_OFF64" -+#endif -+#if _POSIX_V7_LPBIG_OFFBIG == 1 -+"POSIX_V7_LPBIG_OFFBIG" -+#endif -+#if _POSIX_V6_ILP32_OFF32 == 1 -+"POSIX_V6_ILP32_OFF32" -+#endif -+#if _POSIX_V6_ILP32_OFFBIG == 1 -+"POSIX_V6_ILP32_OFFBIG" -+#endif -+#if _POSIX_V6_LP64_OFF64 == 1 -+"POSIX_V6_LP64_OFF64" -+#endif -+#if _POSIX_V6_LPBIG_OFFBIG == 1 -+"POSIX_V6_LPBIG_OFFBIG" -+#endif -+#if _XBS5_ILP32_OFF32 == 1 -+"XBS5_ILP32_OFF32" -+#endif -+#if _XBS5_ILP32_OFFBIG == 1 -+"XBS5_ILP32_OFFBIG" -+#endif -+#if _XBS5_LP64_OFF64 == 1 -+"XBS5_LP64_OFF64" -+#endif -+#if _XBS5_LPBIG_OFFBIG == 1 -+"XBS5_LPBIG_OFFBIG" -+#endif -+""; ---- glibc-2.13/posix/regcomp.c -+++ glibc-2.13-1/posix/regcomp.c -@@ -2745,40 +2745,29 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - - /* Local function for parse_bracket_exp used in _LIBC environement. - Seek the collating symbol entry correspondings to NAME. -- Return the index of the symbol in the SYMB_TABLE. */ -+ Return the index of the symbol in the SYMB_TABLE, -+ or -1 if not found. */ - - auto inline int32_t - __attribute ((always_inline)) -- seek_collating_symbol_entry (name, name_len) -- const unsigned char *name; -- size_t name_len; -+ seek_collating_symbol_entry (const unsigned char *name, size_t name_len) - { -- int32_t hash = elem_hash ((const char *) name, name_len); -- int32_t elem = hash % table_size; -- if (symb_table[2 * elem] != 0) -- { -- int32_t second = hash % (table_size - 2) + 1; -- -- do -- { -- /* First compare the hashing value. */ -- if (symb_table[2 * elem] == hash -- /* Compare the length of the name. */ -- && name_len == extra[symb_table[2 * elem + 1]] -- /* Compare the name. */ -- && memcmp (name, &extra[symb_table[2 * elem + 1] + 1], -- name_len) == 0) -- { -- /* Yep, this is the entry. */ -- break; -- } -+ int32_t elem; - -- /* Next entry. */ -- elem += second; -- } -- while (symb_table[2 * elem] != 0); -- } -- return elem; -+ for (elem = 0; elem < table_size; elem++) -+ if (symb_table[2 * elem] != 0) -+ { -+ int32_t idx = symb_table[2 * elem + 1]; -+ /* Skip the name of collating element name. */ -+ idx += 1 + extra[idx]; -+ if (/* Compare the length of the name. */ -+ name_len == extra[idx] -+ /* Compare the name. */ -+ && memcmp (name, &extra[idx + 1], name_len) == 0) -+ /* Yep, this is the entry. */ -+ return elem; -+ } -+ return -1; - } - - /* Local function for parse_bracket_exp used in _LIBC environment. -@@ -2787,8 +2776,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - - auto inline unsigned int - __attribute ((always_inline)) -- lookup_collation_sequence_value (br_elem) -- bracket_elem_t *br_elem; -+ lookup_collation_sequence_value (bracket_elem_t *br_elem) - { - if (br_elem->type == SB_CHAR) - { -@@ -2816,7 +2804,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - int32_t elem, idx; - elem = seek_collating_symbol_entry (br_elem->opr.name, - sym_name_len); -- if (symb_table[2 * elem] != 0) -+ if (elem != -1) - { - /* We found the entry. */ - idx = symb_table[2 * elem + 1]; -@@ -2834,7 +2822,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - /* Return the collation sequence value. */ - return *(unsigned int *) (extra + idx); - } -- else if (symb_table[2 * elem] == 0 && sym_name_len == 1) -+ else if (sym_name_len == 1) - { - /* No valid character. Match it as a single byte - character. */ -@@ -2856,11 +2844,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - - auto inline reg_errcode_t - __attribute ((always_inline)) -- build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem) -- re_charset_t *mbcset; -- int *range_alloc; -- bitset_t sbcset; -- bracket_elem_t *start_elem, *end_elem; -+ build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, -+ bracket_elem_t *start_elem, bracket_elem_t *end_elem) - { - unsigned int ch; - uint32_t start_collseq; -@@ -2939,25 +2924,22 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - - auto inline reg_errcode_t - __attribute ((always_inline)) -- build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name) -- re_charset_t *mbcset; -- int *coll_sym_alloc; -- bitset_t sbcset; -- const unsigned char *name; -+ build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, -+ int *coll_sym_alloc, const unsigned char *name) - { - int32_t elem, idx; - size_t name_len = strlen ((const char *) name); - if (nrules != 0) - { - elem = seek_collating_symbol_entry (name, name_len); -- if (symb_table[2 * elem] != 0) -+ if (elem != -1) - { - /* We found the entry. */ - idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - } -- else if (symb_table[2 * elem] == 0 && name_len == 1) -+ else if (name_len == 1) - { - /* No valid character, treat it as a normal - character. */ ---- glibc-2.13/resolv/Makefile -+++ glibc-2.13-1/resolv/Makefile -@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostbyname \ - -Dgetnetbyaddr=res_getnetbyaddr - - CFLAGS-res_hconf.c = -fexceptions -+CFLAGS-res_send.c = -fno-strict-aliasing - - # The BIND code elicits some harmless warnings. - +cflags += -Wno-strict-prototypes -Wno-write-strings ---- glibc-2.13/resource/getrlimit.c -+++ glibc-2.13-1/resource/getrlimit.c -@@ -28,6 +28,7 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) - __set_errno (ENOSYS); - return -1; - } -+libc_hidden_def (__getrlimit) - weak_alias (__getrlimit, getrlimit) - - stub_warning (getrlimit) ---- glibc-2.13/stdio-common/vfprintf.c -+++ glibc-2.13-1/stdio-common/vfprintf.c -@@ -1160,41 +1160,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) - else if (!is_long && spec != L_('S')) \ - { \ - if (prec != -1) \ -- { \ -- /* Search for the end of the string, but don't search past \ -- the length (in bytes) specified by the precision. Also \ -- don't use incomplete characters. */ \ -- if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX) == 1) \ -- len = __strnlen (string, prec); \ -- else \ -- { \ -- /* In case we have a multibyte character set the \ -- situation is more complicated. We must not copy \ -- bytes at the end which form an incomplete character. */\ -- size_t ignore_size = (unsigned) prec > 1024 ? 1024 : prec;\ -- wchar_t ignore[ignore_size]; \ -- const char *str2 = string; \ -- const char *strend = string + prec; \ -- if (strend < string) \ -- strend = (const char *) UINTPTR_MAX; \ -- \ -- mbstate_t ps; \ -- memset (&ps, '\0', sizeof (ps)); \ -- \ -- while (str2 != NULL && str2 < strend) \ -- if (__mbsnrtowcs (ignore, &str2, strend - str2, \ -- ignore_size, &ps) == (size_t) -1) \ -- { \ -- done = -1; \ -- goto all_done; \ -- } \ -- \ -- if (str2 == NULL) \ -- len = strlen (string); \ -- else \ -- len = str2 - string - (ps.__count & 7); \ -- } \ -- } \ -+ /* Search for the end of the string, but don't search past \ -+ the length (in bytes) specified by the precision. */ \ -+ len = __strnlen (string, prec); \ - else \ - len = strlen (string); \ - } \ ---- glibc-2.13/streams/Makefile -+++ glibc-2.13-1/streams/Makefile -@@ -21,7 +21,7 @@ - # - subdir := streams - --headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h -+#headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h - routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach - - include ../Rules ---- glibc-2.13/sunrpc/Makefile -+++ glibc-2.13-1/sunrpc/Makefile -@@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions - - CPPFLAGS += -D_RPC_THREAD_SAFE_ - -+CFLAGS-clnt_tcp.c = -fno-strict-aliasing -+CFLAGS-clnt_udp.c = -fno-strict-aliasing -+CFLAGS-clnt_unix.c = -fno-strict-aliasing -+ - include ../Rules - - $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ ---- glibc-2.13/sysdeps/generic/dl-cache.h -+++ glibc-2.13-1/sysdeps/generic/dl-cache.h -@@ -36,6 +36,14 @@ - # define add_system_dir(dir) add_dir (dir) - #endif - -+#ifndef arch_startup -+# define arch_startup(argc, argv) do { } while (0) -+#endif -+ -+#ifndef add_arch_dirs -+# define add_arch_dirs(config_file) do { } while (0) -+#endif -+ - #define CACHEMAGIC "ld.so-1.7.0" - - /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another ---- glibc-2.13/sysdeps/i386/Makefile -+++ glibc-2.13-1/sysdeps/i386/Makefile -@@ -2,6 +2,8 @@ - # Every i386 port in use uses gas syntax (I think). - asm-CPPFLAGS += -DGAS_SYNTAX - -+sysdep-ASFLAGS += -U__i686 -+ - # The i386 `long double' is a distinct type we support. - long-double-fcts = yes - -@@ -65,6 +67,14 @@ endif - - ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS))) - defines += -DNO_TLS_DIRECT_SEG_REFS -+else -+# .a libraries are not performance critical and so we -+# build them without direct TLS segment references -+# always. -+CPPFLAGS-.o += -DNO_TLS_DIRECT_SEG_REFS -+CFLAGS-.o += -mno-tls-direct-seg-refs -+CPPFLAGS-.oS += -DNO_TLS_DIRECT_SEG_REFS -+CFLAGS-.oS += -mno-tls-direct-seg-refs - endif - - ifeq ($(subdir),elf) ---- glibc-2.13/sysdeps/i386/i686/Makefile -+++ glibc-2.13-1/sysdeps/i386/i686/Makefile -@@ -9,19 +9,3 @@ stack-align-test-flags += -msse - ifeq ($(subdir),string) - sysdep_routines += cacheinfo - endif -- --ifeq (yes,$(config-asflags-i686)) --CFLAGS-.o += -Wa,-mtune=i686 --CFLAGS-.os += -Wa,-mtune=i686 --CFLAGS-.op += -Wa,-mtune=i686 --CFLAGS-.og += -Wa,-mtune=i686 --CFLAGS-.ob += -Wa,-mtune=i686 --CFLAGS-.oS += -Wa,-mtune=i686 -- --ASFLAGS-.o += -Wa,-mtune=i686 --ASFLAGS-.os += -Wa,-mtune=i686 --ASFLAGS-.op += -Wa,-mtune=i686 --ASFLAGS-.og += -Wa,-mtune=i686 --ASFLAGS-.ob += -Wa,-mtune=i686 --ASFLAGS-.oS += -Wa,-mtune=i686 --endif ---- glibc-2.13/sysdeps/i386/i686/multiarch/strspn.S -+++ glibc-2.13-1/sysdeps/i386/i686/multiarch/strspn.S -@@ -76,8 +76,8 @@ END(strspn) - # define ENTRY(name) \ - .type __strspn_ia32, @function; \ - .globl __strspn_ia32; \ -- .p2align 4 -- __strspn_ia32: cfi_startproc; \ -+ .p2align 4; \ -+__strspn_ia32: cfi_startproc; \ - CALL_MCOUNT - # undef END - # define END(name) \ ---- glibc-2.13/sysdeps/ia64/Makefile -+++ glibc-2.13-1/sysdeps/ia64/Makefile -@@ -12,8 +12,8 @@ elide-routines.os += hp-timing - - ifeq (yes,$(build-shared)) - # Compatibility --sysdep_routines += ia64libgcc --shared-only-routines += ia64libgcc -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat - endif - endif - ---- glibc-2.13/sysdeps/ia64/ia64libgcc.S -+++ glibc-2.13-1/sysdeps/ia64/ia64libgcc.S -@@ -1,350 +0,0 @@ --/* From the Intel IA-64 Optimization Guide, choose the minimum latency -- alternative. */ -- --#include --#undef ret -- --#include -- --#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) -- --/* __divtf3 -- Compute a 80-bit IEEE double-extended quotient. -- farg0 holds the dividend. farg1 holds the divisor. */ -- --ENTRY(___divtf3) -- cmp.eq p7, p0 = r0, r0 -- frcpa.s0 f10, p6 = farg0, farg1 -- ;; --(p6) cmp.ne p7, p0 = r0, r0 -- .pred.rel.mutex p6, p7 --(p6) fnma.s1 f11 = farg1, f10, f1 --(p6) fma.s1 f12 = farg0, f10, f0 -- ;; --(p6) fma.s1 f13 = f11, f11, f0 --(p6) fma.s1 f14 = f11, f11, f11 -- ;; --(p6) fma.s1 f11 = f13, f13, f11 --(p6) fma.s1 f13 = f14, f10, f10 -- ;; --(p6) fma.s1 f10 = f13, f11, f10 --(p6) fnma.s1 f11 = farg1, f12, farg0 -- ;; --(p6) fma.s1 f11 = f11, f10, f12 --(p6) fnma.s1 f12 = farg1, f10, f1 -- ;; --(p6) fma.s1 f10 = f12, f10, f10 --(p6) fnma.s1 f12 = farg1, f11, farg0 -- ;; --(p6) fma.s0 fret0 = f12, f10, f11 --(p7) mov fret0 = f10 -- br.ret.sptk rp --END(___divtf3) -- .symver ___divtf3, __divtf3@GLIBC_2.2 -- --/* __divdf3 -- Compute a 64-bit IEEE double quotient. -- farg0 holds the dividend. farg1 holds the divisor. */ -- --ENTRY(___divdf3) -- cmp.eq p7, p0 = r0, r0 -- frcpa.s0 f10, p6 = farg0, farg1 -- ;; --(p6) cmp.ne p7, p0 = r0, r0 -- .pred.rel.mutex p6, p7 --(p6) fmpy.s1 f11 = farg0, f10 --(p6) fnma.s1 f12 = farg1, f10, f1 -- ;; --(p6) fma.s1 f11 = f12, f11, f11 --(p6) fmpy.s1 f13 = f12, f12 -- ;; --(p6) fma.s1 f10 = f12, f10, f10 --(p6) fma.s1 f11 = f13, f11, f11 -- ;; --(p6) fmpy.s1 f12 = f13, f13 --(p6) fma.s1 f10 = f13, f10, f10 -- ;; --(p6) fma.d.s1 f11 = f12, f11, f11 --(p6) fma.s1 f10 = f12, f10, f10 -- ;; --(p6) fnma.d.s1 f8 = farg1, f11, farg0 -- ;; --(p6) fma.d fret0 = f8, f10, f11 --(p7) mov fret0 = f10 -- br.ret.sptk rp -- ;; --END(___divdf3) -- .symver ___divdf3, __divdf3@GLIBC_2.2 -- --/* __divsf3 -- Compute a 32-bit IEEE float quotient. -- farg0 holds the dividend. farg1 holds the divisor. */ -- --ENTRY(___divsf3) -- cmp.eq p7, p0 = r0, r0 -- frcpa.s0 f10, p6 = farg0, farg1 -- ;; --(p6) cmp.ne p7, p0 = r0, r0 -- .pred.rel.mutex p6, p7 --(p6) fmpy.s1 f8 = farg0, f10 --(p6) fnma.s1 f9 = farg1, f10, f1 -- ;; --(p6) fma.s1 f8 = f9, f8, f8 --(p6) fmpy.s1 f9 = f9, f9 -- ;; --(p6) fma.s1 f8 = f9, f8, f8 --(p6) fmpy.s1 f9 = f9, f9 -- ;; --(p6) fma.d.s1 f10 = f9, f8, f8 -- ;; --(p6) fnorm.s.s0 fret0 = f10 --(p7) mov fret0 = f10 -- br.ret.sptk rp -- ;; --END(___divsf3) -- .symver ___divsf3, __divsf3@GLIBC_2.2 -- --/* __divdi3 -- Compute a 64-bit integer quotient. -- in0 holds the dividend. in1 holds the divisor. */ -- --ENTRY(___divdi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f8 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, so that they won't be treated as -- unsigned. */ -- fcvt.xf f8 = f8 -- fcvt.xf f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fnma.s1 f11 = f9, f10, f1 --(p6) fmpy.s1 f12 = f8, f10 -- ;; --(p6) fmpy.s1 f13 = f11, f11 --(p6) fma.s1 f12 = f11, f12, f12 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- /* Round quotient to an integer. */ -- fcvt.fx.trunc.s1 f10 = f10 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___divdi3) -- .symver ___divdi3, __divdi3@GLIBC_2.2 -- --/* __moddi3 -- Compute a 64-bit integer modulus. -- in0 holds the dividend (a). in1 holds the divisor (b). */ -- --ENTRY(___moddi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f14 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, so that they won't be treated as -- unsigned. */ -- fcvt.xf f8 = f14 -- fcvt.xf f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fmpy.s1 f12 = f8, f10 --(p6) fnma.s1 f11 = f9, f10, f1 -- ;; --(p6) fma.s1 f12 = f11, f12, f12 --(p6) fmpy.s1 f13 = f11, f11 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; -- sub in1 = r0, in1 --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; -- setf.sig f9 = in1 --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- fcvt.fx.trunc.s1 f10 = f10 -- ;; -- /* r = q * (-b) + a */ -- xma.l f10 = f10, f9, f14 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___moddi3) -- .symver ___moddi3, __moddi3@GLIBC_2.2 -- --/* __udivdi3 -- Compute a 64-bit unsigned integer quotient. -- in0 holds the dividend. in1 holds the divisor. */ -- --ENTRY(___udivdi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f8 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, to avoid FP software-assist faults. */ -- fcvt.xuf.s1 f8 = f8 -- fcvt.xuf.s1 f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fnma.s1 f11 = f9, f10, f1 --(p6) fmpy.s1 f12 = f8, f10 -- ;; --(p6) fmpy.s1 f13 = f11, f11 --(p6) fma.s1 f12 = f11, f12, f12 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- /* Round quotient to an unsigned integer. */ -- fcvt.fxu.trunc.s1 f10 = f10 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___udivdi3) -- .symver ___udivdi3, __udivdi3@GLIBC_2.2 -- --/* __umoddi3 -- Compute a 64-bit unsigned integer modulus. -- in0 holds the dividend (a). in1 holds the divisor (b). */ -- --ENTRY(___umoddi3) -- .regstk 2,0,0,0 -- /* Transfer inputs to FP registers. */ -- setf.sig f14 = in0 -- setf.sig f9 = in1 -- ;; -- /* Convert the inputs to FP, to avoid FP software assist faults. */ -- fcvt.xuf.s1 f8 = f14 -- fcvt.xuf.s1 f9 = f9 -- ;; -- /* Compute the reciprocal approximation. */ -- frcpa.s1 f10, p6 = f8, f9 -- ;; -- /* 3 Newton-Raphson iterations. */ --(p6) fmpy.s1 f12 = f8, f10 --(p6) fnma.s1 f11 = f9, f10, f1 -- ;; --(p6) fma.s1 f12 = f11, f12, f12 --(p6) fmpy.s1 f13 = f11, f11 -- ;; --(p6) fma.s1 f10 = f11, f10, f10 --(p6) fma.s1 f11 = f13, f12, f12 -- ;; -- sub in1 = r0, in1 --(p6) fma.s1 f10 = f13, f10, f10 --(p6) fnma.s1 f12 = f9, f11, f8 -- ;; -- setf.sig f9 = in1 --(p6) fma.s1 f10 = f12, f10, f11 -- ;; -- /* Round quotient to an unsigned integer. */ -- fcvt.fxu.trunc.s1 f10 = f10 -- ;; -- /* r = q * (-b) + a */ -- xma.l f10 = f10, f9, f14 -- ;; -- /* Transfer result to GP registers. */ -- getf.sig ret0 = f10 -- br.ret.sptk rp -- ;; --END(___umoddi3) -- .symver ___umoddi3, __umoddi3@GLIBC_2.2 -- --/* __multi3 -- Compute a 128-bit multiply of 128-bit multiplicands. -- in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b). */ -- --ENTRY(___multi3) -- .regstk 4,0,0,0 -- setf.sig f6 = in1 -- movl r19 = 0xffffffff -- setf.sig f7 = in2 -- ;; -- and r14 = r19, in0 -- ;; -- setf.sig f10 = r14 -- and r14 = r19, in2 -- xmpy.l f9 = f6, f7 -- ;; -- setf.sig f6 = r14 -- shr.u r14 = in0, 32 -- ;; -- setf.sig f7 = r14 -- shr.u r14 = in2, 32 -- ;; -- setf.sig f8 = r14 -- xmpy.l f11 = f10, f6 -- xmpy.l f6 = f7, f6 -- ;; -- getf.sig r16 = f11 -- xmpy.l f7 = f7, f8 -- ;; -- shr.u r14 = r16, 32 -- and r16 = r19, r16 -- getf.sig r17 = f6 -- setf.sig f6 = in0 -- ;; -- setf.sig f11 = r14 -- getf.sig r21 = f7 -- setf.sig f7 = in3 -- ;; -- xma.l f11 = f10, f8, f11 -- xma.l f6 = f6, f7, f9 -- ;; -- getf.sig r18 = f11 -- ;; -- add r18 = r18, r17 -- ;; -- and r15 = r19, r18 -- cmp.ltu p7, p6 = r18, r17 -- ;; -- getf.sig r22 = f6 --(p7) adds r14 = 1, r19 -- ;; --(p7) add r21 = r21, r14 -- shr.u r14 = r18, 32 -- shl r15 = r15, 32 -- ;; -- add r20 = r21, r14 -- ;; -- add ret0 = r15, r16 -- add ret1 = r22, r20 -- br.ret.sptk rp -- ;; --END(___multi3) -- .symver ___multi3, __multi3@GLIBC_2.2 -- --#endif ---- glibc-2.13/sysdeps/ia64/libgcc-compat.c -+++ glibc-2.13-1/sysdeps/ia64/libgcc-compat.c -@@ -0,0 +1,84 @@ -+/* pre-.hidden libgcc compatibility -+ Copyright (C) 2002 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+ -+#include -+#include -+ -+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) -+ -+typedef int int128_t __attribute__((__mode__(TI))); -+ -+extern long double __divtf3 (long double, long double) attribute_hidden; -+long double INTUSE (__divtf3) (long double x, long double y) -+{ -+ return __divtf3 (x, y); -+} -+symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2); -+ -+extern double __divdf3 (double, double) attribute_hidden; -+double INTUSE (__divdf3) (double x, double y) -+{ -+ return __divdf3 (x, y); -+} -+symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2); -+ -+extern float __divsf3 (float, float) attribute_hidden; -+float INTUSE (__divsf3) (float x, float y) -+{ -+ return __divsf3 (x, y); -+} -+symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2); -+ -+extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden; -+int64_t INTUSE (__divdi3) (int64_t x, int64_t y) -+{ -+ return __divdi3 (x, y); -+} -+symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2); -+ -+extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden; -+int64_t INTUSE (__moddi3) (int64_t x, int64_t y) -+{ -+ return __moddi3 (x, y); -+} -+symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2); -+ -+extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden; -+uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y) -+{ -+ return __udivdi3 (x, y); -+} -+symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2); -+ -+extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden; -+uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y) -+{ -+ return __umoddi3 (x, y); -+} -+symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2); -+ -+extern int128_t __multi3 (int128_t, int128_t) attribute_hidden; -+int128_t INTUSE (__multi3) (int128_t x, int128_t y) -+{ -+ return __multi3 (x, y); -+} -+symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); -+ -+#endif ---- glibc-2.13/sysdeps/mach/hurd/getrlimit.c -+++ glibc-2.13-1/sysdeps/mach/hurd/getrlimit.c -@@ -44,4 +44,5 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) - - return 0; - } -+libc_hidden_def (__getrlimit) - weak_alias (__getrlimit, getrlimit) ---- glibc-2.13/sysdeps/posix/getaddrinfo.c -+++ glibc-2.13-1/sysdeps/posix/getaddrinfo.c -@@ -965,6 +965,7 @@ gaih_inet (const char *name, const struct gaih_service *service, - make a copy. */ - if (out == canon) - goto make_copy; -+ canon = out; - } - else - #endif -@@ -1100,10 +1101,12 @@ static const struct scopeentry - /* Link-local addresses: scope 2. */ - { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, - { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 }, -+#if 0 - /* Site-local addresses: scope 5. */ - { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 }, - { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 }, - { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 }, -+#endif - /* Default: scope 14. */ - { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } - }; ---- glibc-2.13/sysdeps/powerpc/powerpc64/Makefile -+++ glibc-2.13-1/sysdeps/powerpc/powerpc64/Makefile -@@ -30,6 +30,7 @@ ifneq ($(elf),no) - # we use -fpic instead which is much better. - CFLAGS-initfini.s += -fpic -O1 - endif -+CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables - endif - - ifeq ($(subdir),elf) ---- glibc-2.13/sysdeps/powerpc/powerpc64/elf/Makefile -+++ glibc-2.13-1/sysdeps/powerpc/powerpc64/elf/Makefile -@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-regs) - CFLAGS-rtld-memmove.os = $(no-special-regs) - CFLAGS-rtld-memchr.os = $(no-special-regs) - CFLAGS-rtld-strnlen.os = $(no-special-regs) -+ -+CFLAGS-gmon-start.c = -fno-strict-aliasing ---- glibc-2.13/sysdeps/unix/nice.c -+++ glibc-2.13-1/sysdeps/unix/nice.c -@@ -42,7 +42,12 @@ nice (int incr) - __set_errno (save); - } - -- result = setpriority (PRIO_PROCESS, 0, prio + incr); -+ prio += incr; -+ if (prio < PRIO_MIN) -+ prio = PRIO_MIN; -+ else if (prio >= PRIO_MAX) -+ prio = PRIO_MAX - 1; -+ result = setpriority (PRIO_PROCESS, 0, prio); - if (result == -1) - { - if (errno == EACCES) ---- glibc-2.13/sysdeps/unix/sysv/linux/check_pf.c -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/check_pf.c -@@ -27,13 +27,10 @@ - #include - #include - --#include --#include --#include -- - #include - #include - -+#include "netlinkaccess.h" - - #ifndef IFA_F_HOMEADDRESS - # define IFA_F_HOMEADDRESS 0 ---- glibc-2.13/sysdeps/unix/sysv/linux/dl-osinfo.h -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/dl-osinfo.h -@@ -17,10 +17,13 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -+#include - #include - #include - #include - #include -+#include -+#include - - #ifndef MIN - # define MIN(a,b) (((a)<(b))?(a):(b)) -@@ -80,6 +83,32 @@ _dl_setup_stack_chk_guard (void *dl_random) - unsigned char *p = (unsigned char *) &ret; - p[sizeof (ret) - 1] = 255; - p[sizeof (ret) - 2] = '\n'; -+#ifdef HP_TIMING_NOW -+ hp_timing_t hpt; -+ HP_TIMING_NOW (hpt); -+ hpt = (hpt & 0xffff) << 8; -+ ret ^= hpt; -+#endif -+ uintptr_t stk; -+ /* Avoid GCC being too smart. */ -+ asm ("" : "=r" (stk) : "r" (p)); -+ stk &= 0x7ffff0; -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ stk <<= (__WORDSIZE - 23); -+#elif __WORDSIZE == 64 -+ stk <<= 31; -+#endif -+ ret ^= stk; -+ /* Avoid GCC being too smart. */ -+ p = (unsigned char *) &errno; -+ asm ("" : "=r" (stk) : "r" (p)); -+ stk &= 0x7fff00; -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ stk <<= (__WORDSIZE - 29); -+#else -+ stk >>= 8; -+#endif -+ ret ^= stk; - } - else - #endif ---- glibc-2.13/sysdeps/unix/sysv/linux/futimesat.c -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/futimesat.c -@@ -37,14 +37,14 @@ futimesat (fd, file, tvp) - { - int result; - -+ if (file == NULL) -+ return __futimes (fd, tvp); -+ - #ifdef __NR_futimesat - # ifndef __ASSUME_ATFCTS - if (__have_atfcts >= 0) - # endif - { -- if (file == NULL) -- return __futimes (fd, tvp); -- - result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp); - # ifndef __ASSUME_ATFCTS - if (result == -1 && errno == ENOSYS) -@@ -58,22 +58,7 @@ futimesat (fd, file, tvp) - #ifndef __ASSUME_ATFCTS - char *buf = NULL; - -- if (file == NULL) -- { -- static const char procfd[] = "/proc/self/fd/%d"; -- /* Buffer for the path name we are going to use. It consists of -- - the string /proc/self/fd/ -- - the file descriptor number. -- The final NUL is included in the sizeof. A bit of overhead -- due to the format elements compensates for possible negative -- numbers. */ -- size_t buflen = sizeof (procfd) + sizeof (int) * 3; -- buf = alloca (buflen); -- -- __snprintf (buf, buflen, procfd, fd); -- file = buf; -- } -- else if (fd != AT_FDCWD && file[0] != '/') -+ if (fd != AT_FDCWD && file[0] != '/') - { - size_t filelen = strlen (file); - if (__builtin_expect (filelen == 0, 0)) ---- glibc-2.13/sysdeps/unix/sysv/linux/getpagesize.c -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/getpagesize.c -@@ -28,7 +28,7 @@ - int - __getpagesize () - { --#ifdef __ASSUME_AT_PAGESIZE -+#if 0 && defined __ASSUME_AT_PAGESIZE - assert (GLRO(dl_pagesize) != 0); - return GLRO(dl_pagesize); - #else ---- glibc-2.13/sysdeps/unix/sysv/linux/i386/dl-cache.h -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/i386/dl-cache.h -@@ -0,0 +1,59 @@ -+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. -+ Copyright (C) 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 -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+static inline int -+is_ia64 (void) -+{ -+ unsigned int fl1, fl2; -+ -+ /* See if we can use cpuid. */ -+ __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;" -+ "pushl %0; popfl; pushfl; popl %0; popfl" -+ : "=&r" (fl1), "=&r" (fl2) -+ : "i" (0x00200000)); -+ if (((fl1 ^ fl2) & 0x00200000) == 0) -+ return 0; -+ -+ /* Host supports cpuid. See if cpuid gives capabilities, try -+ CPUID(0). Preserve %ebx and %ecx; cpuid insn clobbers these, we -+ don't need their CPUID values here, and %ebx may be the PIC -+ register. */ -+ __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" -+ : "=a" (fl1) : "0" (0) : "edx", "cc"); -+ if (fl1 == 0) -+ return 0; -+ -+ /* Invoke CPUID(1), return %edx; caller can examine bits to -+ determine what's supported. */ -+ __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" -+ : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc"); -+ return (fl2 & (1 << 30)) != 0; -+} -+ -+#define arch_startup(argc, argv) \ -+ do { \ -+ /* On IA-64, try to execute 64-bit ldconfig if possible. \ -+ This is because the badly designed /emul/ia32-linux hack \ -+ will cause 32-bit ldconfig to do all sorts of weird things. */ \ -+ if (is_ia64 ()) \ -+ execv ("/emul/ia32-linux/../../sbin/ldconfig", \ -+ (char *const *) argv); \ -+ } while (0) -+ -+#include_next ---- glibc-2.13/sysdeps/unix/sysv/linux/i386/getrlimit.c -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/i386/getrlimit.c -@@ -79,4 +79,5 @@ __new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) - } - - weak_alias (__new_getrlimit, __getrlimit); -+libc_hidden_weak (__getrlimit) - versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2); ---- glibc-2.13/sysdeps/unix/sysv/linux/ia64/dl-cache.h -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/ia64/dl-cache.h -@@ -22,4 +22,31 @@ - #define _dl_cache_check_flags(flags) \ - ((flags) == _DL_CACHE_DEFAULT_ID) - -+#define EMUL_HACK "/emul/ia32-linux" -+ -+#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE) -+ -+#define add_arch_dirs(config_file) \ -+ do { \ -+ int save_verbose = opt_verbose; \ -+ opt_verbose = 0; \ -+ \ -+ parse_conf (config_file, EMUL_HACK, true); \ -+ \ -+ /* Always add the standard search paths. */ \ -+ add_system_dir (EMUL_HACK SLIBDIR); \ -+ if (strcmp (SLIBDIR, LIBDIR)) \ -+ add_system_dir (EMUL_HACK LIBDIR); \ -+ \ -+ char emul_config_file[strlen (config_file) \ -+ + sizeof EMUL_HACK]; \ -+ strcpy (mempcpy (emul_config_file, EMUL_HACK, \ -+ strlen (EMUL_HACK)), config_file); \ -+ \ -+ if (! access (emul_config_file, R_OK)) \ -+ parse_conf (emul_config_file, EMUL_HACK, true); \ -+ \ -+ opt_verbose = save_verbose; \ -+ } while (0) -+ - #include_next ---- glibc-2.13/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c -@@ -0,0 +1,5 @@ -+#ifdef IS_IN_ldconfig -+#include -+#else -+#include -+#endif ---- glibc-2.13/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h -@@ -0,0 +1,5 @@ -+#ifdef IS_IN_ldconfig -+#include -+#else -+#include -+#endif ---- glibc-2.13/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed -@@ -1 +1 @@ --s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_ -+s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_ ---- glibc-2.13/sysdeps/unix/sysv/linux/netlinkaccess.h -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/netlinkaccess.h -@@ -25,6 +25,24 @@ - - #include - -+#ifndef IFA_MAX -+/* 2.6.19 kernel headers helpfully removed some macros and -+ moved lots of stuff into new headers, some of which aren't -+ included by linux/rtnetlink.h. */ -+#include -+#endif -+ -+#ifndef IFA_RTA -+# define IFA_RTA(r) \ -+ ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifaddrmsg)))) -+# define IFA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifaddrmsg)) -+#endif -+ -+#ifndef IFLA_RTA -+# define IFLA_RTA(r) \ -+ ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifinfomsg)))) -+# define IFLA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifinfomsg)) -+#endif - - struct netlink_res - { ---- glibc-2.13/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/paths.h -@@ -62,7 +62,7 @@ - #define _PATH_TTY "/dev/tty" - #define _PATH_UNIX "/boot/vmlinux" - #define _PATH_UTMP "/var/run/utmp" --#define _PATH_VI "/usr/bin/vi" -+#define _PATH_VI "/bin/vi" - #define _PATH_WTMP "/var/log/wtmp" - - /* Provide trailing slash, since mostly used for building pathnames. */ ---- glibc-2.13/sysdeps/unix/sysv/linux/tcsetattr.c -+++ glibc-2.13-1/sysdeps/unix/sysv/linux/tcsetattr.c -@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios_p) - { - struct __kernel_termios k_termios; - unsigned long int cmd; -+ int retval; - - switch (optional_actions) - { -@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios_p) - memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], - __KERNEL_NCCS * sizeof (cc_t)); - -- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); -+ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); -+ -+ if (retval == 0 && cmd == TCSETS) -+ { -+ /* The Linux kernel has a bug which silently ignore the invalid -+ c_cflag on pty. We have to check it here. */ -+ int save = errno; -+ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); -+ if (retval) -+ { -+ /* We cannot verify if the setting is ok. We don't return -+ an error (?). */ -+ __set_errno (save); -+ retval = 0; -+ } -+ else if ((termios_p->c_cflag & (PARENB | CREAD)) -+ != (k_termios.c_cflag & (PARENB | CREAD)) -+ || ((termios_p->c_cflag & CSIZE) -+ && ((termios_p->c_cflag & CSIZE) -+ != (k_termios.c_cflag & CSIZE)))) -+ { -+ /* It looks like the Linux kernel silently changed the -+ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an -+ error. */ -+ __set_errno (EINVAL); -+ retval = -1; -+ } -+ } -+ -+ return retval; - } - libc_hidden_def (tcsetattr) ---- glibc-2.13/timezone/zic.c -+++ glibc-2.13-1/timezone/zic.c -@@ -1921,7 +1921,7 @@ const int zonecount; - if (stdrp != NULL && stdrp->r_hiyear == 2037) - return; - } -- if (stdrp == NULL && zp->z_nrules != 0) -+ if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0)) - return; - abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar; - doabbr(result, zp->z_format, abbrvar, FALSE, TRUE); diff --git a/glibc-ports-2.13.tar.bz2 b/glibc-ports-2.13.tar.bz2 deleted file mode 100644 index ec53fb6..0000000 Binary files a/glibc-ports-2.13.tar.bz2 and /dev/null differ diff --git a/glibc.changes b/glibc.changes index 2986ea1..8a70f87 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,6 @@ +* Sat Mar 24 2012 Carsten Munk - 2.15 +- Change to eglibc from ubuntu, 2.15 + * Tue Feb 07 2012 Carsten Munk - 2.14 - Add MIPS o32 ABI (mipsel) support diff --git a/glibc.spec b/glibc.spec index 91a33d8..c63a3d1 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,18 +1,17 @@ # temporary needed for debuginfo change in rpm package %define _unpackaged_files_terminate_build 0 -%define glibcsrcdir glibc-2.13 -%define glibcversion 2.13 +%define glibcsrcdir eglibc-2.15 ### glibc.spec.in follows: %define run_glibc_tests 0 %define multiarcharches %{ix86} x86_64 -%define debuginfocommonarches alpha alphaev6 sparc sparcv9 sparcv9v sparc64 sparc64v -Summary: The GNU libc libraries +Summary: Embedded GLIBC (EGLIBC) is a variant of the GNU C Library (GLIBC) Name: glibc -Version: 2.13 -Release: 12 +Version: 2.15 +Release: 1 + # 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 @@ -20,34 +19,19 @@ Release: 12 # libraries without restrictions. License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ Group: System/Libraries -URL: http://sources.redhat.com/glibc/ -Source0: glibc-2.13.tar.bz2 -Source1: %{glibcsrcdir}-fedora.tar.bz2 -Source2: glibc-ports-2.13.tar.bz2 -Patch0: %{name}-fedora.patch - -Patch1: tzdata-update.c.arm.patch -Patch2: glibc-arm-alignment-fix.patch -Patch3: glibc-arm-runfast.patch - -Patch4: cve-2010-3847.patch -Patch5: cve-2011-0536.patch -Patch6: cve-2011-1089.patch -Patch7: cve-2011-1659.patch - -# Meego: Build the only needed locale-archive. -Patch8: glibc-2.13-locale.patch -Patch9: glibc-arm-atomics-disable-qemu.patch -Patch10: glibc-2.13-no-timestamping.patch -#Patch11: glibc-2.13-onlyenus.patch - -Patch12: glibc-2.14.1-elf-rtld.c.1.diff -Patch13: glibc-2.14.1-ldso-rpath-prefix-option.2.diff -Patch14: glibc-2.14.1-nsswitchconf-location.3.diff -Patch15: glibc-2.14.1-nscd-socket-location.4.diff -Patch16: glibc-2.14.1-ldso-nodefaultdirs-option.5.diff - -Patch17: tzdata-update.c.mips.patch +URL: http://www.eglibc.org/ +Source0: http://archive.ubuntu.com/ubuntu/pool/main/e/eglibc/eglibc_2.15.orig.tar.gz +Patch0: eglibc_2.15-0ubuntu2.diff.gz +Patch1: glibc-arm-alignment-fix.patch +Patch2: glibc-arm-runfast.patch +Patch3: glibc-2.13-no-timestamping.patch +Patch4: glibc-2.14.1-elf-rtld.c.1.diff +Patch5: glibc-2.14.1-ldso-rpath-prefix-option.2.diff +Patch6: eglibc-2.15-nsswitchconf-location.3.diff +Patch7: glibc-2.14.1-nscd-socket-location.4.diff +Patch8: glibc-2.14.1-ldso-nodefaultdirs-option.5.diff +Patch9: eglibc-2.15-mips-async-unwind.patch +Patch10: eglibc-2.15-mips-no-n32-n64.patch Provides: ldconfig # The dynamic linker supports DT_GNU_HASH @@ -61,11 +45,11 @@ Requires(pre): libgcc BuildRequires: zlib-devel texinfo BuildRequires: sed >= 3.95, libcap-devel, gettext, nss-devel #BuildRequires: /bin/ps, /bin/kill, /bin/awk, procps -BuildRequires: gawk, util-linux -# This is to ensure that __frame_state_for is exported by glibc +BuildRequires: gawk, util-linux, quilt +# This gcc >= 3.2 is to ensure that __frame_state_for is exported by glibc # will be compatible with egcs 1.x.y BuildRequires: gcc >= 3.2 -%define enablekernel 2.6.25 +%define enablekernel 2.6.32 %ifarch %{ix86} %ifarch i486 %define _target_cpu i486 @@ -185,18 +169,13 @@ If unsure if you need this, don't install this package. %prep -%setup -q -n %{glibcsrcdir} %{?glibc_release_unpack} -b1 -a2 -%{?glibc_release_setup} -mv glibc-ports-2.13 ports - -%patch0 -E -p1 - +%setup -q -n %{glibcsrcdir} %{?glibc_release_unpack} +%patch0 -p1 %patch1 -p1 %ifarch %{arm} %patch2 -p1 -%patch3 -p1 %endif - +%patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 @@ -204,13 +183,12 @@ mv glibc-ports-2.13 ports %patch8 -p1 %patch9 -p1 %patch10 -p1 -#%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 + +# Not well formatted locales --cvm +sed -i "s|^localedata/locale-eo_EO.diff$||g" debian/patches/series +sed -i "s|^localedata/locale-ia.diff$||g" debian/patches/series + +QUILT_PATCHES=debian/patches quilt push -a cat > find_provides.sh < is not usable outside of glibc, so include -# the generic one (#162634) -cp -a bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h -# And needs sanitizing as well. -cp -a fedora/libc-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/libc-lock.h - if [ -d $RPM_BUILD_ROOT%{_prefix}/info -a "%{_infodir}" != "%{_prefix}/info" ]; then mkdir -p $RPM_BUILD_ROOT%{_infodir} mv -f $RPM_BUILD_ROOT%{_prefix}/info/* $RPM_BUILD_ROOT%{_infodir} @@ -322,15 +282,11 @@ gzip -9nvf $RPM_BUILD_ROOT%{_infodir}/libc* ln -sf libbsd-compat.a $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libbsd.a -install -p -m 644 fedora/nsswitch.conf $RPM_BUILD_ROOT/etc/nsswitch.conf +install -p -m 644 nss/nsswitch.conf $RPM_BUILD_ROOT/etc/nsswitch.conf mkdir -p $RPM_BUILD_ROOT/etc/default install -p -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/nss -# Take care of setuids -# -- new security review sez that this shouldn't be needed anymore -#chmod 755 $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown - # This is for ncsd - in glibc 2.2 install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT/etc @@ -349,10 +305,6 @@ mkdir -p $RPM_BUILD_ROOT/etc/sysconfig > $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gconv/gconv-modules.cache chmod 644 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gconv/gconv-modules.cache -# Install the upgrade program -install -m 700 build-%{nptl_target_cpu}-linuxnptl/glibc_post_upgrade.%{_target_cpu} \ - $RPM_BUILD_ROOT/usr/sbin/glibc_post_upgrade.%{_target_cpu} - strip -g $RPM_BUILD_ROOT%{_prefix}/%{_lib}/*.o mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/%{_lib} @@ -371,13 +323,9 @@ for i in *.a; do done popd -# rquota.x and rquota.h are now provided by quota -rm -f $RPM_BUILD_ROOT%{_prefix}/include/rpcsvc/rquota.[hx] - # Hardlink identical locale files together %ifnarch %{auxarches} #From 2.11, removed hardlink -#gcc -O2 -o build-%{nptl_target_cpu}-linuxnptl/hardlink fedora/hardlink.c olddir=`pwd` pushd ${RPM_BUILD_ROOT}%{_prefix}/lib/locale rm locale-archive || : @@ -385,7 +333,7 @@ rm locale-archive || : # by build-locale-archive. # note that due to qemu-arm emulation behaviour, we need to break this up into multiple invocations. # see BMC 10526. -find . -name '*_*' -maxdepth 1 | xargs -r -n10 -P1 \ +find . -name '*_*' -maxdepth 1 | xargs -r -n10 -P1 --verbose \ $olddir/build-%{nptl_target_cpu}-linuxnptl/elf/ld.so \ --library-path $olddir/build-%{nptl_target_cpu}-linuxnptl/ \ $olddir/build-%{nptl_target_cpu}-linuxnptl/locale/localedef \ @@ -394,7 +342,6 @@ $olddir/build-%{nptl_target_cpu}-linuxnptl/elf/ld.so \ rm -rf *_* mv locale-archive{,.tmpl} popd -#build-%{nptl_target_cpu}-linuxnptl/hardlink -vc $RPM_BUILD_ROOT%{_prefix}/lib/locale %endif rm -f ${RPM_BUILD_ROOT}/%{_lib}/libnss1-* @@ -482,8 +429,6 @@ sed -i -e '\|%{_prefix}/bin|d' \ > nosegneg.filelist -echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist -echo '%{_prefix}/sbin/tzdata-update' >> common.filelist echo '%{_prefix}/sbin/nscd' > nscd.filelist cat > utils.filelist < $RPM_BUILD_ROOT/var/cache/ldconfig/aux-cache -%post -p /usr/sbin/glibc_post_upgrade.%{_target_cpu} - %postun -p /sbin/ldconfig -%post common -p /usr/sbin/build-locale-archive - -%triggerin common -p /usr/sbin/tzdata-update -- tzdata - %post devel %install_info %{_infodir}/libc.info.gz %{_infodir}/dir @@ -630,10 +558,6 @@ if [ "$1" -ge "1" ]; then fi -%clean -rm -rf "$RPM_BUILD_ROOT" -rm -f *.filelist* - %files -f rpm.filelist %defattr(-,root,root) %verify(not md5 size mtime) %config(noreplace) /etc/localtime diff --git a/tzdata-update.c.arm.patch b/tzdata-update.c.arm.patch deleted file mode 100644 index 830de33..0000000 --- a/tzdata-update.c.arm.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -up glibc-20071017T2029/fedora/tzdata-update.c.orig glibc-20071017T2029/fedora/tzdata-update.c ---- glibc-20071017T2029/fedora/tzdata-update.c.orig 2007-11-26 16:48:44.000000000 -0500 -+++ glibc-20071017T2029/fedora/tzdata-update.c 2007-11-26 16:51:38.000000000 -0500 -@@ -391,6 +391,35 @@ register void *__thread_self __asm ("g7" - : inline_syscall_clobbers, "$20", "$21"); \ - _sc_ret = _sc_0, _sc_err = _sc_19; \ - } -+#elif defined __arm__ && defined __ARM_EABI__ -+# define INTERNAL_SYSCALL_DECL(err) do { } while (0) -+# define INTERNAL_SYSCALL(name, err, nr, args...) \ -+ ({ \ -+ register int _r0 __asm__("r0"); \ -+ register int _nr __asm__("r7"); \ -+ LOAD_ARGS_##nr(args) \ -+ _nr = __NR_##name; \ -+ asm volatile ("swi\t0\t@ syscall " #name "\n\t" \ -+ : "=r" (_r0) \ -+ : "r" (_nr) ASM_ARGS_##nr \ -+ : "memory"); \ -+ _r0; }) -+# define INTERNAL_SYSCALL_ERROR_P(val, err) \ -+ ((unsigned int) (val) >= 0xfffff001u) -+# define ASM_ARGS_0 -+# define ASM_ARGS_1 , "r" (_r0) -+# define ASM_ARGS_2 , "r" (_r0), "r" (_r1) -+# define ASM_ARGS_3 , "r" (_r0), "r" (_r1), "r" (_r2) -+# define LOAD_ARGS_0() -+# define LOAD_ARGS_1(r0) \ -+ _r0 = (int)r0; -+# define LOAD_ARGS_2(r0, r1) \ -+ _r0 = (int)r0; \ -+ register int _r1 __asm__("r1") = (int)r1; -+# define LOAD_ARGS_3(r0, r1, r2) \ -+ _r0 = (int)r0; \ -+ register int _r1 __asm__("r1") = (int)r1; \ -+ register int _r2 __asm__("r2") = (int)r2; - #endif - - char buffer[32768], data[32768]; -@@ -543,6 +572,12 @@ void __libc_csu_fini (void) { } - pid_t __fork (void) { return -1; } - char thr_buf[65536]; - -+#if defined __arm__ -+/* Prevent pulling in libc-start.o (which also defines -+ * __libc_start_main.) */ -+unsigned int __stack_chk_guard = ~0U; -+#endif -+ - #ifndef __powerpc__ - int __libc_start_main (int (*main) (int argc, char **argv), - int argc, char **argv, diff --git a/tzdata-update.c.mips.patch b/tzdata-update.c.mips.patch deleted file mode 100644 index c44a36c..0000000 --- a/tzdata-update.c.mips.patch +++ /dev/null @@ -1,278 +0,0 @@ ---- glibc-2.13/fedora/tzdata-update.c 2011-12-31 10:29:33.850744001 +0100 -+++ glibc-2.13-tzdata-update-mips/fedora/tzdata-update.c 2011-12-31 11:28:27.686744006 +0100 -@@ -420,6 +420,275 @@ - _r0 = (int)r0; \ - register int _r1 __asm__("r1") = (int)r1; \ - register int _r2 __asm__("r2") = (int)r2; -+#elif defined __mips__ -+/* In order to get __set_errno() definition in INLINE_SYSCALL. */ -+#ifndef __ASSEMBLER__ -+#include -+#endif -+ -+/* For Linux we can use the system call table in the header file -+ /usr/include/asm/unistd.h -+ of the kernel. But these symbols do not follow the SYS_* syntax -+ so we have to redefine the `SYS_ify' macro here. */ -+#undef SYS_ify -+#ifdef __STDC__ -+# define SYS_ify(syscall_name) __NR_##syscall_name -+#else -+# define SYS_ify(syscall_name) __NR_/**/syscall_name -+#endif -+ -+#ifndef __ASSEMBLER__ -+ -+/* Define a macro which expands into the inline wrapper code for a system -+ call. */ -+#undef INLINE_SYSCALL -+#define INLINE_SYSCALL(name, nr, args...) \ -+ ({ INTERNAL_SYSCALL_DECL(err); \ -+ long result_var = INTERNAL_SYSCALL (name, err, nr, args); \ -+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \ -+ { \ -+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \ -+ result_var = -1L; \ -+ } \ -+ result_var; }) -+ -+#undef INTERNAL_SYSCALL_DECL -+#define INTERNAL_SYSCALL_DECL(err) long err -+ -+#undef INTERNAL_SYSCALL_ERROR_P -+#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err)) -+ -+#undef INTERNAL_SYSCALL_ERRNO -+#define INTERNAL_SYSCALL_ERRNO(val, err) (val) -+ -+#undef INTERNAL_SYSCALL -+#define INTERNAL_SYSCALL(name, err, nr, args...) \ -+ internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t", \ -+ "i" (SYS_ify (name)), err, args) -+ -+#undef INTERNAL_SYSCALL_NCS -+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \ -+ internal_syscall##nr (= number, , "r" (__v0), err, args) -+ -+#define internal_syscall0(ncs_init, cs_init, input, err, dummy...) \ -+({ \ -+ long _sys_result; \ -+ \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a3 asm("$7"); \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ ".set reorder" \ -+ : "=r" (__v0), "=r" (__a3) \ -+ : input \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define internal_syscall1(ncs_init, cs_init, input, err, arg1) \ -+({ \ -+ long _sys_result; \ -+ \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a3 asm("$7"); \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ ".set reorder" \ -+ : "=r" (__v0), "=r" (__a3) \ -+ : input, "r" (__a0) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2) \ -+({ \ -+ long _sys_result; \ -+ \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a1 asm("$5") = (long) arg2; \ -+ register long __a3 asm("$7"); \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ ".set\treorder" \ -+ : "=r" (__v0), "=r" (__a3) \ -+ : input, "r" (__a0), "r" (__a1) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\ -+({ \ -+ long _sys_result; \ -+ \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a1 asm("$5") = (long) arg2; \ -+ register long __a2 asm("$6") = (long) arg3; \ -+ register long __a3 asm("$7"); \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ ".set\treorder" \ -+ : "=r" (__v0), "=r" (__a3) \ -+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\ -+({ \ -+ long _sys_result; \ -+ \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a1 asm("$5") = (long) arg2; \ -+ register long __a2 asm("$6") = (long) arg3; \ -+ register long __a3 asm("$7") = (long) arg4; \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ ".set\treorder" \ -+ : "=r" (__v0), "+r" (__a3) \ -+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+/* We need to use a frame pointer for the functions in which we -+ adjust $sp around the syscall, or debug information and unwind -+ information will be $sp relative and thus wrong during the syscall. As -+ of GCC 3.4.3, this is sufficient. */ -+#define FORCE_FRAME_POINTER alloca (4) -+ -+#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\ -+({ \ -+ long _sys_result; \ -+ \ -+ FORCE_FRAME_POINTER; \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a1 asm("$5") = (long) arg2; \ -+ register long __a2 asm("$6") = (long) arg3; \ -+ register long __a3 asm("$7") = (long) arg4; \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ "subu\t$29, 32\n\t" \ -+ "sw\t%6, 16($29)\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ "addiu\t$29, 32\n\t" \ -+ ".set\treorder" \ -+ : "=r" (__v0), "+r" (__a3) \ -+ : input, "r" (__a0), "r" (__a1), "r" (__a2), \ -+ "r" ((long)arg5) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\ -+({ \ -+ long _sys_result; \ -+ \ -+ FORCE_FRAME_POINTER; \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a1 asm("$5") = (long) arg2; \ -+ register long __a2 asm("$6") = (long) arg3; \ -+ register long __a3 asm("$7") = (long) arg4; \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ "subu\t$29, 32\n\t" \ -+ "sw\t%6, 16($29)\n\t" \ -+ "sw\t%7, 20($29)\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ "addiu\t$29, 32\n\t" \ -+ ".set\treorder" \ -+ : "=r" (__v0), "+r" (__a3) \ -+ : input, "r" (__a0), "r" (__a1), "r" (__a2), \ -+ "r" ((long)arg5), "r" ((long)arg6) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\ -+({ \ -+ long _sys_result; \ -+ \ -+ FORCE_FRAME_POINTER; \ -+ { \ -+ register long __v0 asm("$2") ncs_init; \ -+ register long __a0 asm("$4") = (long) arg1; \ -+ register long __a1 asm("$5") = (long) arg2; \ -+ register long __a2 asm("$6") = (long) arg3; \ -+ register long __a3 asm("$7") = (long) arg4; \ -+ __asm__ volatile ( \ -+ ".set\tnoreorder\n\t" \ -+ "subu\t$29, 32\n\t" \ -+ "sw\t%6, 16($29)\n\t" \ -+ "sw\t%7, 20($29)\n\t" \ -+ "sw\t%8, 24($29)\n\t" \ -+ cs_init \ -+ "syscall\n\t" \ -+ "addiu\t$29, 32\n\t" \ -+ ".set\treorder" \ -+ : "=r" (__v0), "+r" (__a3) \ -+ : input, "r" (__a0), "r" (__a1), "r" (__a2), \ -+ "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \ -+ : __SYSCALL_CLOBBERS); \ -+ err = __a3; \ -+ _sys_result = __v0; \ -+ } \ -+ _sys_result; \ -+}) -+ -+#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \ -+ "$14", "$15", "$24", "$25", "hi", "lo", "memory" -+ -+#endif /* __ASSEMBLER__ */ -+ -+/* Pointer mangling is not yet supported for MIPS. */ -+#define PTR_MANGLE(var) (void) (var) -+#define PTR_DEMANGLE(var) (void) (var) -+ - #endif - - char buffer[32768], data[32768];