diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | elf/dl-sysdep.c | 5 | ||||
-rw-r--r-- | elf/elf.h | 8 |
3 files changed, 17 insertions, 3 deletions
@@ -130,6 +130,13 @@ * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. +2010-01-07 Roland McGrath <roland@redhat.com> + + * elf/elf.h (PN_XNUM): New macro. + + * elf/dl-sysdep.c (_dl_important_hwcaps): Use NT_GNU_HWCAP instead of + literal 2. + 2010-01-06 Ulrich Drepper <drepper@redhat.com> * dirent/dirent.h: Fix typo in feature selection macro use. diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c index 5700272f10..49c5dfb27d 100644 --- a/elf/dl-sysdep.c +++ b/elf/dl-sysdep.c @@ -1,5 +1,6 @@ /* Operating system support for run-time dynamic linker. Generic Unix version. - Copyright (C) 1995-1998, 2000-2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1995-1998,2000-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 @@ -390,7 +391,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz) { #define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word))) - if (note->type == 2 + if (note->type == NT_GNU_HWCAP && note->vendorlen == sizeof "GNU" && !memcmp ((note + 1), "GNU", sizeof "GNU") && note->datalen > 2 * sizeof (ElfW(Word)) + 2) @@ -1,5 +1,5 @@ /* This file defines standard ELF types, structures, and macros. - Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009 + Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -558,6 +558,12 @@ typedef struct Elf64_Xword p_align; /* Segment alignment */ } Elf64_Phdr; +/* Special value for e_phnum. This indicates that the real number of + program headers is too large to fit into e_phnum. Instead the real + value is in the field sh_info of section 0. */ + +#define PN_XNUM 0xffff + /* Legal values for p_type (segment type). */ #define PT_NULL 0 /* Program header table entry unused */ |