This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Fix the order of SHLIB_RODATA_ADDR in elf.sc


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe

commit 6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jan 11 05:05:25 2018 -0800

    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.

Diff:
---
 ld/ChangeLog          | 5 +++++
 ld/scripttempl/elf.sc | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]