riscv: do not select MODULE_SECTIONS by default
Since commit aad15bc85c
("riscv: Change code model of module to
medany to improve data accessing"), kernel modules have not been built
with -fPIC, so they wouldn't have R_RISCV_GOT_HI20 or R_RISCV_CALL_PLT
relocations, and handling of those relocations is unnecessary.
If RELOCATABLE=y, kernel modules will be built with -fPIE, which would
reintroduce said relocations, so only select MODULE_SECTIONS when
RELOCATABLE.
Signed-off-by: Qingfang Deng <qingfang.deng@siflower.com.cn>
Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20240511015725.1162-1-dqfext@gmail.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
07501c4907
commit
2aff5f955b
@ -176,7 +176,6 @@ config RISCV
|
|||||||
select LOCK_MM_AND_FIND_VMA
|
select LOCK_MM_AND_FIND_VMA
|
||||||
select MMU_GATHER_RCU_TABLE_FREE if SMP && MMU
|
select MMU_GATHER_RCU_TABLE_FREE if SMP && MMU
|
||||||
select MODULES_USE_ELF_RELA if MODULES
|
select MODULES_USE_ELF_RELA if MODULES
|
||||||
select MODULE_SECTIONS if MODULES
|
|
||||||
select OF
|
select OF
|
||||||
select OF_EARLY_FLATTREE
|
select OF_EARLY_FLATTREE
|
||||||
select OF_IRQ
|
select OF_IRQ
|
||||||
@ -867,6 +866,7 @@ config PARAVIRT_TIME_ACCOUNTING
|
|||||||
config RELOCATABLE
|
config RELOCATABLE
|
||||||
bool "Build a relocatable kernel"
|
bool "Build a relocatable kernel"
|
||||||
depends on MMU && 64BIT && !XIP_KERNEL
|
depends on MMU && 64BIT && !XIP_KERNEL
|
||||||
|
select MODULE_SECTIONS if MODULES
|
||||||
help
|
help
|
||||||
This builds a kernel as a Position Independent Executable (PIE),
|
This builds a kernel as a Position Independent Executable (PIE),
|
||||||
which retains all relocation metadata required to relocate the
|
which retains all relocation metadata required to relocate the
|
||||||
|
Loading…
Reference in New Issue
Block a user