From patchwork Fri Oct 20 11:42:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Neal Frager X-Patchwork-Id: 1852494 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SBjQH4sPCz23jM for ; Fri, 20 Oct 2023 22:43:19 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id A7BAD704DC; Fri, 20 Oct 2023 11:43:15 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org A7BAD704DC X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kB1wINDmR0V7; Fri, 20 Oct 2023 11:43:14 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 71B077049C; Fri, 20 Oct 2023 11:43:12 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 71B077049C X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id A420F1BF3A9 for ; Fri, 20 Oct 2023 11:43:05 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 6CF8941467 for ; Fri, 20 Oct 2023 11:43:05 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6CF8941467 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id imkOv2NdnrDi for ; Fri, 20 Oct 2023 11:43:03 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2060a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5b::60a]) by smtp2.osuosl.org (Postfix) with ESMTPS id 8CA00402A7 for ; Fri, 20 Oct 2023 11:43:03 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 8CA00402A7 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eeIlXNNgr0JiJkfPNOpJafN6aCnjqLSUoF/Gb+0eUTXjiikkOebUfIw/BlDGE2PPzhASFctgILpZUMIFHf+hPTO5AJiYBqPUJmDMq6oSqpM0X8PIhS1CyDAB3/HYg+hUWD7oBMkl2gPkcK5gJ9bRAq/13JGBqa/tIUyy7blsev1nAlUt24l9myDAC25wbwCzigbfyvIC6Lz5SMXrlEOO8BmxKSBUenJ9Jjfhf4BTyGF5m+66p/BflTXk7G9fDsNaJu/Zliv7GNSndFv8XtMLVwKSOBsfdcCQmHLZ0ysmctc0P3HeK+J9Ixb4FkJNsLUyQF5b5B9jBYJKTxzdCbhn/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EEU0dBJY9RbHdboIiNL/syr6T1Opu4Zofi0Igaib3N4=; b=lLuwVCtpC7T7SOH3wucBsHD2j4+W3qNiojzkFkbFBshKTfUBCXiFUOL4r/c+nGWtbDbyDwG9E0EjrRAyMZPdkaGAw/ivEO2/OxtvMZfKFWrTNGh4JJoeTtxrycluPNJ06J3HIwA6zmWB05Y/hWOoJCbthqRF8qNg5tNjpU/HSjpniqedm4fAS+O4LDqVRk3PsIqAEG3VQg5VhzxkqKUnluA9l2k8fyObDnDT4wPjfHuk04GVA+Si8fcX/MvbbQsGBlqvEGx1RoaacH3HSebCSsp6P/DAldsqr03ikS4yTTidaHaLARuktaY08Nfu3jkA7KF8BVlavuBjGBJlfJx8+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=buildroot.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none Received: from SA9PR11CA0030.namprd11.prod.outlook.com (2603:10b6:806:6e::35) by DM6PR12MB4386.namprd12.prod.outlook.com (2603:10b6:5:28f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.25; Fri, 20 Oct 2023 11:43:00 +0000 Received: from SN1PEPF0002636E.namprd02.prod.outlook.com (2603:10b6:806:6e:cafe::e) by SA9PR11CA0030.outlook.office365.com (2603:10b6:806:6e::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26 via Frontend Transport; Fri, 20 Oct 2023 11:43:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF0002636E.mail.protection.outlook.com (10.167.241.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6907.20 via Frontend Transport; Fri, 20 Oct 2023 11:42:59 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 20 Oct 2023 06:42:59 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 20 Oct 2023 06:42:58 -0500 Received: from xirengwts09.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.27 via Frontend Transport; Fri, 20 Oct 2023 06:42:57 -0500 To: Date: Fri, 20 Oct 2023 12:42:28 +0100 Message-ID: <20231020114236.4129636-2-neal.frager@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231020114236.4129636-1-neal.frager@amd.com> References: <20231020114236.4129636-1-neal.frager@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002636E:EE_|DM6PR12MB4386:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f165870-39e0-4178-6b64-08dbd161b5be X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RaFMF34AEBsya9Fr3CO7QmS2dH977IzRzNqE0LbQNVsSB5e3ARL7tQIlMoEKoGwmEXD65MOsSU8l3CKSSjmFJSq5xC5Gan/+nSNHNuW+34Cp0HWkvVu9MDL1hdKJZIGQwIqhs8eRjRL315Ef9LKXiRoyWysC7c9cZ5J9/gU3M1Q8NJNo5/jiUCUYJ7G9v12KBGbXTqPGVm8BI2tW9zJaw5syS6hSPdp1S9vVKSoY1JXl/CHH8KN08Ufv8AyhLEFA/m8OVLO6MKKcefWXEixGApIZ8/UqCWSVdXjQu8jBxvUGLQBN3/IUUBGHajlQfXb+CTIyKKKREvdwwsLwXkf4881Q/FBv/b8ATRgpGEFWY4nk/c70OrbUazRXqrg7VlqoT1nQ/VNffWVGof3jrqwvWPTjEgyfVwN48klWoywPUDRqbkyMTRG4hOPEwYkQptPzrvfCCJ1UO51Yw5UDTJlvcDdMHtk92sj8mfYhQ4POIxbHtHhg7y/S4uj6b7hmzmpoLvO6KcxlXSto7aIVJ14vVxwA/MNmjWNbiKqSYRriqFbWaGKBnEHl6gtmX2EMgjItC23fcGlROy+BoMzLObHwBzh4oaaT1V+xOMm5r2Nz+OW6KLAlBm9/5odXdb0S0uWQXF7y4ZJ8c3C/5nrd2J8/iAfz92aZs3VLGDl4H/EqXf6GnQV1tctpXHM7WP7cSK0b48lopemCvP+G5LoXGVz70t39v4lv81BBEFpw+FVf6hPy1+bHCwnkuMA20wuIlPFC2DnIPTvjoE92ao9UyrwRtIAARB7tfHrJC4rq2nxBD9w= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(4636009)(346002)(396003)(136003)(376002)(39860400002)(230922051799003)(186009)(82310400011)(1800799009)(64100799003)(451199024)(40470700004)(46966006)(36840700001)(40480700001)(40460700003)(86362001)(47076005)(2906002)(4326008)(5660300002)(41300700001)(81166007)(356005)(82740400003)(336012)(26005)(426003)(8676002)(36860700001)(1076003)(2616005)(36756003)(44832011)(8936002)(478600001)(966005)(316002)(70206006)(70586007)(6666004)(6916009)(54906003)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2023 11:42:59.3620 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4f165870-39e0-4178-6b64-08dbd161b5be X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002636E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4386 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EEU0dBJY9RbHdboIiNL/syr6T1Opu4Zofi0Igaib3N4=; b=k/WumnVzAPJ38qK4+Nj1ux2yzXz2oPb+0uKJQUckm71llRaz3eBRhFD85SZI0yh4/tjZhclQHrl/F9qKV/GrjNAQlYOBt3Z3YXsDZTLbrmpz5aFPi7YRG7U5ldS0cBGwiYEF23uf+UWsjILuWOwUOmW0EW6rmJQx8Q96Sxhqw0k= X-Mailman-Original-Authentication-Results: smtp2.osuosl.org; dkim=pass (1024-bit key, unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=k/WumnVz Subject: [Buildroot] [PATCH v6 02/10] package/gcc-bare-metal: new package X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Neal Frager via buildroot From: Neal Frager Reply-To: Neal Frager Cc: ibai.erkiaga-elorza@amd.com, luca.ceresoli@bootlin.com, thomas.petazzoni@bootlin.com, Neal Frager , michal.simek@amd.com Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" This patch adds a new package for building gcc for a bare-metal toolchain. The cpu architecture is defined by a toolchain-bare-metal virtual package. While any cpu architecture could be used, the default configuration will be a Xilinx microblaze little endian architecture, so that buildroot will be able to build the microblaze firmware applications for zynqmp and versal. Signed-off-by: Ibai Erkiaga Signed-off-by: Neal Frager Tested-by: Luca Ceresoli Reviewed-by: Luca Ceresoli --- V1->V2: - removed default enable to be replaced with toolchain select config V2->V3: - no changes V3->V4: - split tar instruction into multiple lines - replaced unnecessary =? with = for assignments - changed xlnx-rel-v2023.1.tar.gz hash to sha256 - improved menuconfig help comment V4->V5: - moved to upstream gcc without any xilinx patches - reduced all lines to <80 chars - added license files V5->V6: - migrated to toolchain-bare-metal-buildroot --- DEVELOPERS | 2 + package/gcc-bare-metal/13.2.0 | 1 + package/gcc-bare-metal/Config.in.host | 12 ++++ package/gcc-bare-metal/gcc-bare-metal.hash | 9 +++ package/gcc-bare-metal/gcc-bare-metal.mk | 68 ++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 120000 package/gcc-bare-metal/13.2.0 create mode 100644 package/gcc-bare-metal/Config.in.host create mode 100644 package/gcc-bare-metal/gcc-bare-metal.hash create mode 100644 package/gcc-bare-metal/gcc-bare-metal.mk diff --git a/DEVELOPERS b/DEVELOPERS index 9c2b664426..922a74e426 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1368,6 +1368,7 @@ F: package/python-rpi-gpio/ N: Ibai Erkiaga F: package/binutils-bare-metal/ +F: package/gcc-bare-metal/ N: Ignacy Gawędzki F: package/angularjs/ @@ -2202,6 +2203,7 @@ F: configs/zynqmp_zcu102_defconfig F: configs/zynqmp_zcu106_defconfig F: package/binutils-bare-metal/ F: package/bootgen/ +F: package/gcc-bare-metal/ F: package/versal-firmware/ N: Nicola Di Lieto diff --git a/package/gcc-bare-metal/13.2.0 b/package/gcc-bare-metal/13.2.0 new file mode 120000 index 0000000000..9ae96a8a45 --- /dev/null +++ b/package/gcc-bare-metal/13.2.0 @@ -0,0 +1 @@ +../gcc/13.2.0 \ No newline at end of file diff --git a/package/gcc-bare-metal/Config.in.host b/package/gcc-bare-metal/Config.in.host new file mode 100644 index 0000000000..ca7735340c --- /dev/null +++ b/package/gcc-bare-metal/Config.in.host @@ -0,0 +1,12 @@ +config BR2_PACKAGE_HOST_GCC_BARE_METAL + bool "host gcc-bare-metal" + help + Build GCC for a bare-metal toolchain + +if BR2_PACKAGE_HOST_GCC_BARE_METAL + +config BR2_PACKAGE_HOST_GCC_BARE_METAL_VERSION + string + default "13.2.0" + +endif #BR2_PACKAGE_HOST_GCC_BARE_METAL diff --git a/package/gcc-bare-metal/gcc-bare-metal.hash b/package/gcc-bare-metal/gcc-bare-metal.hash new file mode 100644 index 0000000000..5c5c28fa7e --- /dev/null +++ b/package/gcc-bare-metal/gcc-bare-metal.hash @@ -0,0 +1,9 @@ +# From https://gcc.gnu.org/pub/gcc/releases/gcc-13.2.0/sha512.sum +sha512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 gcc-13.2.0.tar.xz + +# Locally calculated +sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING3 +sha256 a853c2ffec17057872340eee242ae4d96cbf2b520ae27d903e1b2fef1a5f9d1c COPYING3.LIB +sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB +sha256 9d6b43ce4d8de0c878bf16b54d8e7a10d9bd42b75178153e3af6a815bdc90f74 COPYING.RUNTIME diff --git a/package/gcc-bare-metal/gcc-bare-metal.mk b/package/gcc-bare-metal/gcc-bare-metal.mk new file mode 100644 index 0000000000..fe6f931008 --- /dev/null +++ b/package/gcc-bare-metal/gcc-bare-metal.mk @@ -0,0 +1,68 @@ +################################################################################ +# +# gcc-bare-metal +# +################################################################################ + +HOST_GCC_BARE_METAL_VERSION = \ + $(call qstrip,$(BR2_PACKAGE_HOST_GCC_BARE_METAL_VERSION)) +ifeq ($(HOST_GCC_BARE_METAL_VERSION),) +HOST_GCC_BARE_METAL_VERSION = 13.2.0 +endif + +HOST_GCC_BARE_METAL_SITE = \ + https://ftp.gnu.org/gnu/gcc/gcc-$(HOST_GCC_BARE_METAL_VERSION) +HOST_GCC_BARE_METAL_SOURCE = gcc-$(HOST_GCC_BARE_METAL_VERSION).tar.xz + +HOST_GCC_BARE_METAL_LICENSE = GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0 +HOST_GCC_BARE_METAL_LICENSE_FILES = COPYING COPYING3 COPYING.LIB COPYING3.LIB + +HOST_GCC_BARE_METAL_DEPENDENCIES = \ + host-binutils-bare-metal \ + host-gmp \ + host-mpc \ + host-mpfr \ + host-isl + +# gcc doesn't support in-tree build, so we create a 'build' +# subdirectory in the gcc sources, and build from there. +define GCC_BARE_METAL_CONFIGURE_SYMLINK + mkdir -p $(@D)/build + ln -sf ../configure $(@D)/build/configure +endef + +HOST_GCC_BARE_METAL_PRE_CONFIGURE_HOOKS += GCC_BARE_METAL_CONFIGURE_SYMLINK +HOST_GCC_BARE_METAL_SUBDIR = build + +HOST_GCC_BARE_METAL_MAKE_OPTS = \ + $(HOST_GCC_COMMON_MAKE_OPTS) \ + all-gcc \ + all-target-libgcc + +HOST_GCC_BARE_METAL_INSTALL_OPTS = install-gcc install-target-libgcc + +GCC_BARE_METAL_ARCH = \ + $(call qstrip,$(BR2_PACKAGE_HOST_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH)) + +HOST_GCC_BARE_METAL_CONF_OPTS = \ + --target=$(GCC_BARE_METAL_ARCH)-elf \ + --disable-initfini_array \ + --disable-__cxa_atexit \ + --disable-libstdcxx-pch \ + --with-newlib \ + --disable-threads \ + --enable-plugins \ + --with-gnu-as \ + --disable-libitm \ + --without-long-double-128 \ + --without-headers \ + --enable-languages=c \ + --disable-multilib \ + --with-gmp=$(HOST_DIR) \ + --with-mpc=$(HOST_DIR) \ + --with-mpfr=$(HOST_DIR) \ + --with-isl=$(HOST_DIR) \ + AR_FOR_TARGET=$(O)/host/bin/$(GCC_BARE_METAL_ARCH)-elf-ar \ + RANLIB_FOR_TARGET=$(O)/host/bin/$(GCC_BARE_METAL_ARCH)-elf-ranlib + +$(eval $(host-autotools-package))