Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4a10b21 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

[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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 7c3dec06
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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