summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-01-09 10:59:13 -0800
committerUlrich Drepper <drepper@redhat.com>2010-01-09 10:59:13 -0800
commit6651fa1216b5707b00668def26f43ee12b8cc59e (patch)
tree575e1ea8386d14c993049454641d6b591d8f9a36
parentf095bb7204d80f609a73a22796edd6cffd4c6add (diff)
parentd5ea695b42aecd48a329756a8e93228d64714d17 (diff)
downloadglibc-6651fa1216b5707b00668def26f43ee12b8cc59e.tar.gz
glibc-6651fa1216b5707b00668def26f43ee12b8cc59e.tar.xz
glibc-6651fa1216b5707b00668def26f43ee12b8cc59e.zip
Merge branch 'master' of ssh://sources.redhat.com/git/glibc
Conflicts:
	ChangeLog
-rw-r--r--ChangeLog7
-rw-r--r--elf/dl-sysdep.c5
-rw-r--r--elf/elf.h8
3 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index a2f8d1b78f..0ff613c6f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
diff --git a/elf/elf.h b/elf/elf.h
index c772ff41ad..1bc8ef3489 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -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 */