diff options
author | Lulu Cheng <chenglulu@loongson.cn> | 2025-02-12 14:29:58 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2025-02-17 10:15:39 +0800 |
commit | ae14d7d04da8c6cb542269722638071f999f94d8 (patch) | |
tree | f809de7cc994fdc132b5f9931259568ca29e6e31 /gcc/fortran/trans-expr.cc | |
parent | 2ef2b206c4617abae60002280455f7175aaa6064 (diff) | |
download | gcc-ae14d7d04da8c6cb542269722638071f999f94d8.zip gcc-ae14d7d04da8c6cb542269722638071f999f94d8.tar.gz gcc-ae14d7d04da8c6cb542269722638071f999f94d8.tar.bz2 |
LoongArch: Fix the issue of function jump out of range caused by crtbeginS.o [PR118844].
Due to the presence of R_LARCH_B26 in
/usr/lib/gcc/loongarch64-linux-gnu/14/crtbeginS.o, its addressing
range is [PC-128MiB, PC+128MiB-4]. This means that when the code
segment size exceeds 128MB, linking with lld will definitely fail
(ld will not fail because the order of the two is different).
The linking order:
lld: crtbeginS.o + .text + .plt
ld : .plt + crtbeginS.o + .text
To solve this issue, add '-mcmodel=extreme' when compiling crtbeginS.o.
PR target/118844
libgcc/ChangeLog:
* config/loongarch/t-crtstuff: Add '-mcmodel=extreme'
to CRTSTUFF_T_CFLAGS_S.
Diffstat (limited to 'gcc/fortran/trans-expr.cc')
0 files changed, 0 insertions, 0 deletions