[PATCH] powerpc/vmlinux.lds: Add .text.asan/tsan sections

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE1284d LANDED

Landed in mainline as acd35dbab871 on 2023-02-28.

4 messages, 3 authors, 2023-03-04 · open the first message on its own page

[PATCH] powerpc/vmlinux.lds: Add .text.asan/tsan sections

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2023-02-22 06:01:42

When KASAN/KCSAN are enabled clang generates .text.asan/tsan sections.
Because they are not mentioned in the linker script warnings are
generated, and when orphan handling is set to error that becomes a build
error, eg:

  ld.lld: error: vmlinux.a(init/main.o):(.text.tsan.module_ctor) is
  being placed in '.text.tsan.module_ctor' ld.lld: error:
  vmlinux.a(init/version.o):(.text.tsan.module_ctor) is being placed in
  '.text.tsan.module_ctor'

Fix it by adding the sections to our linker script, similar to the
generic change made in 848378812e40 ("vmlinux.lds.h: Handle clang's
module.{c,d}tor sections").

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/kernel/vmlinux.lds.S | 1 +
 1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 958e77a24f85..7a2209767adf 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -125,6 +125,7 @@ SECTIONS
 		 * included with the main text sections, so put it by itself.
 		 */
 		*(.sfpr);
+		*(.text.asan.* .text.tsan.*)
 		MEM_KEEP(init.text)
 		MEM_KEEP(exit.text)
 	} :text
-- 
2.39.1

Re: [PATCH] powerpc/vmlinux.lds: Add .text.asan/tsan sections

From: Nathan Chancellor <nathan@kernel.org>
Date: 2023-02-22 17:09:36

On Wed, Feb 22, 2023 at 05:00:37PM +1100, Michael Ellerman wrote:
When KASAN/KCSAN are enabled clang generates .text.asan/tsan sections.
Because they are not mentioned in the linker script warnings are
generated, and when orphan handling is set to error that becomes a build
error, eg:

  ld.lld: error: vmlinux.a(init/main.o):(.text.tsan.module_ctor) is
  being placed in '.text.tsan.module_ctor' ld.lld: error:
  vmlinux.a(init/version.o):(.text.tsan.module_ctor) is being placed in
  '.text.tsan.module_ctor'

Fix it by adding the sections to our linker script, similar to the
generic change made in 848378812e40 ("vmlinux.lds.h: Handle clang's
module.{c,d}tor sections").

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Indeed, I had not thought about architectures not using the TEXT_TEXT
macro.

Reviewed-by: Nathan Chancellor <nathan@kernel.org>
quoted hunk
---
 arch/powerpc/kernel/vmlinux.lds.S | 1 +
 1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 958e77a24f85..7a2209767adf 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -125,6 +125,7 @@ SECTIONS
 		 * included with the main text sections, so put it by itself.
 		 */
 		*(.sfpr);
+		*(.text.asan.* .text.tsan.*)
 		MEM_KEEP(init.text)
 		MEM_KEEP(exit.text)
 	} :text
-- 
2.39.1

Re: [PATCH] powerpc/vmlinux.lds: Add .text.asan/tsan sections

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2023-02-23 04:44:02

Nathan Chancellor [off-list ref] writes:
On Wed, Feb 22, 2023 at 05:00:37PM +1100, Michael Ellerman wrote:
quoted
When KASAN/KCSAN are enabled clang generates .text.asan/tsan sections.
Because they are not mentioned in the linker script warnings are
generated, and when orphan handling is set to error that becomes a build
error, eg:

  ld.lld: error: vmlinux.a(init/main.o):(.text.tsan.module_ctor) is
  being placed in '.text.tsan.module_ctor' ld.lld: error:
  vmlinux.a(init/version.o):(.text.tsan.module_ctor) is being placed in
  '.text.tsan.module_ctor'

Fix it by adding the sections to our linker script, similar to the
generic change made in 848378812e40 ("vmlinux.lds.h: Handle clang's
module.{c,d}tor sections").

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Indeed, I had not thought about architectures not using the TEXT_TEXT
macro.
I think it's just us. I have a plan to fix that but it's a bit involved.
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Thanks.

cheers

Re: [PATCH] powerpc/vmlinux.lds: Add .text.asan/tsan sections

From: Michael Ellerman <hidden>
Date: 2023-03-04 10:37:29

On Wed, 22 Feb 2023 17:00:37 +1100, Michael Ellerman wrote:
When KASAN/KCSAN are enabled clang generates .text.asan/tsan sections.
Because they are not mentioned in the linker script warnings are
generated, and when orphan handling is set to error that becomes a build
error, eg:

  ld.lld: error: vmlinux.a(init/main.o):(.text.tsan.module_ctor) is
  being placed in '.text.tsan.module_ctor' ld.lld: error:
  vmlinux.a(init/version.o):(.text.tsan.module_ctor) is being placed in
  '.text.tsan.module_ctor'

[...]
Applied to powerpc/fixes.

[1/1] powerpc/vmlinux.lds: Add .text.asan/tsan sections
      https://git.kernel.org/powerpc/c/acd35dbab871d61021284ff06daccdc0ebb51e61

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help