From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Thu, 20 May 2021 11:51:55 -0600 Subject: [PATCH u-boot v4 13/36] build: use thin archives instead of incremental linking In-Reply-To: <20210520112425.25166-14-marek.behun@nic.cz> References: <20210520112425.25166-1-marek.behun@nic.cz> <20210520112425.25166-14-marek.behun@nic.cz> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, 20 May 2021 at 05:25, 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 > --- > Makefile | 4 ++-- > arch/sandbox/config.mk | 10 +++++++--- > scripts/Makefile.build | 16 ++++++++-------- > scripts/Makefile.spl | 4 ++-- > 4 files changed, 19 insertions(+), 15 deletions(-) Reviewed-by: Simon Glass