aboutsummaryrefslogtreecommitdiff
path: root/ld/ldexp.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-06-11 13:23:51 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-06-11 13:23:51 +0000
commit17d6eea5d50485078affbb12b895e3e508366ba9 (patch)
treeb336d0ebf44afd496253494fe12c758571bdf749 /ld/ldexp.c
parent2e81047f911b9181987439ec157dc3ed1e567393 (diff)
downloadgdb-17d6eea5d50485078affbb12b895e3e508366ba9.zip
gdb-17d6eea5d50485078affbb12b895e3e508366ba9.tar.gz
gdb-17d6eea5d50485078affbb12b895e3e508366ba9.tar.bz2
Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation
ld/ PR ld/14215 * ldexp.c (fold_name <SIZEOF, ALIGNOF>): Allow forward section references. * emulparams/elf32_x86_64.sh (SEPARATE_GOTPLT): Depend on size of .got.plt. * emulparams/elf32mb_linux.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf32tilegx.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf32tilepro.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf64tilegx.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_i386.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_k1om.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_l1om.sh (SEPARATE_GOTPLT): Likewise. * emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Likewise. ld/testsuite/ PR ld/14215 * ld-i386/i386.exp: Run pr14215. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pr14215.d: New file. * ld-i386/pr14215.s: Likewise. * ld-x86-64/pr14215.d: Likewise. * ld-x86-64/pr14215.s: Likewise.
Diffstat (limited to 'ld/ldexp.c')
-rw-r--r--ld/ldexp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ld/ldexp.c b/ld/ldexp.c
index 3bddc81..d83e274 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -681,7 +681,7 @@ fold_name (etree_type *tree)
tree, tree->name.name);
new_number (0);
}
- else if (os->processed_vma)
+ else if (os->bfd_section != NULL)
{
bfd_vma val;
@@ -693,6 +693,8 @@ fold_name (etree_type *tree)
new_number (val);
}
+ else
+ new_number (0);
}
break;