s390: __builtin_trap() and gcc version.
PATCH 1/1 s390: __builtin_trap() and gcc version.
From: Heiko Carstens <[email protected]>
[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 <[email protected]>
Signed-off-by Martin Schwidefsky <[email protected]>
---
include/asm-s390/bug.h | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletion(-)
include/asm-s390/bug.h +10 -1
@@ -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 + asmvolatile (".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