* [patch] s390: __builtin_trap() and gcc version.
@ 2006-07-04 16:50 Martin Schwidefsky
0 siblings, 0 replies; only message in thread
From: Martin Schwidefsky @ 2006-07-04 16:50 UTC (permalink / raw)
To: linux-kernel, heiko.carstens
From: Heiko Carstens <heiko.carstens@de.ibm.com>
[S390] __builtin_trap() and gcc version.
__builtin_trap() has the archictecture defined backend in gcc since gcc 3.3.
To make sure the kernel builds with gcc 3.2 as well, use the old style BUG()
statement if compiled with older gcc versions.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
---
include/asm-s390/bug.h | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletion(-)
diff -urpN linux-2.6/include/asm-s390/bug.h linux-2.6-patched/include/asm-s390/bug.h
--- linux-2.6/include/asm-s390/bug.h 2006-06-18 03:49:35.000000000 +0200
+++ linux-2.6-patched/include/asm-s390/bug.h 2006-07-04 18:31:30.000000000 +0200
@@ -5,9 +5,18 @@
#ifdef CONFIG_BUG
+static inline __attribute__((noreturn)) void __do_illegal_op(void)
+{
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
+ __builtin_trap();
+#else
+ asm volatile(".long 0");
+#endif
+}
+
#define BUG() do { \
printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
- __builtin_trap(); \
+ __do_illegal_op(); \
} while (0)
#define HAVE_ARCH_BUG
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-07-04 16:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-04 16:50 [patch] s390: __builtin_trap() and gcc version Martin Schwidefsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox