diff options
author | Ben Shi <powerman1st@163.com> | 2023-02-23 15:06:38 +0800 |
---|---|---|
committer | Ben Shi <powerman1st@163.com> | 2023-02-24 11:16:42 +0800 |
commit | 366d34b39e432abff724f644adbff8d627d6f27c (patch) | |
tree | 97109c81459cec5f22f089628a9ec1716f56f295 /llvm/lib | |
parent | e758215e06f47833803580bc260e00137d4b24d9 (diff) | |
download | llvm-366d34b39e432abff724f644adbff8d627d6f27c.zip llvm-366d34b39e432abff724f644adbff8d627d6f27c.tar.gz llvm-366d34b39e432abff724f644adbff8d627d6f27c.tar.bz2 |
[AVR][MC] Add ELF flag 'EF_AVR_LINKRELAX_PREPARED' to OBJ files
This is in accordance with avr-gcc, even '-mno-relax' is specified
to avr-gcc, this flag will also be added to the output relocatables.
With this flag set, the GNU ld will perform long call -> short call
optimization for AVR, otherwise not.
Fixes https://github.com/llvm/llvm-project/issues/54508
Reviewed By: MaskRay, jacquesguan, aykevl
Differential Revision: https://reviews.llvm.org/D144617
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp b/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp index ade5df1..3900a1f 100644 --- a/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp +++ b/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp @@ -61,6 +61,7 @@ AVRELFStreamer::AVRELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI) unsigned EFlags = MCA.getELFHeaderEFlags(); EFlags |= getEFlagsForFeatureSet(STI.getFeatureBits()); + EFlags |= ELF::EF_AVR_LINKRELAX_PREPARED; MCA.setELFHeaderEFlags(EFlags); } |