2018-01-30 12:36:51 +00:00
|
|
|
From 7c2c11b208be09c156573fc0076b7b3646e05219 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
|
|
|
|
Date: Thu, 14 Dec 2017 15:33:19 -0800
|
|
|
|
Subject: [PATCH] arch: define weak abort()
|
|
|
|
|
|
|
|
gcc toggle -fisolate-erroneous-paths-dereference (default at -O2
|
|
|
|
onwards) isolates faulty code paths such as null pointer access, divide
|
|
|
|
by zero etc. If gcc port doesnt implement __builtin_trap, an abort() is
|
|
|
|
generated which causes kernel link error.
|
|
|
|
|
|
|
|
In this case, gcc is generating abort due to 'divide by zero' in
|
|
|
|
lib/mpi/mpih-div.c.
|
|
|
|
|
|
|
|
Currently 'frv' and 'arc' are failing. Previously other arch was also
|
|
|
|
broken like m32r was fixed by commit d22e3d69ee1a ("m32r: fix build
|
|
|
|
failure").
|
|
|
|
|
|
|
|
Let's define this weak function which is common for all arch and fix the
|
|
|
|
problem permanently. We can even remove the arch specific 'abort' after
|
|
|
|
this is done.
|
|
|
|
|
|
|
|
Link: http://lkml.kernel.org/r/1513118956-8718-1-git-send-email-sudipm.mukherjee@gmail.com
|
|
|
|
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
|
|
|
|
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
|
|
|
|
Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
|
|
|
|
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
|
|
|
|
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|
|
|
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
|
|
---
|
|
|
|
kernel/exit.c | 8 ++++++++
|
|
|
|
1 file changed, 8 insertions(+)
|
|
|
|
|
|
|
|
--- a/kernel/exit.c
|
|
|
|
+++ b/kernel/exit.c
|
2018-01-16 22:07:58 +00:00
|
|
|
@@ -1755,3 +1755,11 @@ Efault:
|
2018-01-30 12:36:51 +00:00
|
|
|
return -EFAULT;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
+
|
|
|
|
+__weak void abort(void)
|
|
|
|
+{
|
|
|
|
+ BUG();
|
|
|
|
+
|
|
|
|
+ /* if that doesn't kill us, halt */
|
|
|
|
+ panic("Oops failed to kill thread");
|
|
|
|
+}
|