ywgrit wrote: > > How about now? > > The patch doesn't touch lld, so my suggestion is "[Driver] Default enable > LoongArch linker relaxation". > Thanks, the title has changed.
> Some additional comments: > > * Do we need to consider the `-gsplit-dwarf` issue [MC: "error: A dwo section > may not contain relocations" when building with fission + RISCV64 > #56642](https://github.com/llvm/llvm-project/issues/56642) resolved by > https://reviews.llvm.org/D130190 ? The code has been implemented and tested, just like riscv, I think this part of the code can be put together with this change. > * The `--no-relax` option should be passed to linker, see [[Clang][RISCV] > Forward --no-relax option to linker for RISC-V > #76432](https://github.com/llvm/llvm-project/pull/76432) The code remains consistent with RISCV. > * Pass `-X` to linker to discard a plethora of `.L` symbols due to linker > relaxation. See https://reviews.llvm.org/D127826 Discard_sec_merge is used by default in GNU ld, and in LoongArch's definition, it converts the use of discard_sec_merge to the use of discard_l, as shown in the code below. So our changes are consistent with RISCV. ``` if (link_info.discard == discard_sec_merge) link_info.discard = discard_l; ``` Should we put together the two part of code of pass --no-relax and -X with this change? These three parts of code (including this change) don't seem to have much to do with each other. https://github.com/llvm/llvm-project/pull/111488 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits