From d9c46d474be68847629028312aeea646590564f4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 14 Jun 2010 08:18:26 -0700 Subject: [PATCH 1/4] Fix a couple of __REDIRECT () __THROW occurrences This patch fixes some cases which fail to parse with C++. (cherry picked from commit f32f28695d938597ad93177dc83225dcb3c69f74) --- ChangeLog | 7 +++++++ libio/stdio.h | 16 ++++++++-------- posix/getopt.h | 8 ++++---- wcsmbs/wchar.h | 16 ++++++++-------- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5cd7148896..c32d375c8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-06-07 Jakub Jelinek + + * libio/stdio.h (sscanf, vsscanf): Use __REDIRECT_NTH instead of + __REDIRECT followed by __THROW. + * wcsmbs/wchar.h (swscanf, vswscanf): Likewise. + * posix/getopt.h (getopt): Likewise. + 2010-05-26 H.J. Lu [BZ #11640] diff --git a/libio/stdio.h b/libio/stdio.h index 85542b1cfd..bf16b3fff7 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -447,9 +447,9 @@ extern int __REDIRECT (fscanf, (FILE *__restrict __stream, __isoc99_fscanf) __wur; extern int __REDIRECT (scanf, (__const char *__restrict __format, ...), __isoc99_scanf) __wur; -extern int __REDIRECT (sscanf, (__const char *__restrict __s, - __const char *__restrict __format, ...), - __isoc99_sscanf) __THROW; +extern int __REDIRECT_NTH (sscanf, (__const char *__restrict __s, + __const char *__restrict __format, ...), + __isoc99_sscanf); # else extern int __isoc99_fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __wur; @@ -501,11 +501,11 @@ extern int __REDIRECT (vfscanf, extern int __REDIRECT (vscanf, (__const char *__restrict __format, _G_va_list __arg), __isoc99_vscanf) __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; -extern int __REDIRECT (vsscanf, - (__const char *__restrict __s, - __const char *__restrict __format, _G_va_list __arg), - __isoc99_vsscanf) - __THROW __attribute__ ((__format__ (__scanf__, 2, 0))); +extern int __REDIRECT_NTH (vsscanf, + (__const char *__restrict __s, + __const char *__restrict __format, + _G_va_list __arg), __isoc99_vsscanf) + __attribute__ ((__format__ (__scanf__, 2, 0))); # else extern int __isoc99_vfscanf (FILE *__restrict __s, __const char *__restrict __format, diff --git a/posix/getopt.h b/posix/getopt.h index ff0251dec0..6e2fa27180 100644 --- a/posix/getopt.h +++ b/posix/getopt.h @@ -1,5 +1,5 @@ /* Declarations for getopt. - Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2009 + Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -158,9 +158,9 @@ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) additional functionality can be disable at runtime. This redirection helps to also do this at runtime. */ # ifdef __REDIRECT - extern int __REDIRECT (getopt, (int ___argc, char *const *___argv, - const char *__shortopts), - __posix_getopt) __THROW; + extern int __REDIRECT_NTH (getopt, (int ___argc, char *const *___argv, + const char *__shortopts), + __posix_getopt); # else extern int __posix_getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW; diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h index 5a4e10e543..061b105be8 100644 --- a/wcsmbs/wchar.h +++ b/wcsmbs/wchar.h @@ -658,10 +658,10 @@ extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream, extern int __REDIRECT (wscanf, (__const wchar_t *__restrict __format, ...), __isoc99_wscanf) /* __attribute__ ((__format__ (__wscanf__, 1, 2))) */; -extern int __REDIRECT (swscanf, (__const wchar_t *__restrict __s, - __const wchar_t *__restrict __format, ...), - __isoc99_swscanf) - __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */; +extern int __REDIRECT_NTH (swscanf, (__const wchar_t *__restrict __s, + __const wchar_t *__restrict __format, + ...), __isoc99_swscanf) + /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */; # else extern int __isoc99_fwscanf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...); @@ -712,10 +712,10 @@ extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s, extern int __REDIRECT (vwscanf, (__const wchar_t *__restrict __format, __gnuc_va_list __arg), __isoc99_vwscanf) /* __attribute__ ((__format__ (__wscanf__, 1, 0))) */; -extern int __REDIRECT (vswscanf, (__const wchar_t *__restrict __s, - __const wchar_t *__restrict __format, - __gnuc_va_list __arg), __isoc99_vswscanf) - __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */; +extern int __REDIRECT_NTH (vswscanf, (__const wchar_t *__restrict __s, + __const wchar_t *__restrict __format, + __gnuc_va_list __arg), __isoc99_vswscanf) + /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */; # else extern int __isoc99_vfwscanf (__FILE *__restrict __s, __const wchar_t *__restrict __format, From cea9bac7b2107dc954e43acca25b1b418657699c Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 14 Jun 2010 16:54:43 -0700 Subject: [PATCH 2/4] Fix use of extend_alloca in NIS (cherry picked from commit caa78cf824f98d6f02f2e39cb9cf253c8553946f) --- ChangeLog | 4 ++++ nis/nss_nis/nis-initgroups.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c32d375c8b..e30fe1e41b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-06-02 Andreas Schwab + + * nis/nss_nis/nis-initgroups.c (get_uid): Properly resize buffer. + 2010-06-07 Jakub Jelinek * libio/stdio.h (sscanf, vsscanf): Use __REDIRECT_NTH instead of diff --git a/nis/nss_nis/nis-initgroups.c b/nis/nss_nis/nis-initgroups.c index a5a3ba6144..85b9eeecc1 100644 --- a/nis/nss_nis/nis-initgroups.c +++ b/nis/nss_nis/nis-initgroups.c @@ -139,7 +139,7 @@ get_uid (const char *user, uid_t *uidp) if (r != ERANGE) break; - extend_alloca (buf, buflen, 2 * buflen); + buf = extend_alloca (buf, buflen, 2 * buflen); } return 1; From edf8365a16069aa1b074c40982714f35486ad2b6 Mon Sep 17 00:00:00 2001 From: Takashi Yoshii Date: Mon, 14 Jun 2010 16:56:22 -0700 Subject: [PATCH 3/4] [sh] Fix incorrect location of ifndef for __ASSUME_FUTEX_CLOCK_REALTIME. (cherry picked from commit 4bc93b30337482a0ad1758b4ba069704d09c39da) --- nptl/ChangeLog | 5 +++++ nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index e69e44f7cd..49ead511b2 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2010-06-01 Takashi Yoshii + + * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Fix incorrect + location of ifndef __ASSUME_FUTEX_CLOCK_REALTIME. + 2010-04-09 Ulrich Drepper [BZ #11390] diff --git a/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S index 49b4e6d6e0..0d02083c46 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009 +/* Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -282,6 +282,7 @@ __lll_timedlock_wait: rts mov.l @r15+, r12 +# ifndef __ASSUME_FUTEX_CLOCK_REALTIME .align 2 # ifdef PIC .Lgot: @@ -293,7 +294,6 @@ __lll_timedlock_wait: .long __have_futex_clock_realtime # endif -# ifndef __ASSUME_FUTEX_CLOCK_REALTIME .Lreltmo: /* Check for a valid timeout value. */ mov.l @(4,r6), r1 From 9a98163f266fee3ae00e2636b864e119b9cbf51f Mon Sep 17 00:00:00 2001 From: "Kirill A. Shutemov" Date: Mon, 14 Jun 2010 17:23:01 -0700 Subject: [PATCH 4/4] Flush cache after solving TEXTRELs if arch requires it. (cherry picked from commit 80da2e093c0e465cfa6e561488aac51c236b6fd2) --- ChangeLog | 5 +++++ elf/dl-reloc.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e30fe1e41b..8590e355ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-06-02 Kirill A. Shutemov + + * elf/dl-reloc.c: Flush cache after solving TEXTRELs if arch + requires it. + 2010-06-02 Andreas Schwab * nis/nss_nis/nis-initgroups.c (get_uid): Properly resize buffer. diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c index 6c0069147d..23cb59cbc8 100644 --- a/elf/dl-reloc.c +++ b/elf/dl-reloc.c @@ -1,5 +1,5 @@ /* Relocate a shared object and resolve its references to other loaded objects. - Copyright (C) 1995-2006, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1995-2006, 2008, 2009, 2010 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 @@ -307,6 +307,10 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], goto call_error; } +#ifdef CLEAR_CACHE + CLEAR_CACHE (textrels->start, textrels->start + textrels->len); +#endif + textrels = textrels->next; }