On Mon, Jun 29, 2020 at 10:09:25AM -0400, Arvind Sankar wrote: > gcc puts the main function into .text.startup when compiled with -Os (or > -O2). This results in arch/x86/boot/main.c having a .text.startup > section which is currently not included explicitly in the linker script > setup.ld in the same directory. > > The BFD linker places this orphan section immediately after .text, so > this still works. However, LLD git, since [1], is choosing to place it > immediately after the .bstext section instead (this is the first code > section). This plays havoc with the section layout that setup.elf > requires to create the setup header, for eg on 64-bit:
Eep! I guess this was a linking case I missed for adding --orphan-handling=warn to my orphan handling series. (I will add that.) Reviewed-by: Kees Cook <[email protected]> -- Kees Cook

