public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [FYI] objtool: .export_symbol…: data relocation to !ENDBR: stpcpy
@ 2024-08-01 15:28 Sebastian Andrzej Siewior
  2024-08-02  9:35 ` Peter Zijlstra
  0 siblings, 1 reply; 2+ messages in thread
From: Sebastian Andrzej Siewior @ 2024-08-01 15:28 UTC (permalink / raw)
  To: x86, linux-kernel
  Cc: Borislav Petkov, Dave Hansen, Ingo Molnar, Josh Poimboeuf,
	Peter Zijlstra, Thomas Gleixner

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

Sebastian

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [FYI] objtool: .export_symbol…: data relocation to !ENDBR: stpcpy
  2024-08-01 15:28 [FYI] objtool: .export_symbol…: data relocation to !ENDBR: stpcpy Sebastian Andrzej Siewior
@ 2024-08-02  9:35 ` Peter Zijlstra
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Zijlstra @ 2024-08-02  9:35 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: x86, linux-kernel, Borislav Petkov, Dave Hansen, Ingo Molnar,
	Josh Poimboeuf, Thomas Gleixner

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!

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-02  9:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-01 15:28 [FYI] objtool: .export_symbol…: data relocation to !ENDBR: stpcpy Sebastian Andrzej Siewior
2024-08-02  9:35 ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox