aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-01-11 05:05:25 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-01-11 05:05:25 -0800
commit6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe (patch)
treeea7535fb3d4be906755197de30d65590d23b2cac
parent754452f07e701448e5d9bd004cb108ddc48a8d67 (diff)
downloadfsf-binutils-gdb-6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe.zip
fsf-binutils-gdb-6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe.tar.gz
fsf-binutils-gdb-6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe.tar.bz2
Fix the order of SHLIB_RODATA_ADDR in elf.sc
elf.sc has if test -n "${RODATA_ADDR}"; then RODATA_ADDR="\ SEGMENT_START(\"rodata-segment\", ${RODATA_ADDR}) + SIZEOF_HEADERS" else RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" ^^^^^^^^^^ Set RODATA_ADDR RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${RODATA_ADDR})" ^^^^^^^^^^ Set RODATA_ADDR with ${RODATA_ADDR} fi if test -n "${SHLIB_RODATA_ADDR}"; then SHLIB_RODATA_ADDR="\ SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR}) + SIZEOF_HEADERS" else SHLIB_RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR})" ^^^^^^^^^^ Set SHLIB_RODATA_ADDR SHLIB_RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" ^^^^^^^^^^ Override SHLIB_RODATA_ADDR fi The order should be: if test -n "${SHLIB_RODATA_ADDR}"; then SHLIB_RODATA_ADDR="\ SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR}) + SIZEOF_HEADERS" else SHLIB_RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" SHLIB_RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR})" fi PR ld/22696 * scripttempl/elf.sc: Fix the order of SHLIB_RODATA_ADDR.
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/scripttempl/elf.sc2
2 files changed, 6 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 0545b6a..c5085b1 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2018-01-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22696
+ * scripttempl/elf.sc: Fix the order of SHLIB_RODATA_ADDR.
+
2018-01-09 Jim Wilson <jimw@sifive.com>
* testsuite/ld-elf/eh-frame-hdr.d (#xfail): Delete
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index 841a831..3de86b0 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -522,8 +522,8 @@ SEGMENT_START(\"rodata-segment\", ${RODATA_ADDR}) + SIZEOF_HEADERS"
SHLIB_RODATA_ADDR="\
SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR}) + SIZEOF_HEADERS"
else
- SHLIB_RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR})"
SHLIB_RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))"
+ SHLIB_RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR})"
fi
cat <<EOF
/* Adjust the address for the rodata segment. We want to adjust up to