aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2024-11-07 01:18:42 +0900
committerCatalin Marinas <catalin.marinas@arm.com>2024-11-07 11:33:06 +0000
commit340fd66c856651d8c1d29f392dd26ad674d2db0e (patch)
treeb814f907392e982bac216901cd8553da337f6686
parentarm64/ptdump: Test both PTE_TABLE_BIT and PTE_VALID for block mappings (diff)
downloadwireguard-linux-340fd66c856651d8c1d29f392dd26ad674d2db0e.tar.xz
wireguard-linux-340fd66c856651d8c1d29f392dd26ad674d2db0e.zip
arm64: fix .data.rel.ro size assertion when CONFIG_LTO_CLANG
Commit be2881824ae9 ("arm64/build: Assert for unwanted sections") introduced an assertion to ensure that the .data.rel.ro section does not exist. However, this check does not work when CONFIG_LTO_CLANG is enabled, because .data.rel.ro matches the .data.[0-9a-zA-Z_]* pattern in the DATA_MAIN macro. Move the ASSERT() above the RW_DATA() line. Fixes: be2881824ae9 ("arm64/build: Assert for unwanted sections") Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Acked-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20241106161843.189927-1-masahiroy@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to '')
-rw-r--r--arch/arm64/kernel/vmlinux.lds.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 58d89d997d05..f84c71f04d9e 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -287,6 +287,9 @@ SECTIONS
__initdata_end = .;
__init_end = .;
+ .data.rel.ro : { *(.data.rel.ro) }
+ ASSERT(SIZEOF(.data.rel.ro) == 0, "Unexpected RELRO detected!")
+
_data = .;
_sdata = .;
RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_ALIGN)
@@ -343,9 +346,6 @@ SECTIONS
*(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt)
}
ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
-
- .data.rel.ro : { *(.data.rel.ro) }
- ASSERT(SIZEOF(.data.rel.ro) == 0, "Unexpected RELRO detected!")
}
#include "image-vars.h"