summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2026-01-09 18:31:36 +0300
committerHeiko Carstens <hca@linux.ibm.com>2026-01-27 14:16:15 +0300
commite5f3e67de587b8e876ca04d5bd021d751fe9c4d2 (patch)
tree942549c3f1eac1375bebded45f17b0c8b8b2946c
parent88303fb68cc2e8b975f1505c84f215a934f6c2ad (diff)
downloadlinux-e5f3e67de587b8e876ca04d5bd021d751fe9c4d2.tar.xz
s390: Add CC_HAS_ASM_IMMEDIATE_STRINGS
Upcoming changes to s390 specific inline assemblies require the usage of strings as immediate input operands. This works only with gcc-9 and newer compilers. With gcc-8 this leads to a compile error: void bar(void) { asm volatile("" :: "i" ("foo")); } Results in: In function 'bar': warning: asm operand 0 probably doesn't match constraints asm volatile("" :: "i" ("foo")); ^~~ error: impossible constraint in 'asm' Provide a CC_HAS_ASM_IMMEDIATE_STRINGS config option which allows to tell if the compiler supports strings as immediate input operands. Based on that conditional code can be provided. Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-rw-r--r--arch/s390/Kconfig6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index cd856318ffe5..fcce8c5db703 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -69,6 +69,12 @@ config CC_HAS_ASM_AOR_FORMAT_FLAGS
Clang versions before 19.1.0 do not support A,
O, and R inline assembly format flags.
+config CC_HAS_ASM_IMMEDIATE_STRINGS
+ def_bool !(CC_IS_GCC && GCC_VERSION < 90000)
+ help
+ GCC versions before 9.0.0 cannot handle strings as immediate
+ input operands in inline assemblies.
+
config CC_HAS_STACKPROTECTOR_GLOBAL
def_bool $(cc-option, -mstack-protector-guard=global -mstack-protector-guard-record)