aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-10-13 17:45:31 +0000
committerMark Mitchell <mark@codesourcery.com>2004-10-13 17:45:31 +0000
commitc0042f5da0a9d3aaf254d2d6273a042230e58fea (patch)
tree7378276fda6e8cba535fdf90a0d027c2260a5d9e
parent9f3359456878efddffc9c96c2107ee7f3ef2436b (diff)
downloadgdb-c0042f5da0a9d3aaf254d2d6273a042230e58fea.zip
gdb-c0042f5da0a9d3aaf254d2d6273a042230e58fea.tar.gz
gdb-c0042f5da0a9d3aaf254d2d6273a042230e58fea.tar.bz2
* elf32-arm.h (elf32_arm_finish_dynamic_sections): Use file
offsets, not VMAs, for DT_VERSYM, DT_VERDEF, DT_VERNEED. * scripttempl/armbpabi.sc: Do not put .gnu.version.* into a loadable segment.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.h11
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/scripttempl/armbpabi.sc6
4 files changed, 23 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a820851..9574965 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-13 Mark Mitchell <mark@codesourcery.com>
+
+ * elf32-arm.h (elf32_arm_finish_dynamic_sections): Use file
+ offsets, not VMAs, for DT_VERSYM, DT_VERDEF, DT_VERNEED.
+
2004-10-12 Mark Mitchell <mark@codesourcery.com>
* elf32-arm.h (elf32_arm_finish_dynamic_symbol): Make .rel.plt
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
index a74004d..88636d2 100644
--- a/bfd/elf32-arm.h
+++ b/bfd/elf32-arm.h
@@ -4047,7 +4047,16 @@ elf32_arm_finish_dynamic_sections (bfd * output_bfd, struct bfd_link_info * info
case DT_SYMTAB:
name = ".dynsym";
goto get_vma_if_bpabi;
-
+ case DT_VERSYM:
+ name = ".gnu.version";
+ goto get_vma_if_bpabi;
+ case DT_VERDEF:
+ name = ".gnu.version_d";
+ goto get_vma_if_bpabi;
+ case DT_VERNEED:
+ name = ".gnu.version_r";
+ goto get_vma_if_bpabi;
+
case DT_PLTGOT:
name = ".got";
goto get_vma;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e03f60b..bc1e142 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-13 Mark Mitchell <mark@codesourcery.com>
+
+ * scripttempl/armbpabi.sc: Do not put .gnu.version.* into a
+ loadable segment.
+
2004-10-13 Alan Modra <amodra@bigpond.net.au>
PR 44
diff --git a/ld/scripttempl/armbpabi.sc b/ld/scripttempl/armbpabi.sc
index 63d5393..6904ca9 100644
--- a/ld/scripttempl/armbpabi.sc
+++ b/ld/scripttempl/armbpabi.sc
@@ -205,9 +205,6 @@ SECTIONS
${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
${INITIAL_READONLY_SECTIONS}
- .gnu.version ${RELOCATING-0} : { *(.gnu.version) }
- .gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }
- .gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }
EOF
if [ "x$COMBRELOC" = x ]; then
@@ -384,6 +381,9 @@ cat <<EOF
.hash 0 : { *(.hash) }
.dynsym 0 : { *(.dynsym) }
.dynstr 0 : { *(.dynstr) }
+ .gnu.version 0 : { *(.gnu.version) }
+ .gnu.version_d 0: { *(.gnu.version_d) }
+ .gnu.version_r 0: { *(.gnu.version_r) }
${CREATE_SHLIB-${INTERP}}
/* Stabs debugging sections. */