From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D2A96C433EF for ; Fri, 7 Jan 2022 13:55:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BEIKWxTqP2PhTSH1ren+1XE1iUEBxRuECy/2CY60yDc=; b=0x+R53bIJTslNp PANgGjKMO/fMC0ywjklqKTSoFwySeNYTHqnGWrZQSPobON68Op+12rDX6RdcxXI+LOWvT1KdA1OFW u/DzLNaIXvY2KFaIwU7MJ3xSoLIaZ1R8+5SqOjtM5kvtcCnye84k8AOUHFbq/Ad9A2MwbfK5F/+++ Sz8vZDAkr4XoEXBMkzHNV8kfM+qS8W28kv53bK8WcSz+ve0I7roEK1rrU03o07p1E3e/sLfAEn7VK NCKIosNQPvVy08owQildQivDOQ4a3KKhSA1mpgOaIn1kWAqDe9HyeiMM5NJKyIwI2i2lHIkmBZic6 r3LH9d+locUMBWsiJhcg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5pgt-0044Ls-LI; Fri, 07 Jan 2022 13:53:59 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5pgo-0044Kr-RV for linux-arm-kernel@lists.infradead.org; Fri, 07 Jan 2022 13:53:56 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F34E013A1; Fri, 7 Jan 2022 05:53:53 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.7.134]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 47C073F774; Fri, 7 Jan 2022 05:53:53 -0800 (PST) Date: Fri, 7 Jan 2022 13:53:50 +0000 From: Mark Rutland To: Andre Przywara Cc: linux-arm-kernel@lists.infradead.org, Jaxson Han Subject: Re: [boot-wrapper PATCH v2 3/9] Makefile: Tell compiler to generate bare-metal code Message-ID: References: <20211222181607.1203191-1-andre.przywara@arm.com> <20211222181607.1203191-4-andre.przywara@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20211222181607.1203191-4-andre.przywara@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220107_055354_959315_EAAC9B95 X-CRM114-Status: GOOD ( 18.87 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Dec 22, 2021 at 06:16:01PM +0000, Andre Przywara wrote: > Our GCC invocation does not provide many parameters, which lets the > toolchain fill in its own default setup. > In case of a native build or when using a full-featured cross-compiler, > this probably means Linux userland, which is not what we want for a > bare-metal application like boot-wrapper. > > Tell the compiler to forget about those standard settings, and only use > what we explicitly ask for. In particular that means to not use toolchain > provided libraries and headers, since they might pull in more code than > we want, and might not run well in the boot-wrapper environment. > > This also enables optimisation, since it produces much better code and > tends to avoid problems due to missing inlining, for instance. I'd appreciate if we could add some explanation for these (just in the commit message is fine), as e.g. it's not clear to me why -fno-toplevel-reorder is necessary. Thanks, Mark. > > Signed-off-by: Andre Przywara > --- > Makefile.am | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/Makefile.am b/Makefile.am > index 3e970a3..d9ad6d1 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -124,9 +124,14 @@ CHOSEN_NODE := chosen { \ > > CPPFLAGS += $(INITRD_FLAGS) > CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/ > -CFLAGS += -Wall -fomit-frame-pointer > +CFLAGS += -Wall -Wstrict-prototypes -fomit-frame-pointer > +CFLAGS += -ffreestanding -nostdinc -nostdlib > +CFLAGS += -fno-common -fno-strict-aliasing -fno-stack-protector > +CFLAGS += -fno-toplevel-reorder > +CFLAGS += -fno-unwind-tables -fno-asynchronous-unwind-tables > CFLAGS += -ffunction-sections -fdata-sections > CFLAGS += -fno-pic -fno-pie > +CFLAGS += -Os > LDFLAGS += --gc-sections > > OBJ := $(addprefix $(ARCH_SRC),$(ARCH_OBJ)) $(addprefix $(COMMON_SRC),$(COMMON_OBJ)) > -- > 2.25.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel