diff options
author | Roland McGrath <roland@gnu.org> | 2007-08-09 10:29:35 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2007-08-09 10:29:35 +0000 |
commit | 9d75f89c668d86ea06052225bd4caf806394dc2c (patch) | |
tree | 505fb989c67452c2265ec905710c5ac523fd08b0 /sysdeps/unix/sysv | |
parent | 900bc6095a333b2e8f1bb062db2ff6dfcd9a0242 (diff) |
Updated to fedora-glibc-20070809T0939cvs/fedora-glibc-2_6_90-5
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r-- | sysdeps/unix/sysv/linux/dl-osinfo.h | 20 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S | 5 |
2 files changed, 9 insertions, 16 deletions
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h index 3c93218dfc..89bad440c9 100644 --- a/sysdeps/unix/sysv/linux/dl-osinfo.h +++ b/sysdeps/unix/sysv/linux/dl-osinfo.h @@ -1,5 +1,6 @@ /* Operating system specific code for generic dynamic loader functions. Linux. - Copyright (C) 2000,2001,2002,2004,2005,2006 Free Software Foundation, Inc. + Copyright (C) 2000,2001,2002,2004,2005,2006,2007 + 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 @@ -54,11 +55,9 @@ _dl_discover_osversion (void) static const struct { - ElfW(Word) vendorlen; - ElfW(Word) datalen; - ElfW(Word) type; + ElfW(Nhdr) hdr; char vendor[8]; - } expected_note = { sizeof "Linux", sizeof (ElfW(Word)), 0, "Linux" }; + } expected_note = { { sizeof "Linux", sizeof (ElfW(Word)), 0 }, "Linux" }; const ElfW(Phdr) *const phdr = GLRO(dl_sysinfo_map)->l_phdr; const ElfW(Word) phnum = GLRO(dl_sysinfo_map)->l_phnum; for (uint_fast16_t i = 0; i < phnum; ++i) @@ -66,20 +65,15 @@ _dl_discover_osversion (void) { const ElfW(Addr) start = (phdr[i].p_vaddr + GLRO(dl_sysinfo_map)->l_addr); - const struct - { - ElfW(Word) vendorlen; - ElfW(Word) datalen; - ElfW(Word) type; - } *note = (const void *) start; + const ElfW(Nhdr) *note = (const void *) start; while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz) { if (!memcmp (note, &expected_note, sizeof expected_note)) return *(const ElfW(Word) *) ((const void *) note + sizeof expected_note); -#define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word))) +#define ROUND(len) (((len) + sizeof note->n_type - 1) & -sizeof note->n_type) note = ((const void *) (note + 1) - + ROUND (note->vendorlen) + ROUND (note->datalen)); + + ROUND (note->n_namesz) + ROUND (note->n_descsz)); } } } diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S index 0bb5bef78b..c0e98d9bed 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S @@ -1,4 +1,5 @@ -/* Copyright (C) 1995,96,97,99, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997, 1999, 2003, 2006, 2007 + 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 @@ -93,7 +94,6 @@ ENTRY(__socket) mflr r9 stw r9,52(r1) cfi_offset (lr, 4) - CGOTSETUP CENABLE stw r3,16(r1) li r3,P(SOCKOP_,socket) @@ -107,7 +107,6 @@ ENTRY(__socket) lwz r4,52(r1) lwz r0,12(r1) lwz r3,8(r1) - CGOTRESTORE mtlr r4 mtcr r0 addi r1,r1,48 |