mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
linux/export: Fix alignment for 64-bit ksymtab entries
[ Upstream commitf6847807c2] An alignment of 4 bytes is wrong for 64-bit platforms which don't define CONFIG_HAVE_ARCH_PREL32_RELOCATIONS (which then store 64-bit pointers). Fix their alignment to 8 bytes. Fixes:ddb5cdbafa("kbuild: generate KSYMTAB entries by modpost") Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
7844d7d8d8
commit
466e9af155
|
|
@ -16,10 +16,13 @@
|
|||
* and eliminates the need for absolute relocations that require runtime
|
||||
* processing on relocatable kernels.
|
||||
*/
|
||||
#define __KSYM_ALIGN ".balign 4"
|
||||
#define __KSYM_REF(sym) ".long " #sym "- ."
|
||||
#elif defined(CONFIG_64BIT)
|
||||
#define __KSYM_ALIGN ".balign 8"
|
||||
#define __KSYM_REF(sym) ".quad " #sym
|
||||
#else
|
||||
#define __KSYM_ALIGN ".balign 4"
|
||||
#define __KSYM_REF(sym) ".long " #sym
|
||||
#endif
|
||||
|
||||
|
|
@ -42,7 +45,7 @@
|
|||
" .asciz \"" ns "\"" "\n" \
|
||||
" .previous" "\n" \
|
||||
" .section \"___ksymtab" sec "+" #name "\", \"a\"" "\n" \
|
||||
" .balign 4" "\n" \
|
||||
__KSYM_ALIGN "\n" \
|
||||
"__ksymtab_" #name ":" "\n" \
|
||||
__KSYM_REF(sym) "\n" \
|
||||
__KSYM_REF(__kstrtab_ ##name) "\n" \
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user