Re: [FYI] objtool: .export_symbol…: data relocation to !ENDBR: stpcpy
From: Peter Zijlstra
Date: Fri Aug 02 2024 - 05:36:18 EST
On Thu, Aug 01, 2024 at 05:28:36PM +0200, Sebastian Andrzej Siewior wrote:
> Hi,
>
> defconfig on x86-64 with gcc-14 I get this:
> | vmlinux.o: warning: objtool: .export_symbol+0x26980: data relocation to !ENDBR: stpcpy+0x0
>
> objdump ->
>
> | 0000000000000110 <stpcpy>:
> | 110: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1)
> | 117: 00 00 00 00
> | 11b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
> | 120: f3 0f 1e fa endbr64
>
> okay, no endbr64 on entry label.
>
> | $ make lib/string.s
> ->
> | .type stpcpy, @function
> | stpcpy:
> | .p2align 5
> | endbr64
> | .L30:
> | # lib/string.c:193: while ((*dest++ = *src++) != '\0')
> | movzbl (%rsi), %eax # MEM[(const char *)src_8 + -1B], _1
>
> an alignment request after the function label before endbr64 which gets
> expanded into NOP_11+NOP_5.
> I don't see this with gcc-13.
> Reported as https://gcc.gnu.org/PR116174
Fun, thanks for tracking that down!