[coreboot] [PATCH]Include headers instead of sources in romstage, part 1/many

Stefan Reinauer stepan at coresystems.de
Sat May 8 18:22:54 CEST 2010


On 5/8/10 5:56 PM, Kevin O'Connor wrote:
> I think coreboot should try to avoid using .a files.
>
> The latest version of gcc (v4.5) contains the -flto feature.  This can
> provide significant benefits to coreboot code generation because it
> allows the entire romstage (and ramstage) to be analyzed as a whole.
> The resulting binaries are significantly smaller because unused code
> can be eliminated and more functions can be inlined.  Unfortunately,
> the standard linker can't handle -flto with .a files.
>   
The reason we used .a files to begin with was because the linker can
smartly drop unused objects files "linked" into a static library,
significantly decreasing code size.

Going to -flto introduces one code size reduction mechanism by rendering
another one unusable. That's only half-baked, especially since many
optimizations making -flto useful are still known broken in gcc 4.5. We
should keep this in mind. Last time I checked -flto on a coreboot image
it would not gain more than 1-2kb on a 1MB image. Didn't benchmark the
4.5 release yet though.

Being curious: Will gold cope with .a files and flto?




More information about the coreboot mailing list