Commit e5f3e67d authored by Heiko Carstens's avatar Heiko Carstens
Browse files

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: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 88303fb6
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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)