mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-29 13:23:23 +01:00
x86/asm: Fix build of UML with KASAN
Building UML with KASAN fails since commit69d4c0d321("entry, kasan, x86: Disallow overriding mem*() functions") with the following errors: $ tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y ... ld: mm/kasan/shadow.o: in function `memset': shadow.c:(.text+0x40): multiple definition of `memset'; arch/x86/lib/memset_64.o:(.noinstr.text+0x0): first defined here ld: mm/kasan/shadow.o: in function `memmove': shadow.c:(.text+0x90): multiple definition of `memmove'; arch/x86/lib/memmove_64.o:(.noinstr.text+0x0): first defined here ld: mm/kasan/shadow.o: in function `memcpy': shadow.c:(.text+0x110): multiple definition of `memcpy'; arch/x86/lib/memcpy_64.o:(.noinstr.text+0x0): first defined here UML does not use GENERIC_ENTRY and is still supposed to be allowed to override the mem*() functions, so use weak aliases in that case. Fixes:69d4c0d321("entry, kasan, x86: Disallow overriding mem*() functions") Signed-off-by: Vincent Whitchurch <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Cc: Linus Torvalds <[email protected]> Link: https://lore.kernel.org/r/[email protected]
This commit is contained in:
1 parent
34cf99c250
commit
10f4c9b9a3
4 files changed
+10
-3
No files matched your search
@@ -105,6 +105,13 @@
|
||||
CFI_POST_PADDING \
|
||||
SYM_FUNC_END(__cfi_##name)
|
||||
|
||||
/* UML needs to be able to override memcpy() and friends for KASAN. */
|
||||
#ifdef CONFIG_UML
|
||||
# define SYM_FUNC_ALIAS_MEMFUNC SYM_FUNC_ALIAS_WEAK
|
||||
#else
|
||||
# define SYM_FUNC_ALIAS_MEMFUNC SYM_FUNC_ALIAS
|
||||
#endif
|
||||
|
||||
/* SYM_TYPED_FUNC_START -- use for indirectly called globals, w/ CFI type */
|
||||
#define SYM_TYPED_FUNC_START(name) \
|
||||
SYM_TYPED_START(name, SYM_L_GLOBAL, SYM_F_ALIGN) \
|
||||
|
||||
@@ -40,7 +40,7 @@ SYM_TYPED_FUNC_START(__memcpy)
|
||||
SYM_FUNC_END(__memcpy)
|
||||
EXPORT_SYMBOL(__memcpy)
|
||||
|
||||
SYM_FUNC_ALIAS(memcpy, __memcpy)
|
||||
SYM_FUNC_ALIAS_MEMFUNC(memcpy, __memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
|
||||
SYM_FUNC_START_LOCAL(memcpy_orig)
|
||||
|
||||
@@ -212,5 +212,5 @@ SYM_FUNC_START(__memmove)
|
||||
SYM_FUNC_END(__memmove)
|
||||
EXPORT_SYMBOL(__memmove)
|
||||
|
||||
SYM_FUNC_ALIAS(memmove, __memmove)
|
||||
SYM_FUNC_ALIAS_MEMFUNC(memmove, __memmove)
|
||||
EXPORT_SYMBOL(memmove)
|
||||
@@ -40,7 +40,7 @@ SYM_FUNC_START(__memset)
|
||||
SYM_FUNC_END(__memset)
|
||||
EXPORT_SYMBOL(__memset)
|
||||
|
||||
SYM_FUNC_ALIAS(memset, __memset)
|
||||
SYM_FUNC_ALIAS_MEMFUNC(memset, __memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
|
||||
SYM_FUNC_START_LOCAL(memset_orig)
|
||||
|
||||
Reference in new issue
Block a user