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 0824FC433EF for ; Mon, 17 Jan 2022 15:35:14 +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:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=ZQFz1qTZvXpICu/lz5ZqaVVwO0OMrMmApxF7Y7EFNSs=; b=iqE422ECZsiUFd w3dSVwpOskrCcNUKDYAFaxhCdoXkscxR34xgH+j8lPBfX1WfXCv8UhCEBvm+RJ2oiKapAJksGbyc6 RK9UyUJ8iYCmd96kiGIU5lYWXMsfjt87x33Q3vrwfGHujXRoRGC6+Jx26pzBzZV4RY8K///fIhOfN mrjShIUX2i4HxXMKPtscixW2aEpGCd1Ofv9SrB5XI5ymAcsj9hilWr3+U6JmhnWtDOBj1rp0Xo/3l DD7DsJkFWr+SxW73mhbCzzxh3kERaTuQubx9Zv2wawUsKSJarQzt0Qv0L8c5VJvVYsTlksz6+yZYD OrX8gLtz8hTsDn8qTuaw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n9U1E-00FOqA-NY; Mon, 17 Jan 2022 15:34:04 +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 1n9U1B-00FOp6-19 for linux-arm-kernel@lists.infradead.org; Mon, 17 Jan 2022 15:34:02 +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 136001FB; Mon, 17 Jan 2022 07:34:00 -0800 (PST) Received: from donnerap.arm.com (donnerap.cambridge.arm.com [10.1.196.172]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4739E3F766; Mon, 17 Jan 2022 07:33:59 -0800 (PST) From: Andre Przywara To: Mark Rutland Cc: Jaxson Han , linux-arm-kernel@lists.infradead.org, Robin Murphy Subject: [PATCH v3] Makefile: Tell compiler to generate bare-metal code Date: Mon, 17 Jan 2022 15:33:48 +0000 Message-Id: <20220117153348.2513798-1-andre.przywara@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220117_073401_141467_D1EFF608 X-CRM114-Status: GOOD ( 10.32 ) 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 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, since they might pull in more code than we want, and might not run well in the boot-wrapper environment. Disable the stack protector, as this adds code that relies on userland: "If a guard check fails, an error message is printed and the program exits." (from the gcc manpage). Signed-off-by: Andre Przywara --- Hi, compared to [PATCH v2 3/9] this drops the more contentious options (for now, at least), and focuses on what's really needed. Including -fno-stack-protector, as the need for this showed up in the cleanup series already. Cheers, Andre Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.am b/Makefile.am index f941b07..581840e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -125,6 +125,8 @@ CHOSEN_NODE := chosen { \ CPPFLAGS += $(INITRD_FLAGS) CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/ CFLAGS += -Wall -fomit-frame-pointer +CFLAGS += -ffreestanding -nostdlib # this is not for userland +CFLAGS += -fno-stack-protector # no terminal to print CFLAGS += -ffunction-sections -fdata-sections CFLAGS += -fno-pic -fno-pie LDFLAGS += --gc-sections -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel