[ELF][RISCV] Make .sdata and .sbss closer
authorFangrui Song <i@maskray.me>
Tue, 7 Mar 2023 18:37:04 +0000 (10:37 -0800)
committerFangrui Song <i@maskray.me>
Tue, 7 Mar 2023 18:37:04 +0000 (10:37 -0800)
commit07d0a4fb537f15d68385c0598d3b0dbf9e99763d
tree99625dc4e2fb6abd3505bc74c41761172ce03911
parent508b4510de123c4cccc9440546da1f71a23cbb83
[ELF][RISCV] Make .sdata and .sbss closer

GNU ld's internal linker scripts for RISC-V place .sdata and .sbss close.
This makes GP relaxation more profitable.

While here, when .sbss is present, set `__bss_start` to the start of
.sbss instead of .bss, to match GNU ld.

Note: GNU ld's internal linker scripts have symbol assignments and input
section descriptions which are not relevant for modern systems. We only
add things that make sense.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D145118
lld/ELF/Writer.cpp
lld/test/ELF/riscv-gp-no-sdata.s [deleted file]
lld/test/ELF/riscv-section-layout.s [new file with mode: 0644]