Thread (1 message) 1 message, 1 author, 2019-08-27

Re: kernel/bpf/core.o: warning: objtool: ___bpf_prog_run.cold()+0x7: call without frame pointer save/setup

From: Josh Poimboeuf <hidden>
Date: 2019-08-27 14:58:50
Also in: bpf, lkml

On Tue, Aug 27, 2019 at 10:43:27AM +0800, He Zhe wrote:

On 8/26/19 11:18 PM, Josh Poimboeuf wrote:
quoted
On Mon, Aug 26, 2019 at 10:42:53PM +0800, He Zhe wrote:
quoted
Hi All,

Since 3193c0836f20 ("bpf: Disable GCC -fgcse optimization for ___bpf_prog_run()"),
We have got the following warning,
kernel/bpf/core.o: warning: objtool: ___bpf_prog_run.cold()+0x7: call without frame pointer save/setup

If reverting the above commit, we will get the following warning,
kernel/bpf/core.o: warning: objtool: ___bpf_prog_run()+0x8b9: sibling call from callable instruction with modified stack frame
if CONFIG_RETPOLINE=n, and no warning if CONFIG_RETPOLINE=y
Can you please share the following:

- core.o file
Attached.
quoted
The following would also be helpful for me to try to recreate it:

- config file
- compiler version
- kernel version
I pasted them in the other reply.
Thanks.  I was able to recreate.  I reduced it to:

void a(b);
__attribute__((optimize(""))) c(void) { a(); }

Apparently '__attribute__((optimize()))' is overwriting GCC cmdline
flags, including -fno-omit-frame-pointer.  I had assumed it would append
instead of replace.

I'm guessing this is a GCC "feature" instead of a bug.  I'll need to
follow up.

-- 
Josh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help