forked from pool/glibc
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
This commit is contained in:
parent
278d27159a
commit
f9d5ef4791
@ -13,16 +13,7 @@ Index: sysdeps/posix/getaddrinfo.c
|
|||||||
{
|
{
|
||||||
const struct gaih_typeproto *tp = gaih_inet_typeproto;
|
const struct gaih_typeproto *tp = gaih_inet_typeproto;
|
||||||
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
|
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
|
||||||
@@ -706,7 +706,7 @@ gaih_inet (const char *name, const struc
|
@@ -766,7 +766,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
|
|
||||||
if (fct != NULL)
|
if (fct != NULL)
|
||||||
{
|
{
|
||||||
if (req->ai_family == AF_INET6
|
if (req->ai_family == AF_INET6
|
||||||
@ -31,7 +22,7 @@ Index: sysdeps/posix/getaddrinfo.c
|
|||||||
{
|
{
|
||||||
gethosts (AF_INET6, struct in6_addr);
|
gethosts (AF_INET6, struct in6_addr);
|
||||||
no_inet6_data = no_data;
|
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
|
if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
|
||||||
|| hints->ai_family == AF_INET6)
|
|| hints->ai_family == AF_INET6)
|
||||||
{
|
{
|
||||||
|
@ -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. */
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:023aef147d380f0e4ca2ff0617355b0ef69e41f00db7c463c800fabdb62e8faa
|
|
||||||
size 16381764
|
|
@ -1,320 +0,0 @@
|
|||||||
2011-05-11 Ulrich Drepper <drepper@gmail.com>
|
|
||||||
|
|
||||||
[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 <pasky@suse.cz>
|
|
||||||
Ulrich Drepper <drepper@gmail.com>
|
|
||||||
|
|
||||||
[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 <schwab@redhat.com>
|
|
||||||
|
|
||||||
* 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 <drepper@gmail.com>
|
|
||||||
|
|
||||||
* 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;
|
|
3
glibc-2.14-4eddf93f5cc2.tar.bz2
Normal file
3
glibc-2.14-4eddf93f5cc2.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:497c07f228208e8a0660ae5ee8919e4a6b5b59bb867891c7c02de8995310960e
|
||||||
|
size 15640100
|
@ -1,6 +1,7 @@
|
|||||||
For details see:
|
For details see:
|
||||||
http://sourceware.org/bugzilla/show_bug.cgi?id=5379
|
http://sourceware.org/bugzilla/show_bug.cgi?id=5379
|
||||||
|
|
||||||
|
|
||||||
Index: sunrpc/clnt_udp.c
|
Index: sunrpc/clnt_udp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- sunrpc/clnt_udp.c.orig
|
--- sunrpc/clnt_udp.c.orig
|
||||||
|
@ -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);
|
|
||||||
|
|
@ -2,7 +2,7 @@ Index: nscd/cache.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100
|
--- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100
|
||||||
+++ nscd/cache.c 2010-02-14 14:58:08.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)
|
if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX)
|
||||||
{
|
{
|
||||||
struct stat64 st;
|
struct stat64 st;
|
||||||
@ -14,7 +14,7 @@ Index: nscd/cache.c
|
|||||||
{
|
{
|
||||||
- char buf[128];
|
- char buf[128];
|
||||||
- /* We cannot stat() the file, disable file checking if the
|
- /* 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"),
|
- dbg_log (_("cannot stat() file `%s': %s"),
|
||||||
- table->filename, strerror_r (errno, buf, sizeof (buf)));
|
- table->filename, strerror_r (errno, buf, sizeof (buf)));
|
||||||
- if (errno == ENOENT)
|
- if (errno == ENOENT)
|
||||||
@ -37,14 +37,12 @@ Index: nscd/cache.c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /* now == 0 means just check for changed files */
|
+ /* now == 0 means just check for changed files */
|
||||||
+ if (now == (time_t)0)
|
+ if (now == (time_t)0)
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+
|
|
||||||
/* We run through the table and find values which are not valid anymore.
|
/* 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
|
Index: nscd/connections.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100
|
--- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100
|
||||||
|
@ -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
|
|
@ -1,27 +0,0 @@
|
|||||||
2011-03-02 Andreas Schwab <schwab@redhat.com>
|
|
||||||
|
|
||||||
[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 ();
|
|
@ -2,20 +2,20 @@ Index: bits/sched.h
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- bits/sched.h.orig
|
--- bits/sched.h.orig
|
||||||
+++ bits/sched.h
|
+++ bits/sched.h
|
||||||
@@ -38,7 +38,7 @@ struct sched_param
|
@@ -54,7 +54,7 @@ struct __sched_param
|
||||||
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
||||||
# define __cpu_set_t_defined
|
# define __cpu_set_t_defined
|
||||||
/* Size definition for CPU sets. */
|
/* Size definition for CPU sets. */
|
||||||
-# define __CPU_SETSIZE 1024
|
-# define __CPU_SETSIZE 1024
|
||||||
+# define __CPU_SETSIZE 4096
|
+# define __CPU_SETSIZE 4096
|
||||||
# define __NCPUBITS (8 * sizeof (__cpu_mask))
|
# define __NCPUBITS (8 * sizeof (__cpu_mask))
|
||||||
|
|
||||||
/* Type for array elements in 'cpu_set'. */
|
/* Type for array elements in 'cpu_set_t'. */
|
||||||
Index: sysdeps/unix/sysv/linux/bits/sched.h
|
Index: sysdeps/unix/sysv/linux/bits/sched.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- sysdeps/unix/sysv/linux/bits/sched.h.orig
|
--- sysdeps/unix/sysv/linux/bits/sched.h.orig
|
||||||
+++ sysdeps/unix/sysv/linux/bits/sched.h
|
+++ sysdeps/unix/sysv/linux/bits/sched.h
|
||||||
@@ -106,7 +106,7 @@ struct __sched_param
|
@@ -113,7 +113,7 @@ struct __sched_param
|
||||||
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
||||||
# define __cpu_set_t_defined
|
# define __cpu_set_t_defined
|
||||||
/* Size definition for CPU sets. */
|
/* Size definition for CPU sets. */
|
||||||
|
@ -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
|
|
@ -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 <schwab@suse.de>
|
|
||||||
|
|
||||||
* 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. */
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b11c4501ae929883447f409c31d65e82822b1c5693075a825a3d54612876ee5a
|
|
||||||
size 625945
|
|
3
glibc-ports-2.14.tar.bz2
Normal file
3
glibc-ports-2.14.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:808f0f6938af4d17fe6c091597df02d85ca5b4a3da21daf5065cba9a32ec7d02
|
||||||
|
size 627448
|
212
glibc-revert-fseek-on-fclose.diff
Normal file
212
glibc-revert-fseek-on-fclose.diff
Normal file
@ -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 <drepper@gmail.com>
|
||||||
|
|
||||||
|
[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 <drepper@gmail.com>
|
||||||
|
|
||||||
|
[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
|
@ -1,61 +0,0 @@
|
|||||||
2011-02-06 Mike Frysinger <vapier@gentoo.org>
|
|
||||||
|
|
||||||
[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)
|
|
@ -62,9 +62,9 @@ Index: resolv/Makefile
|
|||||||
+cflags += -Wno-strict-prototypes -Wno-write-strings
|
+cflags += -Wno-strict-prototypes -Wno-write-strings
|
||||||
Index: sunrpc/Makefile
|
Index: sunrpc/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- sunrpc/Makefile.orig 2011-05-25 20:00:57.381005790 +0200
|
--- sunrpc/Makefile.orig
|
||||||
+++ sunrpc/Makefile 2011-06-15 14:57:37.657361569 +0200
|
+++ sunrpc/Makefile
|
||||||
@@ -129,6 +129,10 @@
|
@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions
|
||||||
|
|
||||||
CPPFLAGS += -D_RPC_THREAD_SAFE_
|
CPPFLAGS += -D_RPC_THREAD_SAFE_
|
||||||
|
|
||||||
@ -72,10 +72,9 @@ Index: sunrpc/Makefile
|
|||||||
+CFLAGS-clnt_udp.c = -fno-strict-aliasing
|
+CFLAGS-clnt_udp.c = -fno-strict-aliasing
|
||||||
+CFLAGS-clnt_unix.c = -fno-strict-aliasing
|
+CFLAGS-clnt_unix.c = -fno-strict-aliasing
|
||||||
+
|
+
|
||||||
include ../Rules
|
$(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so
|
||||||
|
$(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
|
||||||
$(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \
|
$(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
|
||||||
|
|
||||||
Index: sysdeps/powerpc/powerpc64/elf/Makefile
|
Index: sysdeps/powerpc/powerpc64/elf/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- sysdeps/powerpc/powerpc64/elf/Makefile.orig
|
--- sysdeps/powerpc/powerpc64/elf/Makefile.orig
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
2011-01-27 Petr Baudis <pasky@suse.cz>
|
|
||||||
|
|
||||||
* 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));
|
|
@ -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
|
|
@ -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
|
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!
|
previous versions if the password contains 8bit chracters!
|
||||||
* libcrypt now exports crypt_gensalt
|
* 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
|
Tue Jul 12 14:21:29 UTC 2011 - aj@suse.de
|
||||||
|
|
||||||
|
@ -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")
|
addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post")
|
||||||
# Do not require permissions, this will lead to a cycle (bnc#700925):
|
# Do not require permissions, this will lead to a cycle (bnc#700925):
|
||||||
addFilter("glibc\..*: permissions-missing-requires")
|
addFilter("glibc\..*: permissions-missing-requires")
|
||||||
|
# We will not rename glibc to follow the shlib policy
|
||||||
|
addFilter("shlib-policy-missing-suffix")
|
||||||
|
64
glibc.spec
64
glibc.spec
@ -77,11 +77,13 @@ Obsoletes: glibc-64bit
|
|||||||
%ifarch ppc
|
%ifarch ppc
|
||||||
Obsoletes: glibc-32bit
|
Obsoletes: glibc-32bit
|
||||||
%endif
|
%endif
|
||||||
Version: 2.13
|
AutoReqProv: on
|
||||||
Release: 29
|
Version: 2.14
|
||||||
|
Release: 1
|
||||||
Url: http://www.gnu.org/software/libc/libc.html
|
Url: http://www.gnu.org/software/libc/libc.html
|
||||||
Source: glibc-%{version}-996cf2ef0727.tar.bz2
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2
|
Source: glibc-%{version}-4eddf93f5cc2.tar.bz2
|
||||||
|
Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.bz2
|
||||||
Source3: noversion.tar.bz2
|
Source3: noversion.tar.bz2
|
||||||
Source4: manpages.tar.bz2
|
Source4: manpages.tar.bz2
|
||||||
Source5: usr.sbin.nscd
|
Source5: usr.sbin.nscd
|
||||||
@ -110,10 +112,8 @@ NoSource: 0
|
|||||||
#
|
#
|
||||||
# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de
|
# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de
|
||||||
Patch0: glibc-testsuite.patch
|
Patch0: glibc-testsuite.patch
|
||||||
# PATCH-FIX-OPENSUSE handle glibc binaries
|
# PATCH-FIX-OPENSUSE handle glibc binaries
|
||||||
Patch1: glibc-2.3.90-noversion.diff
|
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
|
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
|
||||||
Patch3: glibc-resolv-reload.diff
|
Patch3: glibc-resolv-reload.diff
|
||||||
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
# 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
|
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||||
Patch8: glibc-2.4.90-revert-only-euro.diff
|
Patch8: glibc-2.4.90-revert-only-euro.diff
|
||||||
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
# 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
|
Patch12: glibc-2.3.2.no_archive.diff
|
||||||
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||||
Patch13: libm-x86-64.diff.bz2
|
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
|
Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff
|
||||||
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
|
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
|
||||||
Patch25: glibc-2.3.90-langpackdir.diff
|
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
|
# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de
|
||||||
Patch28: glibc-2.2-sunrpc.diff
|
Patch28: glibc-2.2-sunrpc.diff
|
||||||
# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf
|
# PATCH-FIX-OPENSUSE Do not generate hardlink for getconf
|
||||||
@ -160,16 +156,12 @@ Patch30: getaddrinfo-ipv6-sanity.diff
|
|||||||
Patch33: glibc-compiled-binaries.diff
|
Patch33: glibc-compiled-binaries.diff
|
||||||
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||||
Patch36: glibc-no-unwind-tables.diff
|
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
|
# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de
|
||||||
Patch38: glibc-cpusetsize.diff
|
Patch38: glibc-cpusetsize.diff
|
||||||
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||||
Patch40: libm-x86-64-exceptions.diff
|
Patch40: libm-x86-64-exceptions.diff
|
||||||
# PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de
|
# PATCH-FIX-OPENSUSE - Allow compilation with -altivec aj@suse.de
|
||||||
Patch41: glibc-uio-cell.diff
|
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
|
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||||
Patch45: glibc-gai-private4.diff
|
Patch45: glibc-gai-private4.diff
|
||||||
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
# 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
|
Patch49: glibc-fini-unwind.diff
|
||||||
# PATCH-FIX-UPSTREAM install gconv-modules aj@suse.de
|
# PATCH-FIX-UPSTREAM install gconv-modules aj@suse.de
|
||||||
Patch50: glibc-gconvcache-s390.diff
|
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
|
# PATCH-FIX-OPENSUSE bnc#657627
|
||||||
Patch52: glibc-elf-localscope.diff
|
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
|
# FIX-OPENSUSE compile some files with -fno-strict-aliasing
|
||||||
Patch58: glibc-strict-aliasing.diff
|
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 <bits/sigcontext.h> aj@suse.de
|
# PATCH-FIX-UPSTREAM fix x86 <bits/sigcontext.h> aj@suse.de
|
||||||
Patch60: glibc-x86-bits-sigcontext.patch
|
Patch60: glibc-x86-bits-sigcontext.patch
|
||||||
# PATCH-FEATURE-UPSTREAM Speedup getsysstats call aj@suse.de
|
# 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
|
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
|
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
|
||||||
Patch65: glibc-fix-double-loopback.diff
|
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
|
# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnussel@suse.de
|
||||||
Patch80: crypt_blowfish-1.1-sha.diff
|
Patch80: crypt_blowfish-1.1-sha.diff
|
||||||
|
|
||||||
@ -387,15 +370,11 @@ mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/
|
|||||||
%patch0
|
%patch0
|
||||||
# libNoVersion part is only active on ix86
|
# libNoVersion part is only active on ix86
|
||||||
%patch1
|
%patch1
|
||||||
# Disabled
|
|
||||||
# %patch2 -p1
|
|
||||||
%patch3
|
%patch3
|
||||||
%patch4
|
%patch4
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch7
|
%patch7
|
||||||
%patch8
|
%patch8
|
||||||
# Disabled
|
|
||||||
#%patch11
|
|
||||||
%patch12
|
%patch12
|
||||||
%patch13 -E
|
%patch13 -E
|
||||||
# We have s_sincos.c in patch13, remove duplicate
|
# We have s_sincos.c in patch13, remove duplicate
|
||||||
@ -404,7 +383,8 @@ rm sysdeps/x86_64/fpu/s_sincos.S
|
|||||||
%patch16
|
%patch16
|
||||||
%patch18
|
%patch18
|
||||||
%patch20
|
%patch20
|
||||||
%patch21
|
# XXX Did not patch for 2.14:
|
||||||
|
#%patch21
|
||||||
# avoid changing nscd_stat.c mtime to avoid code generation
|
# avoid changing nscd_stat.c mtime to avoid code generation
|
||||||
# differences on each rebuild
|
# differences on each rebuild
|
||||||
touch -r nscd/nscd_stat.c nscd/s-stamp
|
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
|
touch -r nscd/s-stamp nscd/nscd_stat.c
|
||||||
rm nscd/s-stamp
|
rm nscd/s-stamp
|
||||||
%patch25
|
%patch25
|
||||||
%patch27
|
|
||||||
%patch28
|
%patch28
|
||||||
%patch29
|
%patch29
|
||||||
%patch30
|
%patch30
|
||||||
%patch33
|
%patch33
|
||||||
%patch36
|
%patch36
|
||||||
# Disable for now
|
|
||||||
#%patch37
|
|
||||||
%patch38
|
%patch38
|
||||||
%patch40
|
%patch40
|
||||||
%patch41 -p1
|
%patch41 -p1
|
||||||
%patch43 -p1
|
|
||||||
%patch45
|
%patch45
|
||||||
%patch46 -p1
|
%patch46 -p1
|
||||||
%patch47 -p1
|
%patch47 -p1
|
||||||
@ -434,20 +410,16 @@ rm nscd/s-stamp
|
|||||||
%endif
|
%endif
|
||||||
%patch49
|
%patch49
|
||||||
%patch50
|
%patch50
|
||||||
%patch51 -p1
|
|
||||||
%patch52
|
%patch52
|
||||||
%patch53 -p1
|
|
||||||
%patch54 -p1
|
|
||||||
%patch55 -p1
|
|
||||||
%patch56 -p1
|
|
||||||
%patch58
|
%patch58
|
||||||
%patch59 -p1
|
|
||||||
%patch60 -p1
|
%patch60 -p1
|
||||||
%patch61 -p1
|
%patch61 -p1
|
||||||
%patch62 -p1
|
%patch62 -p1
|
||||||
%patch63 -p1
|
%patch63 -p1
|
||||||
%patch64 -p1
|
%patch64 -p1
|
||||||
%patch65 -p1
|
%patch65 -p1
|
||||||
|
%patch66 -p1
|
||||||
|
%patch67 -p1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed!
|
# 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/getent.1.gz
|
||||||
%doc %{_mandir}/man1/localedef.1.gz
|
%doc %{_mandir}/man1/localedef.1.gz
|
||||||
%doc %{_mandir}/man5/*
|
%doc %{_mandir}/man5/*
|
||||||
%doc %{_mandir}/man8/rpcinfo.8.gz
|
|
||||||
/%{_lib}/ld-%{version}.so
|
/%{_lib}/ld-%{version}.so
|
||||||
%ifarch ppc s390 mips hppa
|
%ifarch ppc s390 mips hppa
|
||||||
/%{_lib}/ld.so.1
|
/%{_lib}/ld.so.1
|
||||||
@ -1025,11 +996,11 @@ exit 0
|
|||||||
%dir %attr(0755,root,root) %{_libdir}/getconf
|
%dir %attr(0755,root,root) %{_libdir}/getconf
|
||||||
%{_libdir}/getconf/*
|
%{_libdir}/getconf/*
|
||||||
%{_sbindir}/glibc_post_upgrade
|
%{_sbindir}/glibc_post_upgrade
|
||||||
%{_sbindir}/rpcinfo
|
|
||||||
%{_sbindir}/iconvconfig
|
%{_sbindir}/iconvconfig
|
||||||
|
|
||||||
%ifarch %ix86
|
%ifarch %ix86
|
||||||
|
|
||||||
|
|
||||||
%files obsolete
|
%files obsolete
|
||||||
%defattr (755,root,root,755)
|
%defattr (755,root,root,755)
|
||||||
%dir /%{_lib}/obsolete/
|
%dir /%{_lib}/obsolete/
|
||||||
@ -1138,11 +1109,14 @@ exit 0
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
/%{_lib}/libmemusage.so
|
/%{_lib}/libmemusage.so
|
||||||
/%{_lib}/libpcprofile.so
|
/%{_lib}/libpcprofile.so
|
||||||
|
%dir /%{_libdir}/audit
|
||||||
|
/%{_libdir}/audit/sotruss-lib.so
|
||||||
# These need gd-devel for building
|
# These need gd-devel for building
|
||||||
# %%{_bindir}/memusage
|
# %%{_bindir}/memusage
|
||||||
# %%{_bindir}/memusagestat
|
# %%{_bindir}/memusagestat
|
||||||
%{_bindir}/mtrace
|
%{_bindir}/mtrace
|
||||||
%{_bindir}/pcprofiledump
|
%{_bindir}/pcprofiledump
|
||||||
|
%{_bindir}/sotruss
|
||||||
%{_bindir}/xtrace
|
%{_bindir}/xtrace
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
63
glibc2.14-revert-sunrpc-removal.patch
Normal file
63
glibc2.14-revert-sunrpc-removal.patch
Normal file
@ -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
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e84aeb3808f86c7cd169ca795b31d1fdef21864c74b827ca750f3d478f0a95a5
|
oid sha256:33df2d6951abd1d111570be780e3e6b265183d51b2f0a34699c6e39380b8ea4c
|
||||||
size 12562
|
size 11611
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
2011-06-14 Andreas Jaeger <aj@suse.de>
|
|
||||||
|
|
||||||
* pthread_rwlock_init.c: Include <string.h> for
|
|
||||||
memset declaration.
|
|
||||||
|
|
||||||
2011-06-14 Andreas Jaeger <aj@suse.de>
|
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/check_native.c: Include <string.h> for
|
|
||||||
memset declaration.
|
|
||||||
|
|
||||||
--- a/sysdeps/unix/sysv/linux/check_native.c
|
|
||||||
+++ b/sysdeps/unix/sysv/linux/check_native.c
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <net/if.h>
|
|
||||||
|
|
||||||
--- a/nptl/pthread_rwlock_init.c
|
|
||||||
+++ b/nptl/pthread_rwlock_init.c
|
|
||||||
@@ -18,6 +18,7 @@
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include "pthreadP.h"
|
|
||||||
+#include <string.h>
|
|
||||||
#include <kernel-features.h>
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user