FWIW, I proposed privately two patch: one to merge gcc version string
in a single one, ~100kB on pre-modular kernel, plus all space saved in
userland and another one to avoid static allocation of data at build
time (128kB). The first one was more a proof of concept than anything
else, might need some tweak to get integrated. For the latter, I'm
still waiting for an ack of the original code author.
I also have code to factor redundant code used in PCI attachment
(should be feasible for other bus too), don't remember the amount of
data saved, but it should be ~50 to 60 kB. Nobody seemed to be
interested by it. PCI driver duplicate a lot of description string
that should be in pcidevs, got some code on this too,
The question about fat driver firmware has already been discussed many
time. I started to look to extend firmload(9) to load firmware from
either disk or kernel section referenced through linkset. It could
allow a user to include only the needed driver's firmware into the
kernel without compilation. I have some code, not more, not sure if
someone is interested.