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?

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to