+ /*
+ * We keep init/exit bss sections here to have only one
+ * segment to load. Note that .bss.exit is also discarded
+ * at runtime for the same reason as above.
+ */
+ .exit.bss : {
+ *(.bss.exit)
+ }
This change would also require an audit of the bootloader or early
kernel initialization code (whichever handles zeroing of .bss space)
to make sure that it understands that the kernel will now have an
extra block of memory that needs to be cleared. Perhaps nothing
needs to be done if the code already handled the general case of
loading an ELF binary with some sections that have an in-memory
size bigger than the on-disk size. But worth looking at in case
the code makes an assumption about what needs to be zeroed.
-Tony