objtool: Allow STT_NOTYPE -> STT_FUNC+0 sibling-calls
authorPeter Zijlstra <peterz@infradead.org>
Mon, 11 Jul 2022 09:49:50 +0000 (11:49 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 17 Oct 2022 14:41:09 +0000 (16:41 +0200)
commit5a9c361a416fc3a3301e859ff09587cc1b933eb8
treecc1572f643b40cec4b71b30c044b4fe82e9d9859
parentdbcdbdfdf137b49144204571f1a5e5dc01b8aaad
objtool: Allow STT_NOTYPE -> STT_FUNC+0 sibling-calls

Teach objtool about STT_NOTYPE -> STT_FUNC+0 sibling calls. Doing do
allows slightly simpler .S files.

There is a slight complication in that we specifically do not want to
allow sibling calls from symbol holes (previously covered by STT_WEAK
symbols) -- such things exist where a weak function has a .cold
subfunction for example.

Additionally, STT_NOTYPE tail-calls are allowed to happen with a
modified stack frame, they don't need to obey the normal rules after
all.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
tools/objtool/check.c