On Wed, Oct 21, 2020 at 10:56:06AM +0200, Peter Zijlstra wrote: > The "falls through to next function" seems to be limited to things like: > > warning: objtool: setup_vq() falls through to next function setup_vq.cold() > warning: objtool: e1000_xmit_frame() falls through to next function > e1000_xmit_frame.cold() > > So something's weird with the .cold thing on vmlinux.o runs.
Shiny, check this: $ nm defconfig-build/vmlinux.o | grep setup_vq 00000000004d33a0 t setup_vq 00000000004d4c20 t setup_vq 000000000001edcc t setup_vq.cold 000000000001ee31 t setup_vq.cold 00000000004d3dc0 t vp_setup_vq $ nm defconfig-build/vmlinux.o | grep e1000_xmit_frame 0000000000741490 t e1000_xmit_frame 0000000000763620 t e1000_xmit_frame 000000000002f579 t e1000_xmit_frame.cold 0000000000032b6e t e1000_xmit_frame.cold $ nm defconfig-build/vmlinux.o | grep e1000_diag_test 000000000074c220 t e1000_diag_test 000000000075eb70 t e1000_diag_test 000000000002fc2a t e1000_diag_test.cold 0000000000030880 t e1000_diag_test.cold I guess objtool goes sideways when there's multiple symbols with the same name in a single object file. This obvously never happens on single TU .o files. Not sure what to do about that.