sim: or1k: Eliminate dangerous RWX load segments
authorStafford Horne <shorne@gmail.com>
Sat, 19 Aug 2023 07:30:54 +0000 (08:30 +0100)
committerStafford Horne <shorne@gmail.com>
Thu, 24 Aug 2023 06:03:48 +0000 (07:03 +0100)
commit8eb7b3a7dbc24de0c9c938f00f2387351045cbdf
tree160834782a78894a0088c8253516a8fca9ae3fa1
parent21f8c9c1874f144bbe387874f586e61d4742e6eb
sim: or1k: Eliminate dangerous RWX load segments

This fixes test failures caused by the new linker warning which report:

  ./ld/ld-new: warning: load.S.x has a LOAD segment with RWX permissions

Fix this by splitting the linker MEMORY into ram and rom to avoid
generating RWX sections.  This required tests to be adjusted to fix
issues with the move.  Namely:

  - fpu tests: were incorrectly using l.ori with ha(anchor) which now
    that we pushed the anchor up in memory it exposes the bug.  Update
    to used the correct l.movhi instruction instead.
  - adrp test: the test reports ram offset addresses, now that we have
    moved memory layout around a bit I adjusted the test output.  Some
    padding is added before pi to show that the actual address of pi and
    the adrp page offset are not the same.

Bug: https://sourceware.org/PR29957
sim/testsuite/or1k/adrp.S
sim/testsuite/or1k/fpu-unordered.S
sim/testsuite/or1k/fpu64a32-unordered.S
sim/testsuite/or1k/fpu64a32.S
sim/testsuite/or1k/or1k-test.ld