Skip to contentSkip to conversation

riscv: vdso: fix section overlapping under some conditions

PATCH Applied Jisheng Zhang 2 participants 3 messages Nov 2, 2022 – Nov 30, 2022 RISC-V

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 riscv: vdso: fix section overlapping under some conditions

lkp reported a build error, I tried the config and can reproduce build error as below:

VDSOLD arch/riscv/kernel/vdso/vdso.so.dbg
ld.lld: error: section .note file range overlaps with .text

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.note range is [0x7C8, 0x803]
.text range is [0x800, 0x1993]

ld.lld: error: section .text file range overlaps with .dynamic

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.text range is [0x800, 0x1993]
.dynamic range is [0x808, 0x937]

ld.lld: error: section .note virtual address range overlaps with .text

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.note range is [0x7C8, 0x803]
.text range is [0x800, 0x1993]

Fix it by setting DISABLE_BRANCH_PROFILING which will disable branch tracing for vdso, thus avoid useless _ftrace_annotated_branch section and _ftrace_branch section. Although we can also fix it by removing the hardcoded .text begin address, but I think that's another story and should be put into another patch.

---

Since v1:
- fix the issue by setting DISABLE_BRANCH_PROFILING

 arch/riscv/kernel/vdso/Makefile | 1 +
 1 file changed, 1 insertion(+)
arch/riscv/kernel/vdso/Makefile +1 -0
index f2e065671e4d..d6092ff678fd 100644
@@ -17,6 +17,7 @@ vdso-syms += flush_icache
 obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
 
 ccflags-y := -fno-stack-protector
+ccflags-y += -DDISABLE_BRANCH_PROFILING
 
 ifneq ($(c-gettimeofday-y),)
   CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
Signature · 7 lines
2.37.2


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
#1 lore raw
Quoted 22 lines · Jisheng Zhang

lkp reported a build error, I tried the config and can reproduce build error as below:

VDSOLD arch/riscv/kernel/vdso/vdso.so.dbg
ld.lld: error: section .note file range overlaps with .text

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.note range is [0x7C8, 0x803]
.text range is [0x800, 0x1993]

ld.lld: error: section .text file range overlaps with .dynamic

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.text range is [0x800, 0x1993]
.dynamic range is [0x808, 0x937]

ld.lld: error: section .note virtual address range overlaps with .text

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.note range is [0x7C8, 0x803]
.text range is [0x800, 0x1993]

Fix it by setting DISABLE_BRANCH_PROFILING which will disable branch tracing for vdso, thus avoid useless _ftrace_annotated_branch section and _ftrace_branch section. Although we can also fix it by removing the hardcoded .text begin address, but I think that's another story and should be put into another patch.

Quoted 3 lines

Gentle ping? This fix is still missing in mainline.

Quoted 28 lines

---

Since v1:
- fix the issue by setting DISABLE_BRANCH_PROFILING

 arch/riscv/kernel/vdso/Makefile | 1 +
 1 file changed, 1 insertion(+)
arch/riscv/kernel/vdso/Makefile +1 -0
index f2e065671e4d..d6092ff678fd 100644
@@ -17,6 +17,7 @@ vdso-syms += flush_icache
 obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
 
 ccflags-y := -fno-stack-protector
+ccflags-y += -DDISABLE_BRANCH_PROFILING
 
 ifneq ($(c-gettimeofday-y),)
   CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
Signature · 7 lines
2.37.2


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv

_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv

#2 lore raw
In reply to Jisheng Zhang
This patch was applied to riscv/linux.git (fixes) by Palmer Dabbelt <[email protected]>:

Hello:

This patch was applied to riscv/linux.git (fixes)
by Palmer Dabbelt <[email protected]>:

Quoted 9 lines · On Thu, 3 Nov 2022 01:02:54 +0800 you wrote:

lkp reported a build error, I tried the config and can reproduce build error as below:

VDSOLD arch/riscv/kernel/vdso/vdso.so.dbg
ld.lld: error: section .note file range overlaps with .text

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

.note range is [0x7C8, 0x803]
.text range is [0x800, 0x1993]

[...]

Here is the summary with links:
- [v2] riscv: vdso: fix section overlapping under some conditions

    https://git.kernel.org/riscv/c/74f6bb55c834

You are awesome, thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html