Some objects need to be placed in this vmlinux header. You are directly limited to vmlinux without using the inline .a. A typical use case is an object indicating an entry point. arch / $ (SRCARCH) / Makefile should mark these objects as head-y.