On Thu, May 20, 2021 at 01:24:02PM +0200, Marek Behún wrote: > Currently we use incremental linking (ld -r) to link several object > files from one directory into one built-in.o object file containing the > linked code from that directory (and its subdirectories). > > Linux has, some time ago, moved to thin archives instead. > > Thin archives are archives (.a) that do not really contain the object > files, only references to them. > > Using thin archives instead of incremental linking > - saves disk space > - apparently works better with dead code elimination > - makes things easier for LTO > > The third point is the important one for us. With incremental linking > there are several options how to do LTO, and that would unnecessarily > complicate things. > > We have to use the --whole-archive/--no-whole-archive linking option > instead of --start-group/--end-group, otherwise linking may fail because > of unresolved symbols, or the resulting binary will be unusable. > > We also need to use the P flag for ar, otherwise final linking may fail. > > Signed-off-by: Marek Behún > Reviewed-by: Simon Glass Applied to u-boot/master, thanks! -- Tom