summaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2012-12-11 22:23:14 +0000
committerRoland McGrath <roland@gnu.org>2012-12-11 22:23:14 +0000
commit178e2dd34105c2993a1c5aa9e873bd7c591af6d4 (patch)
treea6089b62fa1d2d4b5a7407993047453c4a338187 /ld/emulparams
parentb0ea811a61103f378351c9aa2cb16bd3010b0a31 (diff)
downloadbinutils-redhat-178e2dd34105c2993a1c5aa9e873bd7c591af6d4.tar.gz
ld/
* emulparams/elf_nacl.sh (nacl_rodata_addr): New shell function. (RODATA_ADDR, SHLIB_RODATA_ADDR): Use it to base the calculation on SEGMENT_START("text-segment", ...) rather than ... alone. * Makefile.am (earmelf_nacl.c, earmelfb_nacl.c): Add missing dependency on $(srcdir)/emulparams/elf_nacl.sh. * Makefile.in: Regenerate.
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/elf_nacl.sh12
1 files changed, 10 insertions, 2 deletions
diff --git a/ld/emulparams/elf_nacl.sh b/ld/emulparams/elf_nacl.sh
index 0073c0f5b0..657cd06f13 100644
--- a/ld/emulparams/elf_nacl.sh
+++ b/ld/emulparams/elf_nacl.sh
@@ -2,5 +2,13 @@ ENABLE_INITFINI_ARRAY=yes
SEPARATE_CODE=yes
TEXT_START_ADDR=0x20000
NACL_RODATA_DISTANCE=0x10000000
-RODATA_ADDR="${TEXT_START_ADDR} + ${NACL_RODATA_DISTANCE} + SIZEOF_HEADERS"
-SHLIB_RODATA_ADDR="${NACL_RODATA_DISTANCE} + SIZEOF_HEADERS"
+
+nacl_rodata_addr()
+{
+ nacl_text_addr="SEGMENT_START(\"text-segment\", $1)"
+ nacl_rodata_addr="$nacl_text_addr + ${NACL_RODATA_DISTANCE} + SIZEOF_HEADERS"
+ echo "$nacl_rodata_addr"
+}
+
+RODATA_ADDR=`nacl_rodata_addr "${TEXT_START_ADDR}"`
+SHLIB_RODATA_ADDR=`nacl_rodata_addr 0`