mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 12:00:22 +09:00
ANDROID: module: apply special LTO treatment to .text even if CFI is disabled
We currently only emit directives for handling the .text section into the module linker script if both LTO and CFI are enabled, while for other sections, we do this even if CFI is not enabled. This is inconsistent at best, but as it also interferes with the assumption in the fips140.ko module that the .text._start and .text._end input sections are placed at the very start and end of the .text section, which currently can only be relied upon if CFI is enabled. So rearrange the #ifdef so that it only covers the .text.__cfi_check input section. Note that aligning to page size is likely to be redundant in any case, given that the .text section is laid out first, and module allocations are page aligned to begin with, so making that part unconditional is unlikely to make an observeable difference in the output. Bug: 153614920 Bug: 188620248 Fixes:6be141eb36("ANDROID: crypto: fips140 - perform load time integrity check") Change-Id: I3f9ed0ae8fa8fe5693c8d2964566cbb42c101aa7 Signed-off-by: Ard Biesheuvel <ardb@google.com> (cherry picked from commit6ae8277450)
This commit is contained in:
committed by
Eric Biggers
parent
52b70d491b
commit
e8d56bd78b
@@ -56,14 +56,16 @@ SECTIONS {
|
||||
*(.rodata.._end)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CFI_CLANG
|
||||
/*
|
||||
* With CFI_CLANG, ensure __cfi_check is at the beginning of the
|
||||
* .text section, and that the section is aligned to page size.
|
||||
*/
|
||||
.text : ALIGN(PAGE_SIZE) {
|
||||
*(.text.._start)
|
||||
#ifdef CONFIG_CFI_CLANG
|
||||
/*
|
||||
* With CFI_CLANG, ensure __cfi_check is at the beginning of
|
||||
* the .text section, and that the section is aligned to page
|
||||
* size.
|
||||
*/
|
||||
*(.text.__cfi_check)
|
||||
#endif
|
||||
*(.text .text.[0-9a-zA-Z_]*)
|
||||
__cfi_jt_start = .;
|
||||
*(.text..L.cfi.jumptable .text..L.cfi.jumptable.*)
|
||||
@@ -71,7 +73,6 @@ SECTIONS {
|
||||
*(.text.._end)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/* bring in arch-specific sections */
|
||||
|
||||
Reference in New Issue
Block a user