mirror of https://gitee.com/openkylin/linux.git
ARM: 9022/1: Change arch/arm/lib/mem*.S to use WEAK instead of .weak
Commitd6d51a96c7
("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:d6d51a96c7
("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>
This commit is contained in:
parent
fc2933c133
commit
735e8d93dc
|
@ -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"
|
||||
|
||||
|
|
|
@ -24,9 +24,8 @@
|
|||
* occurring in the opposite direction.
|
||||
*/
|
||||
|
||||
.weak memmove
|
||||
ENTRY(__memmove)
|
||||
ENTRY(memmove)
|
||||
WEAK(memmove)
|
||||
UNWIND( .fnstart )
|
||||
|
||||
subs ip, r0, r1
|
||||
|
|
|
@ -13,10 +13,9 @@
|
|||
.text
|
||||
.align 5
|
||||
|
||||
.weak memset
|
||||
ENTRY(__memset)
|
||||
ENTRY(mmioset)
|
||||
ENTRY(memset)
|
||||
WEAK(memset)
|
||||
UNWIND( .fnstart )
|
||||
ands r3, r0, #3 @ 1 unaligned?
|
||||
mov ip, r0 @ preserve r0 as return value
|
||||
|
|
Loading…
Reference in New Issue