[ELF] Ignore --no-relax for RISC-V

In GNU ld, --no-relax can disable x86-64 GOTPCRELX relaxation.
It is not useful, so we don't implement it.

For RISC-V, --no-relax disables linker relaxations which have larger
impact.
Linux kernel specifies --no-relax when CONFIG_DYNAMIC_FTRACE is specified
(since http://git.kernel.org/linus/a1d2a6b4cee858a2f27eebce731fbf1dfd72cb4e ).
LLD has not implemented the relaxations, so this option is a no-op.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D81359
This commit is contained in:
Fangrui Song 2020-07-07 09:47:08 -07:00
parent c64bb3f736
commit 09b81a72ac
3 changed files with 4 additions and 0 deletions

View File

@ -635,6 +635,7 @@ def: F<"no-copy-dt-needed-entries">;
def: F<"no-ctors-in-init-array">;
def: F<"no-keep-memory">;
def: F<"no-pipeline-knowledge">;
def: F<"no-relax">;
def: F<"no-warn-mismatch">;
def: Flag<["-"], "p">;
def: Separate<["--", "-"], "rpath-link">;

View File

@ -308,6 +308,8 @@ Disable merging .ARM.exidx entries.
Page align sections.
.It Fl -no-omagic
Do not set the text data sections to be writable, page align sections.
.It Fl -no-relax
Disable target-specific relaxations. This is currently a no-op.
.It Fl -no-rosegment
Do not put read-only non-executable sections in their own segment.
.It Fl -no-undefined-version

View File

@ -7,6 +7,7 @@ RUN: -no-copy-dt-needed-entries \
RUN: -no-ctors-in-init-array \
RUN: -no-keep-memory \
RUN: -no-pipeline-knowledge \
RUN: --no-relax \
RUN: -no-warn-mismatch \
RUN: -p \
RUN: -rpath-link . \