OSDN Git Service

[ELF] Ignore --no-relax for RISC-V
authorFangrui Song <maskray@google.com>
Tue, 7 Jul 2020 16:47:08 +0000 (09:47 -0700)
committerFangrui Song <maskray@google.com>
Tue, 7 Jul 2020 16:48:13 +0000 (09:48 -0700)
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

lld/ELF/Options.td
lld/docs/ld.lld.1
lld/test/ELF/silent-ignore.test

index 0a16faa..bc12f4d 100644 (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">;
index 0522feb..3acc818 100644 (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
index 600c9f8..6f76809 100644 (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 . \