From d654421dc263744463002d7e0af0e39ce5206e19 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 18 Sep 2025 04:55:38 -0700 Subject: [PATCH] ld: Don't use -mdirect-extern-access for LoongArch Don't check DIRECT_EXTERN_ACCESS_CFLAGS/NO_DIRECT_EXTERN_ACCESS_CFLAGS for LoongArch since -mdirect-extern-access on LoongArch works only without dynamic linker. PR ld/33409 * testsuite/config/default.exp (DIRECT_EXTERN_ACCESS_CFLAGS): Skip on LoongArch. (NO_DIRECT_EXTERN_ACCESS_CFLAGS): Likewise. Signed-off-by: H.J. Lu --- ld/testsuite/config/default.exp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp index fae7d72d7e0..9986397beed 100644 --- a/ld/testsuite/config/default.exp +++ b/ld/testsuite/config/default.exp @@ -459,12 +459,16 @@ if { ![info exists NOPIE_CFLAGS] || ![info exists NOPIE_LDFLAGS] } then { if { ![info exists DIRECT_EXTERN_ACCESS_CFLAGS] } then { set DIRECT_EXTERN_ACCESS_CFLAGS "" set NO_DIRECT_EXTERN_ACCESS_CFLAGS "" - if [compiler_supports "-mdirect-extern-access"] { - set DIRECT_EXTERN_ACCESS_CFLAGS "-mdirect-extern-access" - set NO_DIRECT_EXTERN_ACCESS_CFLAGS "-mno-direct-extern-access" - } elseif [compiler_supports "-fdirect-access-external-data"] { - set DIRECT_EXTERN_ACCESS_CFLAGS "-fdirect-access-external-data" - set NO_DIRECT_EXTERN_ACCESS_CFLAGS "-fno-direct-access-external-data" + # Exclude LoongArch since -mdirect-extern-access on LoongArch works + # only without dynamic linker. + if { ![istarget loongarch*-*-*] } { + if [compiler_supports "-mdirect-extern-access"] { + set DIRECT_EXTERN_ACCESS_CFLAGS "-mdirect-extern-access" + set NO_DIRECT_EXTERN_ACCESS_CFLAGS "-mno-direct-extern-access" + } elseif [compiler_supports "-fdirect-access-external-data"] { + set DIRECT_EXTERN_ACCESS_CFLAGS "-fdirect-access-external-data" + set NO_DIRECT_EXTERN_ACCESS_CFLAGS "-fno-direct-access-external-data" + } } } -- 2.47.3