mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	While building mpi.ko module with stable Linux v4.14.14 an error occured:
>ERROR: "abort" [lib/mpi/mpi.ko] undefined!
In upstream Linux 4.15 this issue is fixed:
Commit 7c2c11b208be ("arch: define weak abort()")
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c2c11b208be09c156573fc0076b7b3646e05219
Commit dc8635b78cd8 ("kernel/exit.c: export abort() to modules")
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dc8635b78cd8669c37e230058d18c33af7451ab1
So lets add backport patches until these fixes
are not applied in stable version.
Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
CC: John Crispin <john@phrozen.org>
CC: Hauke Mehrtens <hauke@hauke-m.de>
		
	
			
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From dc8635b78cd8669c37e230058d18c33af7451ab1 Mon Sep 17 00:00:00 2001
 | |
| From: Andrew Morton <akpm@linux-foundation.org>
 | |
| Date: Thu, 4 Jan 2018 16:17:56 -0800
 | |
| Subject: [PATCH] kernel/exit.c: export abort() to modules
 | |
| 
 | |
| gcc -fisolate-erroneous-paths-dereference can generate calls to abort()
 | |
| from modular code too.
 | |
| 
 | |
| [arnd@arndb.de: drop duplicate exports of abort()]
 | |
|   Link: http://lkml.kernel.org/r/20180102103311.706364-1-arnd@arndb.de
 | |
| Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com>
 | |
| Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
 | |
| Cc: Arnd Bergmann <arnd@arndb.de>
 | |
| Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
 | |
| Cc: Russell King <rmk+kernel@armlinux.org.uk>
 | |
| Cc: Jose Abreu <Jose.Abreu@synopsys.com>
 | |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 | |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 | |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 | |
| ---
 | |
|  arch/arm/kernel/traps.c       | 1 -
 | |
|  arch/m32r/kernel/traps.c      | 1 -
 | |
|  arch/unicore32/kernel/traps.c | 1 -
 | |
|  kernel/exit.c                 | 1 +
 | |
|  4 files changed, 1 insertion(+), 3 deletions(-)
 | |
| 
 | |
| diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
 | |
| index 5cf04888c581..3e26c6f7a191 100644
 | |
| --- a/arch/arm/kernel/traps.c
 | |
| +++ b/arch/arm/kernel/traps.c
 | |
| @@ -793,7 +793,6 @@ void abort(void)
 | |
|  	/* if that doesn't kill us, halt */
 | |
|  	panic("Oops failed to kill thread");
 | |
|  }
 | |
| -EXPORT_SYMBOL(abort);
 | |
|  
 | |
|  void __init trap_init(void)
 | |
|  {
 | |
| diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
 | |
| index cb79fba79d43..b88a8dd14933 100644
 | |
| --- a/arch/m32r/kernel/traps.c
 | |
| +++ b/arch/m32r/kernel/traps.c
 | |
| @@ -122,7 +122,6 @@ void abort(void)
 | |
|  	/* if that doesn't kill us, halt */
 | |
|  	panic("Oops failed to kill thread");
 | |
|  }
 | |
| -EXPORT_SYMBOL(abort);
 | |
|  
 | |
|  void __init trap_init(void)
 | |
|  {
 | |
| diff --git a/arch/unicore32/kernel/traps.c b/arch/unicore32/kernel/traps.c
 | |
| index 5f25b39f04d4..c4ac6043ebb0 100644
 | |
| --- a/arch/unicore32/kernel/traps.c
 | |
| +++ b/arch/unicore32/kernel/traps.c
 | |
| @@ -298,7 +298,6 @@ void abort(void)
 | |
|  	/* if that doesn't kill us, halt */
 | |
|  	panic("Oops failed to kill thread");
 | |
|  }
 | |
| -EXPORT_SYMBOL(abort);
 | |
|  
 | |
|  void __init trap_init(void)
 | |
|  {
 | |
| diff --git a/kernel/exit.c b/kernel/exit.c
 | |
| index df0c91d5606c..995453d9fb55 100644
 | |
| --- a/kernel/exit.c
 | |
| +++ b/kernel/exit.c
 | |
| @@ -1763,3 +1763,4 @@ __weak void abort(void)
 | |
|  	/* if that doesn't kill us, halt */
 | |
|  	panic("Oops failed to kill thread");
 | |
|  }
 | |
| +EXPORT_SYMBOL(abort);
 | |
| -- 
 | |
| 2.11.0
 | |
| 
 |