diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2010-06-10 19:20:45 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2010-06-10 19:20:45 +0000 |
commit | 87c8907d191f981da725d282fcdd542943330b63 (patch) | |
tree | 507fae7457279f8b675002ce65976d529fcaf7a5 | |
parent | e50b01523445075a3aa7d9c877610a119bcf70b1 (diff) |
Merge changes between r10453 and r10689 from /fsf/glibc-2_11-branch.
git-svn-id: svn://svn.eglibc.org/branches/eglibc-2_11@10690 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r-- | libc/ChangeLog | 31 | ||||
-rw-r--r-- | libc/elf/dl-runtime.c | 12 | ||||
-rw-r--r-- | libc/sunrpc/clnt_tcp.c | 1 | ||||
-rw-r--r-- | libc/sunrpc/clnt_udp.c | 1 | ||||
-rw-r--r-- | libc/sunrpc/clnt_unix.c | 1 | ||||
-rw-r--r-- | libc/sysdeps/sh/sh4/fpu/feholdexcpt.c | 12 | ||||
-rw-r--r-- | libc/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h | 4 | ||||
-rw-r--r-- | libc/sysdeps/x86_64/multiarch/init-arch.c | 4 | ||||
-rw-r--r-- | libc/version.h | 2 |
9 files changed, 55 insertions, 13 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog index 5e6a6b20f..b03035f17 100644 --- a/libc/ChangeLog +++ b/libc/ChangeLog @@ -1,3 +1,34 @@ +2010-05-26 H.J. Lu <hongjiu.lu@intel.com> + + [BZ #11640] + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Properly check family and model. + +2010-05-26 Takashi Yoshii <takashi.yoshii.zj@renesas.com> + + * sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Fix iov[] size. + +2010-05-21 Ulrich Drepper <drepper@redhat.com> + + * elf/dl-runtime.c (_dl_profile_fixup): Don't crash on unresolved weak + symbol reference. + +2010-05-19 Andreas Schwab <schwab@redhat.com> + + * elf/dl-runtime.c (_dl_fixup): Don't crash on unresolved weak + symbol reference. + +2010-05-21 Andreas Schwab <schwab@redhat.com> + + * sunrpc/clnt_tcp.c (clnttcp_control): Add missing break. + * sunrpc/clnt_udp.c (clntudp_control): Likewise. + * sunrpc/clnt_unix.c (clntunix_control): Likewise. + +2010-05-12 Andrew Stubbs <ams@codesourcery.com> + + * sysdeps/sh/sh4/fpu/feholdexcpt.c (feholdexcept): Really disable all + exceptions. Return 0. + 2010-05-07 Roland McGrath <roland@redhat.com> * elf/ldconfig.c (main): Add a const. diff --git a/libc/elf/dl-runtime.c b/libc/elf/dl-runtime.c index a52120d12..6847edafc 100644 --- a/libc/elf/dl-runtime.c +++ b/libc/elf/dl-runtime.c @@ -1,5 +1,5 @@ /* On-demand PLT fixup for shared objects. - Copyright (C) 1995-2006, 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1995-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 @@ -144,7 +144,8 @@ _dl_fixup ( /* And now perhaps the relocation addend. */ value = elf_machine_plt_value (l, reloc, value); - if (__builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) + if (sym != NULL + && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) value = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) (); /* Finally, fix up the plt itself. */ @@ -231,8 +232,9 @@ _dl_profile_fixup ( ? LOOKUP_VALUE_ADDRESS (result) + defsym->st_value : 0); - if (__builtin_expect (ELFW(ST_TYPE) (defsym->st_info) - == STT_GNU_IFUNC, 0)) + if (defsym != NULL + && __builtin_expect (ELFW(ST_TYPE) (defsym->st_info) + == STT_GNU_IFUNC, 0)) value = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) (); } @@ -369,7 +371,7 @@ _dl_profile_fixup ( struct audit_ifaces *afct = GLRO(dl_audit); for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { - if (afct->ARCH_LA_PLTENTER != NULL + if (afct->ARCH_LA_PLTENTER != NULL && (reloc_result->enterexit & (LA_SYMB_NOPLTENTER << (2 * (cnt + 1)))) == 0) { diff --git a/libc/sunrpc/clnt_tcp.c b/libc/sunrpc/clnt_tcp.c index 1552be87a..d26a1268a 100644 --- a/libc/sunrpc/clnt_tcp.c +++ b/libc/sunrpc/clnt_tcp.c @@ -399,6 +399,7 @@ clnttcp_control (CLIENT *cl, int request, char *info) /* This will set the xid of the NEXT call */ *(u_long *)ct->ct_mcall = htonl (*(u_long *)info - 1); /* decrement by 1 as clnttcp_call() increments once */ + break; case CLGET_VERS: /* * This RELIES on the information that, in the call body, diff --git a/libc/sunrpc/clnt_udp.c b/libc/sunrpc/clnt_udp.c index 62ee3a1c9..360e26a59 100644 --- a/libc/sunrpc/clnt_udp.c +++ b/libc/sunrpc/clnt_udp.c @@ -582,6 +582,7 @@ clntudp_control (CLIENT *cl, int request, char *info) /* This will set the xid of the NEXT call */ *(u_long *)cu->cu_outbuf = htonl(*(u_long *)info - 1); /* decrement by 1 as clntudp_call() increments once */ + break; case CLGET_VERS: /* * This RELIES on the information that, in the call body, diff --git a/libc/sunrpc/clnt_unix.c b/libc/sunrpc/clnt_unix.c index db3ea312a..bca1273e2 100644 --- a/libc/sunrpc/clnt_unix.c +++ b/libc/sunrpc/clnt_unix.c @@ -376,6 +376,7 @@ clntunix_control (CLIENT *cl, int request, char *info) /* This will set the xid of the NEXT call */ *(u_long *) ct->ct_mcall = htonl (*(u_long *)info - 1); /* decrement by 1 as clntunix_call() increments once */ + break; case CLGET_VERS: /* * This RELIES on the information that, in the call body, diff --git a/libc/sysdeps/sh/sh4/fpu/feholdexcpt.c b/libc/sysdeps/sh/sh4/fpu/feholdexcpt.c index 7aac5a0d3..87d642089 100644 --- a/libc/sysdeps/sh/sh4/fpu/feholdexcpt.c +++ b/libc/sysdeps/sh/sh4/fpu/feholdexcpt.c @@ -1,5 +1,6 @@ /* Store current floating-point environment and clear exceptions. - Copyright (C) 1997, 1998, 1999, 2000, 2005 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2005, 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 @@ -29,10 +30,15 @@ feholdexcept (fenv_t *envp) _FPU_GETCW (temp); envp->__fpscr = temp; - /* Now set all exceptions to non-stop. */ + /* Clear the status flags. */ temp &= ~FE_ALL_EXCEPT; + + /* Now set all exceptions to non-stop. */ + temp &= ~(FE_ALL_EXCEPT << 5); + _FPU_SETCW (temp); - return 1; + /* Success. */ + return 0; } libm_hidden_def (feholdexcept) diff --git a/libc/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h b/libc/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h index e3c9c0e63..92df0858e 100644 --- a/libc/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h +++ b/libc/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h @@ -1,5 +1,5 @@ /* Dump registers. - Copyright (C) 1999, 2000, 2009 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 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 @@ -58,7 +58,7 @@ register_dump (int fd, struct sigcontext *ctx) { char regs[22][8]; char fpregs[34][8]; - struct iovec iov[112]; + struct iovec iov[22 * 2 + 34 * 2 + 2]; size_t nr = 0; #define ADD_STRING(str) \ diff --git a/libc/sysdeps/x86_64/multiarch/init-arch.c b/libc/sysdeps/x86_64/multiarch/init-arch.c index 0fe2f86b4..198fcaa8d 100644 --- a/libc/sysdeps/x86_64/multiarch/init-arch.c +++ b/libc/sysdeps/x86_64/multiarch/init-arch.c @@ -62,12 +62,12 @@ __init_cpu_features (void) unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; unsigned int extended_family = (eax >> 20) & 0xff; unsigned int extended_model = (eax >> 12) & 0xf0; - if (__cpu_features.family == 0x0f) + if (family == 0x0f) { family += extended_family; model += extended_model; } - else if (__cpu_features.family == 0x06) + else if (family == 0x06) model += extended_model; } /* This spells out "AuthenticAMD". */ diff --git a/libc/version.h b/libc/version.h index 3c51c9ca2..08933b63f 100644 --- a/libc/version.h +++ b/libc/version.h @@ -1,4 +1,4 @@ /* This file just defines the current version number of libc. */ #define RELEASE "stable" -#define VERSION "2.11.1" +#define VERSION "2.11.2" |