Hi,
the root cause of
https://marc.info/?t=154824821000001&r=1&w=2 was
fixed in gcc trunk (only) and it's now available in gcc-9.0.1-0.4.fc30.
Something like the patch bellow is needed, but things get complicated,
because the new constraint won't be available in gcc < 9 (afaik). A
scratch build succeeded -
https://koji.fedoraproject.org/koji/taskinfo?taskID=32736584
What I changed
- updated 0001-s390-jump_label-Correct-asm-contraint.patch and added as Patch5xx
- reverted the *config* part of 1b48caa (Disable CONFIG_JUMP_LABEL on s390x)
diff --git a/arch/s390/include/asm/jump_label.h b/arch/s390/include/asm/jump_label.h
index e2d3e6c43395..41dabfd8518d 100644
--- a/arch/s390/include/asm/jump_label.h
+++ b/arch/s390/include/asm/jump_label.h
@@ -22,7 +22,7 @@ static inline bool arch_static_branch(struct static_key *key, bool
branch)
".long 0b-.,%l[label]-.\n"
".quad %0-.\n"
".popsection\n"
- : : "X" (&((char *)key)[branch]) : : label);
+ : : "jdd" (&((char *)key)[branch]) : : label);
return false;
label:
return true;
@@ -36,7 +36,7 @@ static inline bool arch_static_branch_jump(struct static_key *key, bool
branch)
".long 0b-.,%l[label]-.\n"
".quad %0-.\n"
".popsection\n"
- : : "X" (&((char *)key)[branch]) : : label);
+ : : "jdd" (&((char *)key)[branch]) : : label);
return false;
label:
return true;
With regards,
Dan