aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/lib/memcpy.S
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-11-06 21:46:11 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2020-11-12 14:53:19 +0000
commit735e8d93dc2b107f7891a9c2b1c4cfbea1fcbbbc (patch)
treed37af8ed305cebd6185990a3bc124cb31efa3e36 /arch/arm/lib/memcpy.S
parentARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address (diff)
downloadlinux-dev-735e8d93dc2b107f7891a9c2b1c4cfbea1fcbbbc.tar.xz
linux-dev-735e8d93dc2b107f7891a9c2b1c4cfbea1fcbbbc.zip
ARM: 9022/1: Change arch/arm/lib/mem*.S to use WEAK instead of .weak
Commit d6d51a96c7d6 ("ARM: 9014/2: Replace string mem* functions for KASan") add .weak directives to memcpy/memmove/memset to avoid collision with KASAN interceptors. This does not work with LLVM's integrated assembler (the assembly snippet `.weak memcpy ... .globl memcpy` produces a STB_GLOBAL memcpy while GNU as produces a STB_WEAK memcpy). LLVM 12 (since https://reviews.llvm.org/D90108) will error on such an overridden symbol binding. Use the appropriate WEAK macro instead. Link: https://github.com/ClangBuiltLinux/linux/issues/1190 -- Fixes: d6d51a96c7d6 ("ARM: 9014/2: Replace string mem* functions for KASan") Reported-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Fangrui Song <maskray@google.com> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/lib/memcpy.S')
-rw-r--r--arch/arm/lib/memcpy.S3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S
index ad4625d16e11..e4caf48c089f 100644
--- a/arch/arm/lib/memcpy.S
+++ b/arch/arm/lib/memcpy.S
@@ -58,10 +58,9 @@
/* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
-.weak memcpy
ENTRY(__memcpy)
ENTRY(mmiocpy)
-ENTRY(memcpy)
+WEAK(memcpy)
#include "copy_template.S"