diff options
| author | Heiko Carstens <hca@linux.ibm.com> | 2026-01-09 18:31:36 +0300 |
|---|---|---|
| committer | Heiko Carstens <hca@linux.ibm.com> | 2026-01-27 14:16:15 +0300 |
| commit | e5f3e67de587b8e876ca04d5bd021d751fe9c4d2 (patch) | |
| tree | 942549c3f1eac1375bebded45f17b0c8b8b2946c | |
| parent | 88303fb68cc2e8b975f1505c84f215a934f6c2ad (diff) | |
| download | linux-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/Kconfig | 6 |
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) |
