summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2010-04-16 12:49:09 +0200
committerAndreas Schwab <schwab@redhat.com>2010-04-16 12:49:09 +0200
commit54627f3c15f4a6e2ff02e60afacdb5f8008d399a (patch)
treeca0a25e66c8e6d48c7db07e6152a0549c27a1916 /elf
parent1ef17274decb5381a50a2146cb3444630f67b527 (diff)
parent1cdb2151fbad6bff650e85a0476972881bbc027b (diff)
Merge remote branch 'origin/master' into fedora/master
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-version.c12
-rw-r--r--elf/elf.h24
2 files changed, 32 insertions, 4 deletions
diff --git a/elf/dl-version.c b/elf/dl-version.c
index 9e881162a6..c59a6c3cd3 100644
--- a/elf/dl-version.c
+++ b/elf/dl-version.c
@@ -322,10 +322,14 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
while (1)
{
ElfW(Half) ndx = aux->vna_other & 0x7fff;
- map->l_versions[ndx].hash = aux->vna_hash;
- map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
- map->l_versions[ndx].name = &strtab[aux->vna_name];
- map->l_versions[ndx].filename = &strtab[ent->vn_file];
+ /* In trace mode, dependencies may be missing. */
+ if (__builtin_expect (ndx < map->l_nversions, 1))
+ {
+ map->l_versions[ndx].hash = aux->vna_hash;
+ map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
+ map->l_versions[ndx].name = &strtab[aux->vna_name];
+ map->l_versions[ndx].filename = &strtab[ent->vn_file];
+ }
if (aux->vna_next == 0)
/* No more symbols. */
diff --git a/elf/elf.h b/elf/elf.h
index 1efe359119..a9558a3ddd 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2477,6 +2477,30 @@ typedef Elf32_Addr Elf32_Conflict;
/* SH specific declarations */
+/* Processor specific flags for the ELF header e_flags field. */
+#define EF_SH_MACH_MASK 0x1f
+#define EF_SH_UNKNOWN 0x0
+#define EF_SH1 0x1
+#define EF_SH2 0x2
+#define EF_SH3 0x3
+#define EF_SH_DSP 0x4
+#define EF_SH3_DSP 0x5
+#define EF_SH4AL_DSP 0x6
+#define EF_SH3E 0x8
+#define EF_SH4 0x9
+#define EF_SH2E 0xb
+#define EF_SH4A 0xc
+#define EF_SH2A 0xd
+#define EF_SH4_NOFPU 0x10
+#define EF_SH4A_NOFPU 0x11
+#define EF_SH4_NOMMU_NOFPU 0x12
+#define EF_SH2A_NOFPU 0x13
+#define EF_SH3_NOMMU 0x14
+#define EF_SH2A_SH4_NOFPU 0x15
+#define EF_SH2A_SH3_NOFPU 0x16
+#define EF_SH2A_SH4 0x17
+#define EF_SH2A_SH3E 0x18
+
/* SH relocs. */
#define R_SH_NONE 0
#define R_SH_DIR32 1