From 278d27159a2255d0659b8de308d541c6e48db525a772f23b239e689bd941c41d Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Mon, 25 Jul 2011 10:28:35 +0000 Subject: [PATCH 1/4] Updating link to change in openSUSE:Factory/glibc revision 72.0 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=60db27dd9c3fed4576035a8353c02b20 --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index 94a7509..b3905f9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -78,7 +78,7 @@ Obsoletes: glibc-64bit Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 27 +Release: 29 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 From f9d5ef479113192c501f0f431bdcd8facd559caa3b9cf108de16f298a2cd3db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Wed, 17 Aug 2011 19:42:24 +0000 Subject: [PATCH 2/4] Accepting request 79155 from home:a_jaeger:glibc214 Update to glibc 2.14 OBS-URL: https://build.opensuse.org/request/show/79155 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=88 --- getaddrinfo-ipv6-sanity.diff | 13 +- glibc-2.10-nscd-nostack.diff | 18 -- glibc-2.13-996cf2ef0727.tar.bz2 | 3 - glibc-2.13-dl-load.patch | 320 -------------------------- glibc-2.14-4eddf93f5cc2.tar.bz2 | 3 + glibc-2.2-sunrpc.diff | 1 + glibc-2.3.1.localedef.diff | 72 ------ glibc-2.4.90-nscd.diff | 8 +- glibc-2.6-configure.diff | 40 ---- glibc-bso-12454.diff | 27 --- glibc-cpusetsize.diff | 28 +-- glibc-disable-backward-memcpy.diff | 45 ---- glibc-fnmatch-multibyte.diff | 92 -------- glibc-ports-2.13.tar.bz2 | 3 - glibc-ports-2.14.tar.bz2 | 3 + glibc-revert-fseek-on-fclose.diff | 212 +++++++++++++++++ glibc-static-memcpy.diff | 61 ----- glibc-strict-aliasing.diff | 13 +- glibc-vfprintf-positional.diff | 20 -- glibc-zarch-longlong.diff | 41 ---- glibc.changes | 42 ++++ glibc.rpmlintrc | 2 + glibc.spec | 64 ++---- glibc2.14-revert-sunrpc-removal.patch | 63 +++++ manpages.tar.bz2 | 4 +- missing-include-build-fix.diff | 31 --- 26 files changed, 372 insertions(+), 857 deletions(-) delete mode 100644 glibc-2.10-nscd-nostack.diff delete mode 100644 glibc-2.13-996cf2ef0727.tar.bz2 delete mode 100644 glibc-2.13-dl-load.patch create mode 100644 glibc-2.14-4eddf93f5cc2.tar.bz2 delete mode 100644 glibc-2.3.1.localedef.diff delete mode 100644 glibc-2.6-configure.diff delete mode 100644 glibc-bso-12454.diff delete mode 100644 glibc-disable-backward-memcpy.diff delete mode 100644 glibc-fnmatch-multibyte.diff delete mode 100644 glibc-ports-2.13.tar.bz2 create mode 100644 glibc-ports-2.14.tar.bz2 create mode 100644 glibc-revert-fseek-on-fclose.diff delete mode 100644 glibc-static-memcpy.diff delete mode 100644 glibc-vfprintf-positional.diff delete mode 100644 glibc-zarch-longlong.diff create mode 100644 glibc2.14-revert-sunrpc-removal.patch delete mode 100644 missing-include-build-fix.diff diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff index c89228d..c982e8b 100644 --- a/getaddrinfo-ipv6-sanity.diff +++ b/getaddrinfo-ipv6-sanity.diff @@ -13,16 +13,7 @@ Index: sysdeps/posix/getaddrinfo.c { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -706,7 +706,7 @@ gaih_inet (const char *name, const struc - no_data = 0; - nss_gethostbyname4_r fct4 - = __nss_lookup_function (nip, "gethostbyname4_r"); -- if (fct4 != NULL) -+ if (fct4 != NULL && usable_ipv6) - { - int herrno; - -@@ -763,7 +763,7 @@ gaih_inet (const char *name, const struc +@@ -766,7 +766,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -31,7 +22,7 @@ Index: sysdeps/posix/getaddrinfo.c { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2156,7 +2156,7 @@ getaddrinfo (const char *name, const cha +@@ -2157,7 +2157,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { diff --git a/glibc-2.10-nscd-nostack.diff b/glibc-2.10-nscd-nostack.diff deleted file mode 100644 index 0e778ef..0000000 --- a/glibc-2.10-nscd-nostack.diff +++ /dev/null @@ -1,18 +0,0 @@ -Index: nscd/nscd.h -=================================================================== ---- nscd/nscd.h.orig -+++ nscd/nscd.h -@@ -59,7 +59,12 @@ typedef enum - - /* Maximum size of stack frames we allow the thread to use. We use - 80% of the thread stack size. */ --#define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) -+// #define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) -+/* alloca() calls use extra space on stack that we cannot reliably -+ account for, the optimization effect is not that big and they are -+ prone to hard-to-debug crashes. In short, they are much more trouble -+ than they are worth. */ -+#define MAX_STACK_USE 0 - - - /* Structure describing dynamic part of one database. */ diff --git a/glibc-2.13-996cf2ef0727.tar.bz2 b/glibc-2.13-996cf2ef0727.tar.bz2 deleted file mode 100644 index 0e56656..0000000 --- a/glibc-2.13-996cf2ef0727.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:023aef147d380f0e4ca2ff0617355b0ef69e41f00db7c463c800fabdb62e8faa -size 16381764 diff --git a/glibc-2.13-dl-load.patch b/glibc-2.13-dl-load.patch deleted file mode 100644 index 89443e3..0000000 --- a/glibc-2.13-dl-load.patch +++ /dev/null @@ -1,320 +0,0 @@ -2011-05-11 Ulrich Drepper - - [BZ #12393] - * elf/dl-load.c (is_trusted_path): Remove unnecessary test. - (is_trusted_path_normalize): Skip initial colon. Append slash - to empty buffer. Duplicate is_trusted_path code but allow - constructed patch to be prefix. - (is_dst): Allow $ORIGIN followed by /. - (_dl_dst_substitute): Correct clearing of check_for_trusted. - Correct testing of result of is_trusted_path_normalize - (decompose_rpath): Fix warning. - -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_trusted_path_normalize): Wrapper for /../ and /./ normalization. - (_dl_dst_substitute): Verify expanded $ORIGIN path elements - using is_trusted_path_normalize() in setuid scripts. - -2011-03-14 Andreas Schwab - - * elf/dl-load.c (_dl_dst_substitute): When skipping the first - rpath element also skip the following colon. - (expand_dynamic_string_token): Add is_path parameter and pass - down to DL_DST_REQUIRED and _dl_dst_substitute. - (decompose_rpath): Call expand_dynamic_string_token with - non-zero is_path. Ignore empty rpaths. - (_dl_map_object_from_fd): Call expand_dynamic_string_token - with zero is_path. - -2011-03-06 Ulrich Drepper - - * elf/dl-load.c (_dl_map_object): If we are looking for the first - to-be-loaded object along a path to loader is ld.so. - - ---- glibc-2.13/elf/dl-load.c 2011-05-20 21:53:43.766426054 +0200 -+++ glibc-2.14/elf/dl-load.c 2011-05-31 09:59:16.781617374 +0200 -@@ -1,5 +1,5 @@ - /* Map in a shared object's segments from the file. -- Copyright (C) 1995-2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. -+ Copyright (C) 1995-2007, 2009, 2010, 2011 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 -@@ -168,6 +168,87 @@ local_strdup (const char *s) - } - - -+static bool -+is_trusted_path (const char *path, size_t len) -+{ -+ 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) -+{ -+ if (len == 0) -+ return false; -+ -+ if (*path == ':') -+ { -+ ++path; -+ --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++ = '/'; -+ -+ const char *trun = system_dirs; -+ -+ for (size_t idx = 0; idx < nsystem_dirs_len; ++idx) -+ { -+ if (wnp - npath >= system_dirs_len[idx] -+ && memcmp (trun, npath, system_dirs_len[idx]) == 0) -+ /* Found it. */ -+ return true; -+ -+ trun += system_dirs_len[idx] + 1; -+ } -+ -+ return false; -+} -+ -+ - static size_t - is_dst (const char *start, const char *name, const char *str, - int is_path, int secure) -@@ -200,7 +281,8 @@ is_dst (const char *start, const char *n - return 0; - - if (__builtin_expect (secure, 0) -- && ((name[len] != '\0' && (!is_path || name[len] != ':')) -+ && ((name[len] != '\0' && name[len] != '/' -+ && (!is_path || name[len] != ':')) - || (name != start + 1 && (!is_path || name[-2] != ':')))) - return 0; - -@@ -240,13 +322,14 @@ _dl_dst_substitute (struct link_map *l, - 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 +348,9 @@ _dl_dst_substitute (struct link_map *l, - 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); -@@ -284,6 +370,10 @@ _dl_dst_substitute (struct link_map *l, - name += len; - while (*name != '\0' && (!is_path || *name != ':')) - ++name; -+ /* Also skip following colon if this is the first rpath -+ element, but keep an empty element at the end. */ -+ if (wp == result && is_path && *name == ':' && name[1] != '\0') -+ ++name; - } - else - /* No DST we recognize. */ -@@ -293,11 +383,28 @@ _dl_dst_substitute (struct link_map *l, - { - *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; -+ else -+ last_elem = wp; -+ -+ check_for_trusted = false; -+ } - } - } - 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; -@@ -310,7 +417,7 @@ _dl_dst_substitute (struct link_map *l, - belonging to the map is loaded. In this case the path element - containing $ORIGIN is left out. */ - static char * --expand_dynamic_string_token (struct link_map *l, const char *s) -+expand_dynamic_string_token (struct link_map *l, const char *s, int is_path) - { - /* We make two runs over the string. First we determine how large the - resulting string is and then we copy it over. Since this is no -@@ -321,7 +428,7 @@ expand_dynamic_string_token (struct link - char *result; - - /* Determine the number of DST elements. */ -- cnt = DL_DST_COUNT (s, 1); -+ cnt = DL_DST_COUNT (s, is_path); - - /* If we do not have to replace anything simply copy the string. */ - if (__builtin_expect (cnt, 0) == 0) -@@ -335,7 +442,7 @@ expand_dynamic_string_token (struct link - if (result == NULL) - return NULL; - -- return _dl_dst_substitute (l, s, result, 1); -+ return _dl_dst_substitute (l, s, result, is_path); - } - - -@@ -407,33 +514,8 @@ fillin_rpath (char *rpath, struct r_sear - 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) -@@ -551,13 +633,21 @@ decompose_rpath (struct r_search_path_st - - /* Make a writable copy. At the same time expand possible dynamic - string tokens. */ -- copy = expand_dynamic_string_token (l, rpath); -+ copy = expand_dynamic_string_token (l, rpath, 1); - if (copy == NULL) - { - errstring = N_("cannot create RUNPATH/RPATH copy"); - goto signal_error; - } - -+ /* Ignore empty rpaths. */ -+ if (*copy == 0) -+ { -+ free (copy); -+ sps->dirs = (struct r_search_path_elem **) -1; -+ return false; -+ } -+ - /* Count the number of necessary elements in the result array. */ - nelems = 0; - for (cp = copy; *cp != '\0'; ++cp) -@@ -2109,7 +2201,9 @@ _dl_map_object (struct link_map *loader, - { - #ifdef SHARED - // XXX Correct to unconditionally default to namespace 0? -- l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded; -+ l = (loader -+ ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded -+ ?: &GL(dl_rtld_map)); - #else - l = loader; - #endif -@@ -2175,7 +2269,7 @@ _dl_map_object (struct link_map *loader, - { - /* The path may contain dynamic string tokens. */ - realname = (loader -- ? expand_dynamic_string_token (loader, name) -+ ? expand_dynamic_string_token (loader, name, 0) - : local_strdup (name)); - if (realname == NULL) - fd = -1; diff --git a/glibc-2.14-4eddf93f5cc2.tar.bz2 b/glibc-2.14-4eddf93f5cc2.tar.bz2 new file mode 100644 index 0000000..b4e0165 --- /dev/null +++ b/glibc-2.14-4eddf93f5cc2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:497c07f228208e8a0660ae5ee8919e4a6b5b59bb867891c7c02de8995310960e +size 15640100 diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff index 5297ca9..c8ab99b 100644 --- a/glibc-2.2-sunrpc.diff +++ b/glibc-2.2-sunrpc.diff @@ -1,6 +1,7 @@ For details see: http://sourceware.org/bugzilla/show_bug.cgi?id=5379 + Index: sunrpc/clnt_udp.c =================================================================== --- sunrpc/clnt_udp.c.orig diff --git a/glibc-2.3.1.localedef.diff b/glibc-2.3.1.localedef.diff deleted file mode 100644 index 8858980..0000000 --- a/glibc-2.3.1.localedef.diff +++ /dev/null @@ -1,72 +0,0 @@ -Check: -http://sourceware.org/bugzilla/show_bug.cgi?id=10855 - -------------------------------------------------------------------- -Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de - -- Fix alignment in locale-archive. - -Index: locale/programs/locarchive.c -=================================================================== ---- locale/programs/locarchive.c.orig -+++ locale/programs/locarchive.c -@@ -75,6 +75,9 @@ static const char *locnames[] = - #define RESERVE_MMAP_SIZE 512 * 1024 * 1024 - - -+#define ALIGN(offset, alignment) \ -+ (((offset) + (alignment) - 1) & -(alignment)) -+ - static void - create_archive (const char *archivefname, struct locarhandle *ah) - { -@@ -94,7 +97,8 @@ create_archive (const char *archivefname - /* Create the initial content of the archive. */ - head.magic = AR_MAGIC; - head.serial = 0; -- head.namehash_offset = sizeof (struct locarhead); -+ head.namehash_offset = ALIGN (sizeof (struct locarhead), -+ __alignof__ (struct namehashent)); - head.namehash_used = 0; - head.namehash_size = next_prime (INITIAL_NUM_NAMES); - -@@ -103,12 +107,15 @@ create_archive (const char *archivefname - head.string_used = 0; - head.string_size = INITIAL_SIZE_STRINGS; - -- head.locrectab_offset = head.string_offset + head.string_size; -+ head.locrectab_offset = ALIGN (head.string_offset + head.string_size, -+ __alignof__ (struct locrecent)); - head.locrectab_used = 0; - head.locrectab_size = INITIAL_NUM_LOCREC; - -- head.sumhash_offset = (head.locrectab_offset -- + head.locrectab_size * sizeof (struct locrecent)); -+ head.sumhash_offset = ALIGN (head.locrectab_offset -+ + (head.locrectab_size -+ * sizeof (struct locrecent)), -+ __alignof__ (struct sumhashent)); - head.sumhash_used = 0; - head.sumhash_size = next_prime (INITIAL_NUM_SUMS); - -@@ -356,13 +363,16 @@ enlarge_archive (struct locarhandle *ah, - newhead.string_size = MAX ((2 * newhead.string_used + 3) & -4, - newhead.string_size); - -- newhead.locrectab_offset = newhead.string_offset + newhead.string_size; -+ newhead.locrectab_offset = ALIGN (newhead.string_offset -+ + newhead.string_size, -+ __alignof__ (struct locrecent)); - newhead.locrectab_size = MAX (2 * newhead.locrectab_used, - newhead.locrectab_size); - -- newhead.sumhash_offset = (newhead.locrectab_offset -- + (newhead.locrectab_size -- * sizeof (struct locrecent))); -+ newhead.sumhash_offset = ALIGN (newhead.locrectab_offset -+ + (newhead.locrectab_size -+ * sizeof (struct locrecent)), -+ __alignof__ (struct sumhashent)); - newhead.sumhash_size = MAX (next_prime (2 * newhead.sumhash_used), - newhead.sumhash_size); - diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff index ce178a1..43a66dc 100644 --- a/glibc-2.4.90-nscd.diff +++ b/glibc-2.4.90-nscd.diff @@ -2,7 +2,7 @@ Index: nscd/cache.c =================================================================== --- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100 +++ nscd/cache.c 2010-02-14 14:58:08.000000000 +0100 -@@ -267,28 +267,31 @@ prune_cache (struct database_dyn *table, +@@ -267,27 +267,29 @@ if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) { struct stat64 st; @@ -14,7 +14,7 @@ Index: nscd/cache.c { - char buf[128]; - /* We cannot stat() the file, disable file checking if the -- file does not exist. */ +- file does not exist. */ - dbg_log (_("cannot stat() file `%s': %s"), - table->filename, strerror_r (errno, buf, sizeof (buf))); - if (errno == ENOENT) @@ -37,14 +37,12 @@ Index: nscd/cache.c } } } - + /* now == 0 means just check for changed files */ + if (now == (time_t)0) + return 0; -+ + /* We run through the table and find values which are not valid anymore. - Note that for the initial step, finding the entries to be removed, Index: nscd/connections.c =================================================================== --- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100 diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff deleted file mode 100644 index 530a453..0000000 --- a/glibc-2.6-configure.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- configure.in.orig 2011-05-20 15:36:44.880141789 +0200 -+++ configure.in 2011-05-20 15:39:31.237690293 +0200 -@@ -1406,7 +1406,7 @@ - fi - fi - fi -- rm -f conftest.[cs] -+ rm -f conftest.* - ]) - if test $libc_cv_visibility_attribute != yes; then - AC_MSG_ERROR(compiler support for visibility attribute is required) -@@ -1422,7 +1422,7 @@ - int bar (int x) { return x; } - EOF - libc_cv_broken_visibility_attribute=yes -- if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then -+ if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s >&AS_MESSAGE_LOG_FD); then - changequote(,)dnl - if grep '\.hidden[ _]foo' conftest.s >/dev/null; then - changequote([,])dnl ---- configure.orig 2011-05-20 15:39:38.413972560 +0200 -+++ configure 2011-05-20 15:40:52.292884126 +0200 -@@ -6112,7 +6112,7 @@ - int bar (int x) { return x; } - EOF - libc_cv_broken_visibility_attribute=yes -- if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s1>&5' -+ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? -@@ -6753,7 +6753,7 @@ - else - libc_cv_have_section_quotes=unknown - fi -- rm -f conftest.cs -+ rm -f conftest.* - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_section_quotes" >&5 diff --git a/glibc-bso-12454.diff b/glibc-bso-12454.diff deleted file mode 100644 index 68c26da..0000000 --- a/glibc-bso-12454.diff +++ /dev/null @@ -1,27 +0,0 @@ -2011-03-02 Andreas Schwab - - [BZ #12454] - * elf/dl-deps.c (_dl_map_object_deps): Don't try to sort - dependencies when there are none. - ---- a/elf/dl-deps.c.orig 2011-05-25 16:42:39.000000000 +0200 -+++ a/elf/dl-deps.c 2011-05-25 16:44:07.000000000 +0200 -@@ -619,7 +619,8 @@ - - /* We can skip looking for the binary itself which is at the front - of the search list. */ -- assert (nlist > 1); -+ if (nlist > 1) -+ { - i = 1; - bool seen[nlist]; - memset (seen, false, nlist * sizeof (seen[0])); -@@ -669,7 +670,7 @@ - - next:; - } -- -+ } - /* Terminate the list of dependencies. */ - l_initfini[nlist] = NULL; - atomic_write_barrier (); diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff index 4e67f90..4049a3f 100644 --- a/glibc-cpusetsize.diff +++ b/glibc-cpusetsize.diff @@ -2,20 +2,20 @@ Index: bits/sched.h =================================================================== --- bits/sched.h.orig +++ bits/sched.h -@@ -38,7 +38,7 @@ struct sched_param - #if defined _SCHED_H && !defined __cpu_set_t_defined - # define __cpu_set_t_defined - /* Size definition for CPU sets. */ --# define __CPU_SETSIZE 1024 -+# define __CPU_SETSIZE 4096 - # define __NCPUBITS (8 * sizeof (__cpu_mask)) - - /* Type for array elements in 'cpu_set'. */ -Index: sysdeps/unix/sysv/linux/bits/sched.h -=================================================================== ---- sysdeps/unix/sysv/linux/bits/sched.h.orig -+++ sysdeps/unix/sysv/linux/bits/sched.h -@@ -106,7 +106,7 @@ struct __sched_param +@@ -54,7 +54,7 @@ struct __sched_param + #if defined _SCHED_H && !defined __cpu_set_t_defined + # define __cpu_set_t_defined + /* Size definition for CPU sets. */ +-# define __CPU_SETSIZE 1024 ++# define __CPU_SETSIZE 4096 + # define __NCPUBITS (8 * sizeof (__cpu_mask)) + + /* Type for array elements in 'cpu_set_t'. */ +Index: sysdeps/unix/sysv/linux/bits/sched.h +=================================================================== +--- sysdeps/unix/sysv/linux/bits/sched.h.orig ++++ sysdeps/unix/sysv/linux/bits/sched.h +@@ -113,7 +113,7 @@ struct __sched_param #if defined _SCHED_H && !defined __cpu_set_t_defined # define __cpu_set_t_defined /* Size definition for CPU sets. */ diff --git a/glibc-disable-backward-memcpy.diff b/glibc-disable-backward-memcpy.diff deleted file mode 100644 index fda40ca..0000000 --- a/glibc-disable-backward-memcpy.diff +++ /dev/null @@ -1,45 +0,0 @@ -Index: glibc-2.13/sysdeps/x86_64/multiarch/Makefile -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/Makefile -+++ glibc-2.13/sysdeps/x86_64/multiarch/Makefile -@@ -6,7 +6,7 @@ endif - ifeq ($(subdir),string) - sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ - strend-sse4 memcmp-sse4 memcpy-ssse3 mempcpy-ssse3 \ -- memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \ -+ memmove-ssse3 mempcpy-ssse3-back \ - memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \ - strncase_l-ssse3 strlen-sse4 strlen-no-bsf \ - memset-x86-64 -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy.S -@@ -35,9 +35,11 @@ ENTRY(memcpy) - testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) - jz 2f - leaq __memcpy_ssse3(%rip), %rax -+ /* disable backward memcpy for glibc 2.13 - testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip) - jz 2f - leaq __memcpy_ssse3_back(%rip), %rax -+ */ - 2: ret - END(memcpy) - -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy_chk.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy_chk.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy_chk.S -@@ -36,9 +36,11 @@ ENTRY(__memcpy_chk) - testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) - jz 2f - leaq __memcpy_chk_ssse3(%rip), %rax -+ /* disable backwards memcpy until glibc 2.14 - testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip) - jz 2f - leaq __memcpy_chk_ssse3_back(%rip), %rax -+ */ - 2: ret - END(__memcpy_chk) - # else diff --git a/glibc-fnmatch-multibyte.diff b/glibc-fnmatch-multibyte.diff deleted file mode 100644 index 42f49a4..0000000 --- a/glibc-fnmatch-multibyte.diff +++ /dev/null @@ -1,92 +0,0 @@ -When fnmatch detects an invalid multibyte character it should fall back to -single byte matching, so that "*" has a chance to match such a string. - -Andreas. - -Ported to glibc-2.11.3 by Petr Baudis. - -2005-04-12 Andreas Schwab - - * posix/fnmatch.c (fnmatch): If conversion to wide character - fails fall back to single byte matching. - -Index: glibc-2.11.2/posix/fnmatch.c -=================================================================== ---- glibc-2.11.2.orig/posix/fnmatch.c -+++ glibc-2.11.2/posix/fnmatch.c -@@ -333,6 +333,7 @@ fnmatch (pattern, string, flags) - # if HANDLE_MULTIBYTE - if (__builtin_expect (MB_CUR_MAX, 1) != 1) - { -+ const char *orig_pattern = pattern; - mbstate_t ps; - size_t n; - const char *p; -@@ -356,10 +357,8 @@ fnmatch (pattern, string, flags) - alloca_used); - n = mbsrtowcs (wpattern, &p, n + 1, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- return -1; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto try_singlebyte; - if (p) - { - memset (&ps, '\0', sizeof (ps)); -@@ -371,10 +370,8 @@ fnmatch (pattern, string, flags) - prepare_wpattern: - n = mbsrtowcs (NULL, &pattern, 0, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- return -1; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto try_singlebyte; - wpattern_malloc = wpattern - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); - assert (mbsinit (&ps)); -@@ -396,14 +393,8 @@ fnmatch (pattern, string, flags) - alloca_used); - n = mbsrtowcs (wstring, &p, n + 1, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- { -- /* Something wrong. -- XXX Do we have to set `errno' to something which -- mbsrtows hasn't already done? */ -- free_return: -- free (wpattern_malloc); -- return -1; -- } -+ /* Something wrong. Fall back to single byte matching. */ -+ goto free_and_try_singlebyte; - if (p) - { - memset (&ps, '\0', sizeof (ps)); -@@ -415,10 +406,8 @@ fnmatch (pattern, string, flags) - prepare_wstring: - n = mbsrtowcs (NULL, &string, 0, &ps); - if (__builtin_expect (n == (size_t) -1, 0)) -- /* Something wrong. -- XXX Do we have to set `errno' to something which mbsrtows hasn't -- already done? */ -- goto free_return; -+ /* Something wrong. Fall back to single byte matching. */ -+ goto free_and_try_singlebyte; - - wstring_malloc = wstring - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); -@@ -439,6 +428,11 @@ fnmatch (pattern, string, flags) - free (wpattern_malloc); - - return res; -+ -+ free_and_try_singlebyte: -+ free(wpattern_malloc); -+ try_singlebyte: -+ pattern = orig_pattern; - } - # endif /* mbstate_t and mbsrtowcs or _LIBC. */ - diff --git a/glibc-ports-2.13.tar.bz2 b/glibc-ports-2.13.tar.bz2 deleted file mode 100644 index f2e7a58..0000000 --- a/glibc-ports-2.13.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b11c4501ae929883447f409c31d65e82822b1c5693075a825a3d54612876ee5a -size 625945 diff --git a/glibc-ports-2.14.tar.bz2 b/glibc-ports-2.14.tar.bz2 new file mode 100644 index 0000000..663c30d --- /dev/null +++ b/glibc-ports-2.14.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:808f0f6938af4d17fe6c091597df02d85ca5b4a3da21daf5065cba9a32ec7d02 +size 627448 diff --git a/glibc-revert-fseek-on-fclose.diff b/glibc-revert-fseek-on-fclose.diff new file mode 100644 index 0000000..6bf0be3 --- /dev/null +++ b/glibc-revert-fseek-on-fclose.diff @@ -0,0 +1,212 @@ +This reverts the following patch from upstream PR 12724, +which can cause surprising changes in fclose behaviour when multiple +file handles refer to the same file (fclose on one changes file position +on the other). +See bnc #711829. + +git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!' + +2011-05-13 Ulrich Drepper + + [BZ #12724] + * libio/fileops.c (_IO_new_file_close_it): Always flush when + currently writing and seek to current position when not. + * libio/Makefile (tests): Add bug-fclose1. + * libio/bug-fclose1.c: New file. + + 2011-05-12 Ulrich Drepper + + [BZ #12511] +diff --git b/libio/Makefile a/libio/Makefile +index ec30904..83b9458 100644 +--- b/libio/Makefile ++++ a/libio/Makefile +@@ -1,4 +1,4 @@ +-# Copyright (C) 1995-2004,2006-2009,2011 Free Software Foundation, Inc. ++# Copyright (C) 1995-2004,2006,2007,2008,2009 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 +@@ -58,7 +58,7 @@ tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ + tst-memstream1 tst-memstream2 \ + tst-wmemstream1 tst-wmemstream2 \ + bug-memstream1 bug-wmemstream1 \ +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 ++ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos + test-srcs = test-freopen + + all: # Make this the default target; it will be defined in Rules. +diff --git b/libio/bug-fclose1.c a/libio/bug-fclose1.c +deleted file mode 100644 +index f1e09f5..0000000 +--- b/libio/bug-fclose1.c ++++ /dev/null +@@ -1,132 +0,0 @@ +-// BZ #12724 +- +-static void do_prepare (void); +-#define PREPARE(argc, argv) do_prepare () +-static int do_test (void); +-#define TEST_FUNCTION do_test() +-#include "../test-skeleton.c" +- +- +-static int fd; +- +- +-static void +-do_prepare (void) +-{ +- fd = create_temp_file ("bug-fclose1.", NULL); +- if (fd == -1) +- { +- printf ("cannot create temporary file: %m\n"); +- exit (1); +- } +-} +- +- +-static int +-do_test (void) +-{ +- static const char pattern[] = "hello world"; +- +- /* Prepare a seekable file. */ +- if (write (fd, pattern, sizeof pattern) != sizeof pattern) +- { +- printf ("cannot write pattern: %m\n"); +- return 1; +- } +- if (lseek (fd, 1, SEEK_SET) != 1) +- { +- printf ("cannot seek after write: %m\n"); +- return 1; +- } +- +- /* Create an output stream visiting the file; when it is closed, all +- other file descriptors visiting the file must see the new file +- position. */ +- int fd2 = dup (fd); +- if (fd2 < 0) +- { +- printf ("cannot duplicate descriptor for writing: %m\n"); +- return 1; +- } +- FILE *f = fdopen (fd2, "w"); +- if (f == NULL) +- { +- printf ("first fdopen failed: %m\n"); +- return 1; +- } +- if (fputc (pattern[1], f) != pattern[1]) +- { +- printf ("fputc failed: %m\n"); +- return 1; +- } +- if (fclose (f) != 0) +- { +- printf ("first fclose failed: %m\n"); +- return 1; +- } +- errno = 0; +- if (lseek (fd2, 0, SEEK_CUR) != -1) +- { +- printf ("lseek after fclose after write did not fail\n"); +- return 1; +- } +- if (errno != EBADF) +- { +- printf ("lseek after fclose after write did not fail with EBADF: %m\n"); +- return 1; +- } +- off_t o = lseek (fd, 0, SEEK_CUR); +- if (o != 2) +- { +- printf ("\ +-lseek on original descriptor after first fclose returned %ld, expected 2\n", +- (long int) o); +- return 1; +- } +- +- /* Likewise for an input stream. */ +- fd2 = dup (fd); +- if (fd2 < 0) +- { +- printf ("cannot duplicate descriptor for reading: %m\n"); +- return 1; +- } +- f = fdopen (fd2, "r"); +- if (f == NULL) +- { +- printf ("second fdopen failed: %m\n"); +- return 1; +- } +- char c = fgetc (f); +- if (c != pattern[2]) +- { +- printf ("getc returned %c, expected %c\n", c, pattern[2]); +- return 1; +- } +- if (fclose (f) != 0) +- { +- printf ("second fclose failed: %m\n"); +- return 1; +- } +- errno = 0; +- if (lseek (fd2, 0, SEEK_CUR) != -1) +- { +- printf ("lseek after fclose after read did not fail\n"); +- return 1; +- } +- if (errno != EBADF) +- { +- printf ("lseek after fclose after read did not fail with EBADF: %m\n"); +- return 1; +- } +- o = lseek (fd, 0, SEEK_CUR); +- if (o != 3) +- { +- printf ("\ +-lseek on original descriptor after second fclose returned %ld, expected 3\n", +- (long int) o); +- return 1; +- } +- +- return 0; +-} +Index: glibc-2.14/libio/fileops.c +=================================================================== +--- glibc-2.14.orig/libio/fileops.c ++++ glibc-2.14/libio/fileops.c +@@ -160,28 +160,20 @@ int + _IO_new_file_close_it (fp) + _IO_FILE *fp; + { ++ int write_status; + if (!_IO_file_is_open (fp)) + return EOF; + +- int write_status; +- if (_IO_in_put_mode (fp)) ++ if ((fp->_flags & _IO_NO_WRITES) == 0 ++ && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0) + write_status = _IO_do_flush (fp); +- else if (fp->_offset != _IO_pos_BAD && fp->_IO_read_base != NULL +- && !_IO_in_backup (fp)) +- { +- off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0); +- if (o == WEOF) +- write_status = EOF; +- else +- write_status = _IO_SYSSEEK (fp, o, SEEK_SET) < 0 ? EOF : 0; +- } + else + write_status = 0; + + INTUSE(_IO_unsave_markers) (fp); + + int close_status = ((fp->_flags2 & _IO_FLAGS2_NOCLOSE) == 0 + ? _IO_SYSCLOSE (fp) : 0); + + /* Free buffer. */ + #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T diff --git a/glibc-static-memcpy.diff b/glibc-static-memcpy.diff deleted file mode 100644 index 8ed7718..0000000 --- a/glibc-static-memcpy.diff +++ /dev/null @@ -1,61 +0,0 @@ -2011-02-06 Mike Frysinger - - [BZ #12653] - * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Only protect - MEMCPY_CHK with USE_AS_BCOPY ifdef check. - * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise. - * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. - * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise. - -Index: glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S -=================================================================== ---- glibc-2.13.orig/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S -+++ glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S -@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx: - #endif - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - movl 12(%esp), %eax - cmpl %eax, 16(%esp) -Index: glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3.S -=================================================================== ---- glibc-2.13.orig/sysdeps/i386/i686/multiarch/memcpy-ssse3.S -+++ glibc-2.13/sysdeps/i386/i686/multiarch/memcpy-ssse3.S -@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx: - #endif - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - movl 12(%esp), %eax - cmpl %eax, 16(%esp) -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S -@@ -49,7 +49,7 @@ - ud2 - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - cmpq %rdx, %rcx - jb HIDDEN_JUMPTARGET (__chk_fail) -Index: glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3.S -=================================================================== ---- glibc-2.13.orig/sysdeps/x86_64/multiarch/memcpy-ssse3.S -+++ glibc-2.13/sysdeps/x86_64/multiarch/memcpy-ssse3.S -@@ -49,7 +49,7 @@ - ud2 - - .section .text.ssse3,"ax",@progbits --#if defined SHARED && !defined NOT_IN_libc -+#if !defined USE_AS_BCOPY - ENTRY (MEMCPY_CHK) - cmpq %rdx, %rcx - jb HIDDEN_JUMPTARGET (__chk_fail) diff --git a/glibc-strict-aliasing.diff b/glibc-strict-aliasing.diff index ef7df01..e8287e9 100644 --- a/glibc-strict-aliasing.diff +++ b/glibc-strict-aliasing.diff @@ -62,9 +62,9 @@ Index: resolv/Makefile +cflags += -Wno-strict-prototypes -Wno-write-strings Index: sunrpc/Makefile =================================================================== ---- sunrpc/Makefile.orig 2011-05-25 20:00:57.381005790 +0200 -+++ sunrpc/Makefile 2011-06-15 14:57:37.657361569 +0200 -@@ -129,6 +129,10 @@ +--- sunrpc/Makefile.orig ++++ sunrpc/Makefile +@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions CPPFLAGS += -D_RPC_THREAD_SAFE_ @@ -72,10 +72,9 @@ Index: sunrpc/Makefile +CFLAGS-clnt_udp.c = -fno-strict-aliasing +CFLAGS-clnt_unix.c = -fno-strict-aliasing + - include ../Rules - - $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ - + $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so + $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so + $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so Index: sysdeps/powerpc/powerpc64/elf/Makefile =================================================================== --- sysdeps/powerpc/powerpc64/elf/Makefile.orig diff --git a/glibc-vfprintf-positional.diff b/glibc-vfprintf-positional.diff deleted file mode 100644 index 9947188..0000000 --- a/glibc-vfprintf-positional.diff +++ /dev/null @@ -1,20 +0,0 @@ -2011-01-27 Petr Baudis - - * stdio-common/vfprintf.c (vfprintf): Pass correct newlen - to extend_alloca(). - -diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c -index fc370e8..ecf5dfa 100644 ---- a/stdio-common/vfprintf.c -+++ b/stdio-common/vfprintf.c -@@ -1682,7 +1682,9 @@ do_positional: - { - /* Extend the array of format specifiers. */ - struct printf_spec *old = specs; -- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); -+ specs = extend_alloca (specs, nspecs_max, -+ 2 * nspecs_max -+ * sizeof (struct printf_spec)); - - /* Copy the old array's elements to the new space. */ - memmove (specs, old, nspecs * sizeof (struct printf_spec)); diff --git a/glibc-zarch-longlong.diff b/glibc-zarch-longlong.diff deleted file mode 100644 index d61a019..0000000 --- a/glibc-zarch-longlong.diff +++ /dev/null @@ -1,41 +0,0 @@ -Index: glibc/stdlib/longlong.h -=================================================================== ---- glibc.orig/stdlib/longlong.h -+++ glibc/stdlib/longlong.h -@@ -303,6 +303,7 @@ UDItype __umulsidi3 (USItype, USItype); - #endif - - #if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32 -+#if !defined (__zarch__) - #define smul_ppmm(xh, xl, m0, m1) \ - do { \ - union {DItype __ll; \ -@@ -324,6 +325,28 @@ UDItype __umulsidi3 (USItype, USItype); - : "0" (__x.__ll), "r" (d)); \ - (q) = __x.__i.__l; (r) = __x.__i.__h; \ - } while (0) -+#else -+#define smul_ppmm(xh, xl, m0, m1) \ -+ do { \ -+ register SItype r0 __asm__ ("0"); \ -+ register SItype r1 __asm__ ("1") = m0; \ -+ \ -+ __asm__ ("mr\t%%r0,%3" \ -+ : "=r" (r0), "=r" (r1) \ -+ : "r" (r1), "r" (m1)); \ -+ (xh) = r1; (xl) = r0; \ -+ } while (0) -+#define sdiv_qrnnd(q, r, n1, n0, d) \ -+ do { \ -+ register SItype r0 __asm__ ("0") = n0; \ -+ register SItype r1 __asm__ ("1") = n1; \ -+ \ -+ __asm__ ("dr\t%%r0,%3" \ -+ : "=r" (r0), "=r" (r1) \ -+ : "r" (r0), "r" (r1), "r" (d)); \ -+ (q) = r0; (r) = r1; \ -+ } while (0) -+#endif /* __zarch__ */ - #endif - - #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32 diff --git a/glibc.changes b/glibc.changes index 0d5ee00..be00dc8 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,29 @@ +------------------------------------------------------------------- +Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de + +- Enhance rpmlintrc to ignore shlib policy violation. +- Remove obsolete patches glibc-fnmatch-multibyte.diff, + glibc-2.3.1.localedef.diff, glibc-2.10-nscd-nostack.diff. + +------------------------------------------------------------------- +Wed Aug 17 14:47:11 UTC 2011 - aj@suse.de + +- Update to current 2.14 branch: Various bugfixes. + Remove upstreamed patches missing-include-build-fix.diff, + glibc-2.14-res_send.patch, glibc-dl-fxstatat64.patch) + +------------------------------------------------------------------- +Wed Aug 17 14:09:50 UTC 2011 - aj@suse.de + +- Revert removal of sunrpc code (patch glibc2.14-revert-sunrpc-removal.patch). + +------------------------------------------------------------------- +Fri Aug 12 14:55:12 CEST 2011 - matz@suse.de + +- Revert seeking on fclose, incomplete implementation of POSIX + behaviour can confuse current users. [bnc #711829] + (patch glibc-revert-fseek-on-fclose.diff) + ------------------------------------------------------------------- Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de @@ -22,6 +48,22 @@ Tue Jul 19 08:41:55 UTC 2011 - lnussel@suse.de previous versions if the password contains 8bit chracters! * libcrypt now exports crypt_gensalt +------------------------------------------------------------------- +Fri Jul 15 07:54:46 UTC 2011 - aj@suse.de + +- Update to glibc 2.14: + * The RPC implementation in libc is obsoleted. Old programs keep working + but new programs cannot be linked with the routines in libc anymore. + Programs in need of RPC functionality must be linked against TI-RPC. + The TI-RPC implementation is IPv6 enabled and there are other benefits. + * Various bugfixes, new locales, new linux kernel interfaces. + * New program sotruss to traces calls through PLTs + * Removed the following obsoleted patches: glibc-2.6-configure.diff, + glibc-disable-backward-memcpy.diff, glibc-static-memcpy.diff, + glibc-zarch-longlong.diff, glibc-bso-12454.diff, + glibc-vfprintf-positional.diff +- Build without -fno-strict-aliasing. + ------------------------------------------------------------------- Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index c3289a4..6ddd33d 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -12,3 +12,5 @@ addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so") addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post") # Do not require permissions, this will lead to a cycle (bnc#700925): addFilter("glibc\..*: permissions-missing-requires") +# We will not rename glibc to follow the shlib policy +addFilter("shlib-policy-missing-suffix") diff --git a/glibc.spec b/glibc.spec index b3905f9..d33fa26 100644 --- a/glibc.spec +++ b/glibc.spec @@ -77,11 +77,13 @@ Obsoletes: glibc-64bit %ifarch ppc Obsoletes: glibc-32bit %endif -Version: 2.13 -Release: 29 +AutoReqProv: on +Version: 2.14 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html -Source: glibc-%{version}-996cf2ef0727.tar.bz2 -Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-4eddf93f5cc2.tar.bz2 +Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: usr.sbin.nscd @@ -110,10 +112,8 @@ NoSource: 0 # # PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de Patch0: glibc-testsuite.patch -# PATCH-FIX-OPENSUSE handle glibc binaries +# PATCH-FIX-OPENSUSE handle glibc binaries Patch1: glibc-2.3.90-noversion.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch2: glibc-fnmatch-multibyte.diff # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change Patch3: glibc-resolv-reload.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -125,8 +125,6 @@ Patch7: glibc-version.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch8: glibc-2.4.90-revert-only-euro.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch11: glibc-2.3.1.localedef.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch13: libm-x86-64.diff.bz2 @@ -148,8 +146,6 @@ Patch23: glibc-2.3.3-nscd-db-path.diff Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch25: glibc-2.3.90-langpackdir.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch27: glibc-2.6-configure.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de Patch28: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Do not generate hardlink for getconf @@ -160,16 +156,12 @@ Patch30: getaddrinfo-ipv6-sanity.diff Patch33: glibc-compiled-binaries.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch36: glibc-no-unwind-tables.diff -# PATCH-FIX-OPENSUSE bnc#387202 -Patch37: glibc-2.10-nscd-nostack.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch40: libm-x86-64-exceptions.diff # PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de Patch41: glibc-uio-cell.diff -# PATCH-FIX-UPSTREAM -- add missing includes aj@suse.de -Patch43: missing-include-build-fix.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch45: glibc-gai-private4.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -182,22 +174,10 @@ Patch48: glibc-malloc-arena-max.diff Patch49: glibc-fini-unwind.diff # PATCH-FIX-UPSTREAM install gconv-modules aj@suse.de Patch50: glibc-gconvcache-s390.diff -# PATCH-FIX-UPSTREAM - Fix alloca argument bso#12445 aj@suse.de -Patch51: glibc-vfprintf-positional.diff # PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff -# PATCH-FIX-UPSTREAM Fix longlong.h for zArch -Patch53: glibc-zarch-longlong.diff -# PATCH-FEATURE-OPENSUSE disable backward memcpy aj@suse.de -Patch54: glibc-disable-backward-memcpy.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch55: glibc-bso-12454.diff -# PATCH-FIX-UPSTREAM fix static memcpy -Patch56: glibc-static-memcpy.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff -# PATCH-FIX-UPSTREAM fix preloading of shared libs aj@suse.de -Patch59: glibc-2.13-dl-load.patch # PATCH-FIX-UPSTREAM fix x86 aj@suse.de Patch60: glibc-x86-bits-sigcontext.patch # PATCH-FEATURE-UPSTREAM Speedup getsysstats call aj@suse.de @@ -210,7 +190,10 @@ Patch63: glibc-2.13-localedef.patch Patch64: glibc-fix-rwlock-stack-imbalance.patch # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch65: glibc-fix-double-loopback.diff -# +# PATCH-FEATURE-OPENSUSE Revert sunrpc removal aj@suse.de +Patch66: glibc2.14-revert-sunrpc-removal.patch +# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de +Patch67: glibc-revert-fseek-on-fclose.diff # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.1-sha.diff @@ -387,15 +370,11 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/ %patch0 # libNoVersion part is only active on ix86 %patch1 -# Disabled -# %patch2 -p1 %patch3 %patch4 %patch5 -p1 %patch7 %patch8 -# Disabled -#%patch11 %patch12 %patch13 -E # We have s_sincos.c in patch13, remove duplicate @@ -404,7 +383,8 @@ rm sysdeps/x86_64/fpu/s_sincos.S %patch16 %patch18 %patch20 -%patch21 +# XXX Did not patch for 2.14: +#%patch21 # avoid changing nscd_stat.c mtime to avoid code generation # differences on each rebuild touch -r nscd/nscd_stat.c nscd/s-stamp @@ -414,18 +394,14 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch25 -%patch27 %patch28 %patch29 %patch30 %patch33 %patch36 -# Disable for now -#%patch37 %patch38 %patch40 %patch41 -p1 -%patch43 -p1 %patch45 %patch46 -p1 %patch47 -p1 @@ -434,20 +410,16 @@ rm nscd/s-stamp %endif %patch49 %patch50 -%patch51 -p1 %patch52 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 %patch58 -%patch59 -p1 %patch60 -p1 %patch61 -p1 %patch62 -p1 %patch63 -p1 %patch64 -p1 %patch65 -p1 +%patch66 -p1 +%patch67 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -917,7 +889,6 @@ exit 0 %doc %{_mandir}/man1/getent.1.gz %doc %{_mandir}/man1/localedef.1.gz %doc %{_mandir}/man5/* -%doc %{_mandir}/man8/rpcinfo.8.gz /%{_lib}/ld-%{version}.so %ifarch ppc s390 mips hppa /%{_lib}/ld.so.1 @@ -1025,11 +996,11 @@ exit 0 %dir %attr(0755,root,root) %{_libdir}/getconf %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade -%{_sbindir}/rpcinfo %{_sbindir}/iconvconfig %ifarch %ix86 + %files obsolete %defattr (755,root,root,755) %dir /%{_lib}/obsolete/ @@ -1138,11 +1109,14 @@ exit 0 %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so +%dir /%{_libdir}/audit +/%{_libdir}/audit/sotruss-lib.so # These need gd-devel for building # %%{_bindir}/memusage # %%{_bindir}/memusagestat %{_bindir}/mtrace %{_bindir}/pcprofiledump +%{_bindir}/sotruss %{_bindir}/xtrace %changelog diff --git a/glibc2.14-revert-sunrpc-removal.patch b/glibc2.14-revert-sunrpc-removal.patch new file mode 100644 index 0000000..fe14b5f --- /dev/null +++ b/glibc2.14-revert-sunrpc-removal.patch @@ -0,0 +1,63 @@ +Index: glibc-2.14/nis/Makefile +=================================================================== +--- glibc-2.14.orig/nis/Makefile ++++ glibc-2.14/nis/Makefile +@@ -23,9 +23,9 @@ subdir := nis + + aux := nis_hash + ++headers := $(wildcard rpcsvc/*.[hx]) + distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ +- nisplus-parser.h nis_xdr.h nss \ +- $(wildcard rpcsvc/*.[hx]) ++ nisplus-parser.h nis_xdr.h nss + + # These are the databases available for the nis (and perhaps later nisplus) + # service. This must be a superset of the services in nss. +Index: glibc-2.14/NEWS +=================================================================== +--- glibc-2.14.orig/NEWS ++++ glibc-2.14/NEWS +@@ -20,16 +20,6 @@ Version 2.14 + 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, + 12795, 12811, 12813, 12814, 12841 + +-* The RPC implementation in libc is obsoleted. Old programs keep working +- but new programs cannot be linked with the routines in libc anymore. +- Programs in need of RPC functionality must be linked against TI-RPC. +- The TI-RPC implementation is IPv6 enabled and there are other benefits. +- +- Visible changes of this change include (obviously) the inability to link +- programs using RPC functions without referencing the TI-RPC library and the +- removal of the RPC headers from the glibc headers. +- Implemented by Ulrich Drepper. +- + * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, + syncfs, setns, sendmmsg + +Index: glibc-2.14/include/libc-symbols.h +=================================================================== +--- glibc-2.14.orig/include/libc-symbols.h ++++ glibc-2.14/include/libc-symbols.h +@@ -635,7 +635,7 @@ for linking") + # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) + # define libc_hidden_def(name) hidden_def (name) + # define libc_hidden_weak(name) hidden_weak (name) +-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) ++# define libc_hidden_nolink(name, version) hidden_def (name) + # define libc_hidden_ver(local, name) hidden_ver (local, name) + # define libc_hidden_data_def(name) hidden_data_def (name) + # define libc_hidden_data_weak(name) hidden_data_weak (name) +Index: glibc-2.14/sunrpc/Makefile +=================================================================== +--- glibc-2.14.orig/sunrpc/Makefile ++++ glibc-2.14/sunrpc/Makefile +@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth + des_crypt.h) + headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ + $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h +-headers = rpc/netdb.h ++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) + install-others = $(inst_sysconfdir)/rpc + generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ + $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 index ffb101e..e133d04 100644 --- a/manpages.tar.bz2 +++ b/manpages.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e84aeb3808f86c7cd169ca795b31d1fdef21864c74b827ca750f3d478f0a95a5 -size 12562 +oid sha256:33df2d6951abd1d111570be780e3e6b265183d51b2f0a34699c6e39380b8ea4c +size 11611 diff --git a/missing-include-build-fix.diff b/missing-include-build-fix.diff deleted file mode 100644 index d1fc51e..0000000 --- a/missing-include-build-fix.diff +++ /dev/null @@ -1,31 +0,0 @@ -2011-06-14 Andreas Jaeger - - * pthread_rwlock_init.c: Include for - memset declaration. - -2011-06-14 Andreas Jaeger - - * sysdeps/unix/sysv/linux/check_native.c: Include for - memset declaration. - ---- a/sysdeps/unix/sysv/linux/check_native.c -+++ b/sysdeps/unix/sysv/linux/check_native.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include - #include - #include - ---- a/nptl/pthread_rwlock_init.c -+++ b/nptl/pthread_rwlock_init.c -@@ -18,6 +18,7 @@ - 02111-1307 USA. */ - - #include "pthreadP.h" -+#include - #include - - From 257877d3c339deb143a5404f1624765060474e2e1c8ef0779d90c8782b28c2f1 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Thu, 18 Aug 2011 11:43:18 +0000 Subject: [PATCH 3/4] Accepting request 79220 from home:a_jaeger:branches:openSUSE:Factory Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] OBS-URL: https://build.opensuse.org/request/show/79220 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=89 --- glibc-fix-lookup-crash.patch | 19 +++++++++++++++++++ glibc.changes | 6 ++++++ glibc.spec | 3 +++ 3 files changed, 28 insertions(+) create mode 100644 glibc-fix-lookup-crash.patch diff --git a/glibc-fix-lookup-crash.patch b/glibc-fix-lookup-crash.patch new file mode 100644 index 0000000..d4aaf5c --- /dev/null +++ b/glibc-fix-lookup-crash.patch @@ -0,0 +1,19 @@ +Index: glibc-2.11.3/elf/dl-close.c +=================================================================== +--- glibc-2.11.3.orig/elf/dl-close.c 2011-05-27 15:08:23.000000000 +0200 ++++ glibc-2.11.3/elf/dl-close.c 2011-07-13 19:28:52.000000000 +0200 +@@ -127,7 +127,13 @@ _dl_close_worker (struct link_map *map) + { + struct link_map **oldp = map->l_initfini; + map->l_initfini = map->l_orig_initfini; +- _dl_scope_free (oldp); ++ /* We can't remove the l_initfini memory because ++ it's shared with l_searchlist.r_list. We don't clear ++ the latter so when we dlopen this object again that ++ entry would point to stale memory. And we don't want ++ to recompute it as it would involve a new call to ++ map_object_deps. ++ _dl_scope_free (oldp); */ + } + } + diff --git a/glibc.changes b/glibc.changes index be00dc8..16fc211 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de + +- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140] + ------------------------------------------------------------------- Wed Aug 17 18:56:03 UTC 2011 - aj@suse.de @@ -29,6 +34,7 @@ Thu Jul 21 12:37:09 UTC 2011 - rhafer@suse.de - Disable rewriting ::1 to 127.0.0.1 for /etc/hosts entries. (bnc#684534, bnc#706719) + (patch glibc-fix-double-loopback.diff) ------------------------------------------------------------------- Wed Jul 20 15:04:33 UTC 2011 - lnussel@suse.de diff --git a/glibc.spec b/glibc.spec index d33fa26..06fe12e 100644 --- a/glibc.spec +++ b/glibc.spec @@ -194,6 +194,8 @@ Patch65: glibc-fix-double-loopback.diff Patch66: glibc2.14-revert-sunrpc-removal.patch # PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de Patch67: glibc-revert-fseek-on-fclose.diff +# PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 matz@suse.de +Patch68: glibc-fix-lookup-crash.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de Patch80: crypt_blowfish-1.1-sha.diff @@ -420,6 +422,7 @@ rm nscd/s-stamp %patch65 -p1 %patch66 -p1 %patch67 -p1 +%patch68 -p1 # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! From 1f4c05e41c42e625b17678219dc297aaa88533a7d370e7d325af6803826df141 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Thu, 18 Aug 2011 12:05:28 +0000 Subject: [PATCH 4/4] Accepting request 79226 from home:a_jaeger:branches:openSUSE:Factory Fix crash (access-after-free) in dl_lookup_x. [bnc#703140];mark subpackages as noarch. OBS-URL: https://build.opensuse.org/request/show/79226 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=90 --- glibc.changes | 5 +++++ glibc.spec | 3 +++ 2 files changed, 8 insertions(+) diff --git a/glibc.changes b/glibc.changes index 16fc211..b150122 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Aug 18 11:55:08 UTC 2011 - aj@suse.de + +- Mark glibc-info, glibc-html and glibc-i18ndata as noarch packages. + ------------------------------------------------------------------- Wed Aug 17 18:57:00 UTC 2011 - matz@suse.de diff --git a/glibc.spec b/glibc.spec index 06fe12e..783c6d0 100644 --- a/glibc.spec +++ b/glibc.spec @@ -211,6 +211,7 @@ Summary: Info Files for the GNU C Library Group: Documentation/Other Requires(post): %{install_info_prereq} Requires(postun): %{install_info_prereq} +BuildArch: noarch %description info This package contains the documentation for the GNU C library stored as @@ -221,6 +222,7 @@ complete and is partially out of date. License: GPLv2+ ; LGPLv2.1+ Summary: HTML Documentation for the GNU C Library Group: Documentation/HTML +BuildArch: noarch %description html This package contains the HTML documentation for the GNU C library. Due @@ -231,6 +233,7 @@ partially out of date. License: LGPLv2.1+ Summary: Database Sources for 'locale' Group: System/Libraries +BuildArch: noarch %description i18ndata This package contains the data needed to build the locale data files to