1
0
Fork 0

[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>
hifive-unleashed-5.1
Heiko Carstens 2006-07-12 16:39:42 +02:00 committed by Martin Schwidefsky
parent 7c3dec0679
commit f4a10b211d
1 changed files with 10 additions and 1 deletions

View File

@ -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