All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 10:31 ` Arnd Bergmann
  0 siblings, 0 replies; 18+ messages in thread
From: Arnd Bergmann @ 2018-01-02 10:31 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Arnd Bergmann, Vineet Gupta, Russell King, Jose Abreu,
	Sudip Mukherjee, linux-snps-arc, linux-kernel, linux-arm-kernel

We now have exports in both architecture code in in common code,
which causes a link failure when symbol versioning is eanbled, on
four architectures:

kernel/exit.o: In function `__crc_abort':
exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'

This removes the four architecture specific exports and only
leaves the export next to the __weak symbol.

Fixes: mmotm ("kernel/exit.c: export abort() to modules")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Andrew, can you apply this to -mm on top of the other patch?
---
 arch/arc/kernel/traps.c       | 1 -
 arch/arm/kernel/traps.c       | 1 -
 arch/m32r/kernel/traps.c      | 1 -
 arch/unicore32/kernel/traps.c | 1 -
 4 files changed, 4 deletions(-)

diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 51a55b06cb2a..133a4dae41fe 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -169,4 +169,3 @@ void abort(void)
 {
 	__asm__ __volatile__("trap_s  5\n");
 }
-EXPORT_SYMBOL(abort);
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index e344bdd2e5ac..5e3633c24e63 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)
 {
-- 
2.9.0

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 10:31 ` Arnd Bergmann
  0 siblings, 0 replies; 18+ messages in thread
From: Arnd Bergmann @ 2018-01-02 10:31 UTC (permalink / raw)
  To: linux-snps-arc

We now have exports in both architecture code in in common code,
which causes a link failure when symbol versioning is eanbled, on
four architectures:

kernel/exit.o: In function `__crc_abort':
exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'

This removes the four architecture specific exports and only
leaves the export next to the __weak symbol.

Fixes: mmotm ("kernel/exit.c: export abort() to modules")
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
---
Andrew, can you apply this to -mm on top of the other patch?
---
 arch/arc/kernel/traps.c       | 1 -
 arch/arm/kernel/traps.c       | 1 -
 arch/m32r/kernel/traps.c      | 1 -
 arch/unicore32/kernel/traps.c | 1 -
 4 files changed, 4 deletions(-)

diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 51a55b06cb2a..133a4dae41fe 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -169,4 +169,3 @@ void abort(void)
 {
 	__asm__ __volatile__("trap_s  5\n");
 }
-EXPORT_SYMBOL(abort);
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index e344bdd2e5ac..5e3633c24e63 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)
 {
-- 
2.9.0

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 10:31 ` Arnd Bergmann
  0 siblings, 0 replies; 18+ messages in thread
From: Arnd Bergmann @ 2018-01-02 10:31 UTC (permalink / raw)
  To: linux-arm-kernel

We now have exports in both architecture code in in common code,
which causes a link failure when symbol versioning is eanbled, on
four architectures:

kernel/exit.o: In function `__crc_abort':
exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'

This removes the four architecture specific exports and only
leaves the export next to the __weak symbol.

Fixes: mmotm ("kernel/exit.c: export abort() to modules")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Andrew, can you apply this to -mm on top of the other patch?
---
 arch/arc/kernel/traps.c       | 1 -
 arch/arm/kernel/traps.c       | 1 -
 arch/m32r/kernel/traps.c      | 1 -
 arch/unicore32/kernel/traps.c | 1 -
 4 files changed, 4 deletions(-)

diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 51a55b06cb2a..133a4dae41fe 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -169,4 +169,3 @@ void abort(void)
 {
 	__asm__ __volatile__("trap_s  5\n");
 }
-EXPORT_SYMBOL(abort);
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index e344bdd2e5ac..5e3633c24e63 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)
 {
-- 
2.9.0

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] arch: drop duplicate exports of abort()
  2018-01-02 10:31 ` Arnd Bergmann
  (?)
@ 2018-01-02 11:16   ` Russell King - ARM Linux
  -1 siblings, 0 replies; 18+ messages in thread
From: Russell King - ARM Linux @ 2018-01-02 11:16 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Andrew Morton, Vineet Gupta, Jose Abreu, Sudip Mukherjee,
	linux-snps-arc, linux-kernel, linux-arm-kernel

On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
> 
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> 
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.
> 
> Fixes: mmotm ("kernel/exit.c: export abort() to modules")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

For arm:

Acked-by: Russell King <rmk+kernel@armlinux.org.uk>

> ---
> Andrew, can you apply this to -mm on top of the other patch?
> ---
>  arch/arc/kernel/traps.c       | 1 -
>  arch/arm/kernel/traps.c       | 1 -
>  arch/m32r/kernel/traps.c      | 1 -
>  arch/unicore32/kernel/traps.c | 1 -
>  4 files changed, 4 deletions(-)
> 
> diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
> index 51a55b06cb2a..133a4dae41fe 100644
> --- a/arch/arc/kernel/traps.c
> +++ b/arch/arc/kernel/traps.c
> @@ -169,4 +169,3 @@ void abort(void)
>  {
>  	__asm__ __volatile__("trap_s  5\n");
>  }
> -EXPORT_SYMBOL(abort);
> diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
> index e344bdd2e5ac..5e3633c24e63 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)
>  {
> -- 
> 2.9.0
> 

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 11:16   ` Russell King - ARM Linux
  0 siblings, 0 replies; 18+ messages in thread
From: Russell King - ARM Linux @ 2018-01-02 11:16 UTC (permalink / raw)
  To: linux-snps-arc

On Tue, Jan 02, 2018@11:31:12AM +0100, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
> 
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> 
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.
> 
> Fixes: mmotm ("kernel/exit.c: export abort() to modules")
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>

For arm:

Acked-by: Russell King <rmk+kernel at armlinux.org.uk>

> ---
> Andrew, can you apply this to -mm on top of the other patch?
> ---
>  arch/arc/kernel/traps.c       | 1 -
>  arch/arm/kernel/traps.c       | 1 -
>  arch/m32r/kernel/traps.c      | 1 -
>  arch/unicore32/kernel/traps.c | 1 -
>  4 files changed, 4 deletions(-)
> 
> diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
> index 51a55b06cb2a..133a4dae41fe 100644
> --- a/arch/arc/kernel/traps.c
> +++ b/arch/arc/kernel/traps.c
> @@ -169,4 +169,3 @@ void abort(void)
>  {
>  	__asm__ __volatile__("trap_s  5\n");
>  }
> -EXPORT_SYMBOL(abort);
> diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
> index e344bdd2e5ac..5e3633c24e63 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)
>  {
> -- 
> 2.9.0
> 

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 11:16   ` Russell King - ARM Linux
  0 siblings, 0 replies; 18+ messages in thread
From: Russell King - ARM Linux @ 2018-01-02 11:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
> 
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> 
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.
> 
> Fixes: mmotm ("kernel/exit.c: export abort() to modules")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

For arm:

Acked-by: Russell King <rmk+kernel@armlinux.org.uk>

> ---
> Andrew, can you apply this to -mm on top of the other patch?
> ---
>  arch/arc/kernel/traps.c       | 1 -
>  arch/arm/kernel/traps.c       | 1 -
>  arch/m32r/kernel/traps.c      | 1 -
>  arch/unicore32/kernel/traps.c | 1 -
>  4 files changed, 4 deletions(-)
> 
> diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
> index 51a55b06cb2a..133a4dae41fe 100644
> --- a/arch/arc/kernel/traps.c
> +++ b/arch/arc/kernel/traps.c
> @@ -169,4 +169,3 @@ void abort(void)
>  {
>  	__asm__ __volatile__("trap_s  5\n");
>  }
> -EXPORT_SYMBOL(abort);
> diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
> index e344bdd2e5ac..5e3633c24e63 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)
>  {
> -- 
> 2.9.0
> 

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] arch: drop duplicate exports of abort()
  2018-01-02 10:31 ` Arnd Bergmann
  (?)
@ 2018-01-02 11:34   ` Sudip Mukherjee
  -1 siblings, 0 replies; 18+ messages in thread
From: Sudip Mukherjee @ 2018-01-02 11:34 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Andrew Morton, Vineet Gupta, Russell King, Jose Abreu,
	linux-snps-arc, linux-kernel, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 665 bytes --]

Hi Arnd,

On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
> 
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> 
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.

Will it not be better to remove the abort() as they are exactly same
like the weak function. That was the original plan we had when this
weak function was done. Like in the attached patch..

--
Regards
Sudip

[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 1556 bytes --]

diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 51a55b0..133a4da 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -169,4 +169,3 @@ void abort(void)
 {
 	__asm__ __volatile__("trap_s  5\n");
 }
-EXPORT_SYMBOL(abort);
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index e344bdd..917b425 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -786,15 +786,6 @@ asmlinkage void __div0(void)
 }
 EXPORT_SYMBOL(__div0);
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	return;
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
index cb79fba..a6f300a 100644
--- a/arch/m32r/kernel/traps.c
+++ b/arch/m32r/kernel/traps.c
@@ -115,15 +115,6 @@ static void set_eit_vector_entries(void)
 	_flush_cache_copyback_all();
 }
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	set_eit_vector_entries();
diff --git a/arch/unicore32/kernel/traps.c b/arch/unicore32/kernel/traps.c
index 5f25b39..30d6613 100644
--- a/arch/unicore32/kernel/traps.c
+++ b/arch/unicore32/kernel/traps.c
@@ -291,15 +291,6 @@ asmlinkage void __div0(void)
 }
 EXPORT_SYMBOL(__div0);
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	return;

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 11:34   ` Sudip Mukherjee
  0 siblings, 0 replies; 18+ messages in thread
From: Sudip Mukherjee @ 2018-01-02 11:34 UTC (permalink / raw)
  To: linux-snps-arc

Hi Arnd,

On Tue, Jan 02, 2018@11:31:12AM +0100, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
> 
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> 
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.

Will it not be better to remove the abort() as they are exactly same
like the weak function. That was the original plan we had when this
weak function was done. Like in the attached patch..

--
Regards
Sudip
-------------- next part --------------
diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 51a55b0..133a4da 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -169,4 +169,3 @@ void abort(void)
 {
 	__asm__ __volatile__("trap_s  5\n");
 }
-EXPORT_SYMBOL(abort);
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index e344bdd..917b425 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -786,15 +786,6 @@ asmlinkage void __div0(void)
 }
 EXPORT_SYMBOL(__div0);
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	return;
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
index cb79fba..a6f300a 100644
--- a/arch/m32r/kernel/traps.c
+++ b/arch/m32r/kernel/traps.c
@@ -115,15 +115,6 @@ static void set_eit_vector_entries(void)
 	_flush_cache_copyback_all();
 }
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	set_eit_vector_entries();
diff --git a/arch/unicore32/kernel/traps.c b/arch/unicore32/kernel/traps.c
index 5f25b39..30d6613 100644
--- a/arch/unicore32/kernel/traps.c
+++ b/arch/unicore32/kernel/traps.c
@@ -291,15 +291,6 @@ asmlinkage void __div0(void)
 }
 EXPORT_SYMBOL(__div0);
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	return;

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 11:34   ` Sudip Mukherjee
  0 siblings, 0 replies; 18+ messages in thread
From: Sudip Mukherjee @ 2018-01-02 11:34 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arnd,

On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
> 
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> 
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.

Will it not be better to remove the abort() as they are exactly same
like the weak function. That was the original plan we had when this
weak function was done. Like in the attached patch..

--
Regards
Sudip
-------------- next part --------------
diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 51a55b0..133a4da 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -169,4 +169,3 @@ void abort(void)
 {
 	__asm__ __volatile__("trap_s  5\n");
 }
-EXPORT_SYMBOL(abort);
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index e344bdd..917b425 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -786,15 +786,6 @@ asmlinkage void __div0(void)
 }
 EXPORT_SYMBOL(__div0);
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	return;
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
index cb79fba..a6f300a 100644
--- a/arch/m32r/kernel/traps.c
+++ b/arch/m32r/kernel/traps.c
@@ -115,15 +115,6 @@ static void set_eit_vector_entries(void)
 	_flush_cache_copyback_all();
 }
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	set_eit_vector_entries();
diff --git a/arch/unicore32/kernel/traps.c b/arch/unicore32/kernel/traps.c
index 5f25b39..30d6613 100644
--- a/arch/unicore32/kernel/traps.c
+++ b/arch/unicore32/kernel/traps.c
@@ -291,15 +291,6 @@ asmlinkage void __div0(void)
 }
 EXPORT_SYMBOL(__div0);
 
-void abort(void)
-{
-	BUG();
-
-	/* if that doesn't kill us, halt */
-	panic("Oops failed to kill thread");
-}
-EXPORT_SYMBOL(abort);
-
 void __init trap_init(void)
 {
 	return;

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] arch: drop duplicate exports of abort()
  2018-01-02 11:34   ` Sudip Mukherjee
  (?)
@ 2018-01-02 11:38     ` Russell King - ARM Linux
  -1 siblings, 0 replies; 18+ messages in thread
From: Russell King - ARM Linux @ 2018-01-02 11:38 UTC (permalink / raw)
  To: Sudip Mukherjee
  Cc: Arnd Bergmann, Jose Abreu, Vineet Gupta, linux-kernel,
	Andrew Morton, linux-snps-arc, linux-arm-kernel

On Tue, Jan 02, 2018 at 11:34:45AM +0000, Sudip Mukherjee wrote:
> Hi Arnd,
> 
> On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> > We now have exports in both architecture code in in common code,
> > which causes a link failure when symbol versioning is eanbled, on
> > four architectures:
> > 
> > kernel/exit.o: In function `__crc_abort':
> > exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> > 
> > This removes the four architecture specific exports and only
> > leaves the export next to the __weak symbol.
> 
> Will it not be better to remove the abort() as they are exactly same
> like the weak function. That was the original plan we had when this
> weak function was done. Like in the attached patch..

If that was the plan, why wasn't it done - why did we end up with a
build-breaking patch merged in -mm?

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 11:38     ` Russell King - ARM Linux
  0 siblings, 0 replies; 18+ messages in thread
From: Russell King - ARM Linux @ 2018-01-02 11:38 UTC (permalink / raw)
  To: linux-snps-arc

On Tue, Jan 02, 2018@11:34:45AM +0000, Sudip Mukherjee wrote:
> Hi Arnd,
> 
> On Tue, Jan 02, 2018@11:31:12AM +0100, Arnd Bergmann wrote:
> > We now have exports in both architecture code in in common code,
> > which causes a link failure when symbol versioning is eanbled, on
> > four architectures:
> > 
> > kernel/exit.o: In function `__crc_abort':
> > exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> > 
> > This removes the four architecture specific exports and only
> > leaves the export next to the __weak symbol.
> 
> Will it not be better to remove the abort() as they are exactly same
> like the weak function. That was the original plan we had when this
> weak function was done. Like in the attached patch..

If that was the plan, why wasn't it done - why did we end up with a
build-breaking patch merged in -mm?

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 11:38     ` Russell King - ARM Linux
  0 siblings, 0 replies; 18+ messages in thread
From: Russell King - ARM Linux @ 2018-01-02 11:38 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jan 02, 2018 at 11:34:45AM +0000, Sudip Mukherjee wrote:
> Hi Arnd,
> 
> On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> > We now have exports in both architecture code in in common code,
> > which causes a link failure when symbol versioning is eanbled, on
> > four architectures:
> > 
> > kernel/exit.o: In function `__crc_abort':
> > exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> > 
> > This removes the four architecture specific exports and only
> > leaves the export next to the __weak symbol.
> 
> Will it not be better to remove the abort() as they are exactly same
> like the weak function. That was the original plan we had when this
> weak function was done. Like in the attached patch..

If that was the plan, why wasn't it done - why did we end up with a
build-breaking patch merged in -mm?

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] arch: drop duplicate exports of abort()
  2018-01-02 11:38     ` Russell King - ARM Linux
  (?)
@ 2018-01-02 12:34       ` Sudip Mukherjee
  -1 siblings, 0 replies; 18+ messages in thread
From: Sudip Mukherjee @ 2018-01-02 12:34 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Arnd Bergmann, Jose Abreu, Vineet Gupta, linux-kernel,
	Andrew Morton, linux-snps-arc, linux-arm-kernel

On Tue, Jan 02, 2018 at 11:38:29AM +0000, Russell King - ARM Linux wrote:
> On Tue, Jan 02, 2018 at 11:34:45AM +0000, Sudip Mukherjee wrote:
> > Hi Arnd,
> > 
> > On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> > > We now have exports in both architecture code in in common code,
> > > which causes a link failure when symbol versioning is eanbled, on
> > > four architectures:
> > > 
> > > kernel/exit.o: In function `__crc_abort':
> > > exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> > > 
> > > This removes the four architecture specific exports and only
> > > leaves the export next to the __weak symbol.
> > 
> > Will it not be better to remove the abort() as they are exactly same
> > like the weak function. That was the original plan we had when this
> > weak function was done. Like in the attached patch..
> 
> If that was the plan, why wasn't it done - why did we end up with a
> build-breaking patch merged in -mm?

The proposed patch (which I attached in the earlier mail) was breaking
the build unless weak abort() is exported. So, ideally the export of
weak abort() and the proposed patch should have been part of a series.
But afaik, the export has been done to fix another build failure reported
by Vineet.

Andrew, I think the best way now is to apply the patch sent by Arnd,
and I will send a separate patch to remove abort() after proper testing.


--
Regards
Sudip

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 12:34       ` Sudip Mukherjee
  0 siblings, 0 replies; 18+ messages in thread
From: Sudip Mukherjee @ 2018-01-02 12:34 UTC (permalink / raw)
  To: linux-snps-arc

On Tue, Jan 02, 2018@11:38:29AM +0000, Russell King - ARM Linux wrote:
> On Tue, Jan 02, 2018@11:34:45AM +0000, Sudip Mukherjee wrote:
> > Hi Arnd,
> > 
> > On Tue, Jan 02, 2018@11:31:12AM +0100, Arnd Bergmann wrote:
> > > We now have exports in both architecture code in in common code,
> > > which causes a link failure when symbol versioning is eanbled, on
> > > four architectures:
> > > 
> > > kernel/exit.o: In function `__crc_abort':
> > > exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> > > 
> > > This removes the four architecture specific exports and only
> > > leaves the export next to the __weak symbol.
> > 
> > Will it not be better to remove the abort() as they are exactly same
> > like the weak function. That was the original plan we had when this
> > weak function was done. Like in the attached patch..
> 
> If that was the plan, why wasn't it done - why did we end up with a
> build-breaking patch merged in -mm?

The proposed patch (which I attached in the earlier mail) was breaking
the build unless weak abort() is exported. So, ideally the export of
weak abort() and the proposed patch should have been part of a series.
But afaik, the export has been done to fix another build failure reported
by Vineet.

Andrew, I think the best way now is to apply the patch sent by Arnd,
and I will send a separate patch to remove abort() after proper testing.


--
Regards
Sudip

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-02 12:34       ` Sudip Mukherjee
  0 siblings, 0 replies; 18+ messages in thread
From: Sudip Mukherjee @ 2018-01-02 12:34 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jan 02, 2018 at 11:38:29AM +0000, Russell King - ARM Linux wrote:
> On Tue, Jan 02, 2018 at 11:34:45AM +0000, Sudip Mukherjee wrote:
> > Hi Arnd,
> > 
> > On Tue, Jan 02, 2018 at 11:31:12AM +0100, Arnd Bergmann wrote:
> > > We now have exports in both architecture code in in common code,
> > > which causes a link failure when symbol versioning is eanbled, on
> > > four architectures:
> > > 
> > > kernel/exit.o: In function `__crc_abort':
> > > exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
> > > 
> > > This removes the four architecture specific exports and only
> > > leaves the export next to the __weak symbol.
> > 
> > Will it not be better to remove the abort() as they are exactly same
> > like the weak function. That was the original plan we had when this
> > weak function was done. Like in the attached patch..
> 
> If that was the plan, why wasn't it done - why did we end up with a
> build-breaking patch merged in -mm?

The proposed patch (which I attached in the earlier mail) was breaking
the build unless weak abort() is exported. So, ideally the export of
weak abort() and the proposed patch should have been part of a series.
But afaik, the export has been done to fix another build failure reported
by Vineet.

Andrew, I think the best way now is to apply the patch sent by Arnd,
and I will send a separate patch to remove abort() after proper testing.


--
Regards
Sudip

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] arch: drop duplicate exports of abort()
  2018-01-02 10:31 ` Arnd Bergmann
  (?)
@ 2018-01-03 16:51   ` Vineet Gupta
  -1 siblings, 0 replies; 18+ messages in thread
From: Vineet Gupta @ 2018-01-03 16:51 UTC (permalink / raw)
  To: Arnd Bergmann, Andrew Morton
  Cc: Russell King, Jose Abreu, Sudip Mukherjee, linux-snps-arc,
	linux-kernel, linux-arm-kernel

On 01/02/2018 02:33 AM, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
>
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
>
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.
>
> Fixes: mmotm ("kernel/exit.c: export abort() to modules")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> Andrew, can you apply this to -mm on top of the other patch?
> ---
>   arch/arc/kernel/traps.c       | 1 -
>   arch/arm/kernel/traps.c       | 1 -
>   arch/m32r/kernel/traps.c      | 1 -
>   arch/unicore32/kernel/traps.c | 1 -
>   4 files changed, 4 deletions(-)
>
> diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
> index 51a55b06cb2a..133a4dae41fe 100644
> --- a/arch/arc/kernel/traps.c
> +++ b/arch/arc/kernel/traps.c
> @@ -169,4 +169,3 @@ void abort(void)
>   {
>   	__asm__ __volatile__("trap_s  5\n");
>   }
> -EXPORT_SYMBOL(abort);

FWIW, this hunk did not yet hit mainline. I've removed it from my patch in 
for-curr and re-pushed !

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-03 16:51   ` Vineet Gupta
  0 siblings, 0 replies; 18+ messages in thread
From: Vineet Gupta @ 2018-01-03 16:51 UTC (permalink / raw)
  To: linux-snps-arc

On 01/02/2018 02:33 AM, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
>
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
>
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.
>
> Fixes: mmotm ("kernel/exit.c: export abort() to modules")
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> ---
> Andrew, can you apply this to -mm on top of the other patch?
> ---
>   arch/arc/kernel/traps.c       | 1 -
>   arch/arm/kernel/traps.c       | 1 -
>   arch/m32r/kernel/traps.c      | 1 -
>   arch/unicore32/kernel/traps.c | 1 -
>   4 files changed, 4 deletions(-)
>
> diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
> index 51a55b06cb2a..133a4dae41fe 100644
> --- a/arch/arc/kernel/traps.c
> +++ b/arch/arc/kernel/traps.c
> @@ -169,4 +169,3 @@ void abort(void)
>   {
>   	__asm__ __volatile__("trap_s  5\n");
>   }
> -EXPORT_SYMBOL(abort);

FWIW, this hunk did not yet hit mainline. I've removed it from my patch in 
for-curr and re-pushed !

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] arch: drop duplicate exports of abort()
@ 2018-01-03 16:51   ` Vineet Gupta
  0 siblings, 0 replies; 18+ messages in thread
From: Vineet Gupta @ 2018-01-03 16:51 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/02/2018 02:33 AM, Arnd Bergmann wrote:
> We now have exports in both architecture code in in common code,
> which causes a link failure when symbol versioning is eanbled, on
> four architectures:
>
> kernel/exit.o: In function `__crc_abort':
> exit.c:(*ABS*+0xc0e2ec8b): multiple definition of `__crc_abort'
>
> This removes the four architecture specific exports and only
> leaves the export next to the __weak symbol.
>
> Fixes: mmotm ("kernel/exit.c: export abort() to modules")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> Andrew, can you apply this to -mm on top of the other patch?
> ---
>   arch/arc/kernel/traps.c       | 1 -
>   arch/arm/kernel/traps.c       | 1 -
>   arch/m32r/kernel/traps.c      | 1 -
>   arch/unicore32/kernel/traps.c | 1 -
>   4 files changed, 4 deletions(-)
>
> diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
> index 51a55b06cb2a..133a4dae41fe 100644
> --- a/arch/arc/kernel/traps.c
> +++ b/arch/arc/kernel/traps.c
> @@ -169,4 +169,3 @@ void abort(void)
>   {
>   	__asm__ __volatile__("trap_s  5\n");
>   }
> -EXPORT_SYMBOL(abort);

FWIW, this hunk did not yet hit mainline. I've removed it from my patch in 
for-curr and re-pushed !

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-01-03 16:51 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-02 10:31 [PATCH] arch: drop duplicate exports of abort() Arnd Bergmann
2018-01-02 10:31 ` Arnd Bergmann
2018-01-02 10:31 ` Arnd Bergmann
2018-01-02 11:16 ` Russell King - ARM Linux
2018-01-02 11:16   ` Russell King - ARM Linux
2018-01-02 11:16   ` Russell King - ARM Linux
2018-01-02 11:34 ` Sudip Mukherjee
2018-01-02 11:34   ` Sudip Mukherjee
2018-01-02 11:34   ` Sudip Mukherjee
2018-01-02 11:38   ` Russell King - ARM Linux
2018-01-02 11:38     ` Russell King - ARM Linux
2018-01-02 11:38     ` Russell King - ARM Linux
2018-01-02 12:34     ` Sudip Mukherjee
2018-01-02 12:34       ` Sudip Mukherjee
2018-01-02 12:34       ` Sudip Mukherjee
2018-01-03 16:51 ` Vineet Gupta
2018-01-03 16:51   ` Vineet Gupta
2018-01-03 16:51   ` Vineet Gupta

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.