Accepting request 79227 from Base:System
Fix crash (access-after-free) in dl_lookup_x. [bnc#703140];mark subpackages as noarch. (forwarded request 79226 from a_jaeger) OBS-URL: https://build.opensuse.org/request/show/79227 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=73
This commit is contained in:
commit
82ffc0352a
@ -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)
|
||||
{
|
||||
|
@ -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:
|
||||
http://sourceware.org/bugzilla/show_bug.cgi?id=5379
|
||||
|
||||
|
||||
Index: sunrpc/clnt_udp.c
|
||||
===================================================================
|
||||
--- 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 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
|
||||
|
@ -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
|
||||
@@ -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. */
|
||||
|
@ -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
|
19
glibc-fix-lookup-crash.patch
Normal file
19
glibc-fix-lookup-crash.patch
Normal file
@ -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); */
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
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
|
||||
|
@ -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,8 +1,45 @@
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
- Fix crash (access-after-free) in dl_lookup_x. [bnc#703140]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
- 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
|
||||
@ -22,6 +59,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
|
||||
|
||||
|
@ -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")
|
||||
|
70
glibc.spec
70
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 <bits/sigcontext.h> aj@suse.de
|
||||
Patch60: glibc-x86-bits-sigcontext.patch
|
||||
# PATCH-FEATURE-UPSTREAM Speedup getsysstats call aj@suse.de
|
||||
@ -210,7 +190,12 @@ 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-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
|
||||
|
||||
@ -226,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
|
||||
@ -236,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
|
||||
@ -246,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
|
||||
@ -387,15 +375,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 +388,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 +399,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 +415,17 @@ 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
|
||||
%patch68 -p1
|
||||
|
||||
#
|
||||
# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed!
|
||||
@ -917,7 +895,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 +1002,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 +1115,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
|
||||
|
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
|
||||
oid sha256:e84aeb3808f86c7cd169ca795b31d1fdef21864c74b827ca750f3d478f0a95a5
|
||||
size 12562
|
||||
oid sha256:33df2d6951abd1d111570be780e3e6b265183d51b2f0a34699c6e39380b8ea4c
|
||||
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