From patchwork Wed Jan 31 11:22:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Neal Frager X-Patchwork-Id: 1893409 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 4TQ05h2HTSz23dQ for ; Wed, 31 Jan 2024 22:23:20 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 5464861488; Wed, 31 Jan 2024 11:23:18 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 5464861488 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 Q2qDJIXmFDm3; Wed, 31 Jan 2024 11:23:17 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 4BB1060803; Wed, 31 Jan 2024 11:23:16 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 4BB1060803 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 34A161BF5E6 for ; Wed, 31 Jan 2024 11:23:01 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 0B28C4017B for ; Wed, 31 Jan 2024 11:23:01 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 0B28C4017B 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 3Z4INqaaaFjp for ; Wed, 31 Jan 2024 11:22:58 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:2418::601]) by smtp2.osuosl.org (Postfix) with ESMTPS id C3A604012F for ; Wed, 31 Jan 2024 11:22:57 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org C3A604012F ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iujthimos/caqxcv1crgSnL4CxHtDeqXS6gCDwcQI+sb1KaCHH8u6HIYZBIcoQBxdTEuPYSHEujaN908mYST2Atr6R+DPlfNWUAKbXAjsgE7xOTpLwj55z4SHZFjndmdZxAdmcL9Qs5H473KO7H/tj1KJUy53rfXshrPqwvvgqgw8+NWoNLjZImofPKm9LXo3bbSrhpYesaNq6vjTtYTz+y+eVdKU2WVXhzO9GQyZpjC7xQCPz0M8D31s2pASXEzI3rg5JcvEeB26At7kQoqPuUeu8OU2hlui0LsMfJGI51+1gk1i8rawT1zsw/v9MndN0fLYp08DpacRRjkCb9KKQ== 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=d7VW9TCMvFBm0PMXtKV10fXeB40m1BwmBbqpDLPWqaI=; b=FxDw5LS1g4XLbXh9BWRyONvUMQyFgubCZqMHBE7HaGL860PjiyY6QlrMOTEewGunzEBZCQyufkaUdX1CuIh2ubcHb8aeHyDY2638iarC51TwozlJsjOSdgWSN+/h21ew72Bcfya4ajXazn1qXmVqCE6wlYu+q2CCBxA3336hga8HAKupIcc2l50bYeuhduoFop/v1vSoUR4lvBJp5k/dQSUDNT69KNBve4eIOCDtFo7/Zi+UWwiCQWsadK/4uYsE5UcE8wVQ7IPKmpywPpsXM8uRiqiH4YliKsXAdfzavg/Ck9aSpJ4bRbaP4JDZAL3IUiFfz+eK+2kYSjqhhMStBA== 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 (0) Received: from BYAPR11CA0039.namprd11.prod.outlook.com (2603:10b6:a03:80::16) by MW4PR12MB7468.namprd12.prod.outlook.com (2603:10b6:303:212::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 11:22:53 +0000 Received: from DS3PEPF000099DB.namprd04.prod.outlook.com (2603:10b6:a03:80:cafe::cd) by BYAPR11CA0039.outlook.office365.com (2603:10b6:a03:80::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.22 via Frontend Transport; Wed, 31 Jan 2024 11:22:53 +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 DS3PEPF000099DB.mail.protection.outlook.com (10.167.17.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7249.19 via Frontend Transport; Wed, 31 Jan 2024 11:22:52 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) 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.34; Wed, 31 Jan 2024 05:22:52 -0600 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 31 Jan 2024 05:22:51 -0600 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.34 via Frontend Transport; Wed, 31 Jan 2024 05:22:50 -0600 To: Date: Wed, 31 Jan 2024 11:22:16 +0000 Message-ID: <20240131112223.2175855-4-neal.frager@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240131112223.2175855-1-neal.frager@amd.com> References: <20240131112223.2175855-1-neal.frager@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099DB:EE_|MW4PR12MB7468:EE_ X-MS-Office365-Filtering-Correlation-Id: 6dc22154-79af-4999-f554-08dc224ef6f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Bkz2uzUhiRkNQNBYPzLB8vJ3pJvhEiRFYC8DtKG6vej9h1gXDuWtv3RlC2EjX0k1uOHw+6UN5bHYk5R/I1IxM4WRR9ntHqClIsMVCpLZe3NmpQmdsO0r2DMkWTIh2QBnmxXRuMkmZpKdPBLrVPWQQdxSR0Oq0W0J/ALMyKTD/UrkZ6BgBVmX7lnBXCXGbDegRtulEmghMkp84/OBGB1HVLERMybRsbhT13P7qn021oXl2y33ITWrybq31FGPeq0QWAPrntIR3odanSQi0L2tvtIEj2m03RaS6KnwN0zhPq1mcsnVjw7wwozvjwS+0MFUryPcVKR8BdAGhY0NLuZVMhVWtUard7uqwA4cmQHT4fqst9zxsYvJBKQO7BnaPTh/zbtDE5AXWRcINc6DLwyhZEWfK0xcR4AmAFein/t9QOYIsjJ6cmDPd2kxT6uOJ7AkzhmeBeaQwS+tke6Bhc11f8Iz8hSxeohrwjUWBmh/n+rlWE/x3T53pvVwsxMD0nnY8oks/WPtsZDg+db8X7O/GpEGThFvRi/aHilS0d7YGyhfvYdlbVSCPErZG2AZhHyFVmSgOYtntw3dVDCLIU1O5ltgJXK+VHOO0BtpxLTrFtO+yu2b1DSiV3BCd/QS+pUtf2yEGIIUCszDwHv07++glZNfoFZJXBcf67HmYh3LvP4DhnCimrXV6Jhv6kwjt9dJCO9Ntj6UOFmduhm/bpLoga5NmTFz33OmqH4+pXWgAcCpKMuvZaeRvSr0qJeVlbiK 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)(396003)(136003)(376002)(346002)(39860400002)(230922051799003)(451199024)(82310400011)(64100799003)(186009)(1800799012)(46966006)(40470700004)(36840700001)(40460700003)(40480700001)(41300700001)(36756003)(86362001)(81166007)(356005)(36860700001)(47076005)(26005)(82740400003)(1076003)(2616005)(426003)(336012)(2906002)(478600001)(6916009)(70206006)(316002)(70586007)(6666004)(54906003)(5660300002)(4326008)(44832011)(8936002)(8676002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 11:22:52.5200 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6dc22154-79af-4999-f554-08dc224ef6f9 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: DS3PEPF000099DB.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7468 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=d7VW9TCMvFBm0PMXtKV10fXeB40m1BwmBbqpDLPWqaI=; b=1g/1oVLNZcX/hpWl7MfF9ZYuPMJaLQplro+7RNxKS4RNFaXVrUpWpOGbEPKkwGcmeOG74qFY+Ly9g3jVyuTESKJ/G5wdE89XnBsB46p1MJFrM/cH5VjzqP5AkEyXiX52qqd/NmdRxIvwsuYZFAiJv7wu8d7yjbVnCWh7l819dnA= 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=1g/1oVLN Subject: [Buildroot] [PATCH v9 04/11] package/newlib-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 newlib 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: Neal Frager Signed-off-by: Ibai Erkiaga Signed-off-by: Thomas Petazzoni --- V1->V2: - removed default enable to be replaced with toolchain select config V2->V3: - no changes V3->V4: - replaced unnecessary =? with = for assignments - improved menuconfig help comment V4->V5: - added license files - reduced all lines to <80 chars V5->V6: - migrated to toolchain-bare-metal-buildroot V6->V7: - hard-coded version - converted to target package with gcc-bare-metal sysroot install V7->V8: - no changes V8->V9: - bumped to version 4.4.0 --- DEVELOPERS | 2 + package/newlib-bare-metal/Config.in | 2 + .../newlib-bare-metal/newlib-bare-metal.hash | 8 +++ .../newlib-bare-metal/newlib-bare-metal.mk | 52 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 package/newlib-bare-metal/Config.in create mode 100644 package/newlib-bare-metal/newlib-bare-metal.hash create mode 100644 package/newlib-bare-metal/newlib-bare-metal.mk diff --git a/DEVELOPERS b/DEVELOPERS index af6c01c72f..057eac7845 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1388,6 +1388,7 @@ F: package/python-rpi-gpio/ N: Ibai Erkiaga F: package/binutils-bare-metal/ F: package/gcc-bare-metal/ +F: package/newlib-bare-metal/ F: toolchain/toolchain-bare-metal-buildroot/ N: Ignacy Gawędzki @@ -2245,6 +2246,7 @@ F: configs/zynqmp_zcu106_defconfig F: package/binutils-bare-metal/ F: package/bootgen/ F: package/gcc-bare-metal/ +F: package/newlib-bare-metal/ F: package/versal-firmware/ F: toolchain/toolchain-bare-metal-buildroot/ diff --git a/package/newlib-bare-metal/Config.in b/package/newlib-bare-metal/Config.in new file mode 100644 index 0000000000..1ff3d5d8ec --- /dev/null +++ b/package/newlib-bare-metal/Config.in @@ -0,0 +1,2 @@ +config BR2_PACKAGE_NEWLIB_BARE_METAL + bool diff --git a/package/newlib-bare-metal/newlib-bare-metal.hash b/package/newlib-bare-metal/newlib-bare-metal.hash new file mode 100644 index 0000000000..f8c553cf86 --- /dev/null +++ b/package/newlib-bare-metal/newlib-bare-metal.hash @@ -0,0 +1,8 @@ +# Locally calculated +sha256 0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13 newlib-4.4.0.20231231.tar.gz + +# Hashes for license files locally calculated +sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING +sha256 a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 COPYING.LIB +sha256 f3b7f3e4426b1fa6f60198dae7adfedd94b77b28db2d108adc0253575011e0ff COPYING.LIBGLOSS +sha256 422aa40293093fb54fc66e692a0d68fd0b24ed5602e5d1d33ad05ba3909057e9 COPYING.NEWLIB diff --git a/package/newlib-bare-metal/newlib-bare-metal.mk b/package/newlib-bare-metal/newlib-bare-metal.mk new file mode 100644 index 0000000000..452bc4da25 --- /dev/null +++ b/package/newlib-bare-metal/newlib-bare-metal.mk @@ -0,0 +1,52 @@ +################################################################################ +# +# newlib-bare-metal +# +################################################################################ + +NEWLIB_BARE_METAL_VERSION = 4.4.0 +NEWLIB_BARE_METAL_SITE = ftp://sourceware.org/pub/newlib +NEWLIB_BARE_METAL_SOURCE = newlib-$(NEWLIB_BARE_METAL_VERSION).20231231.tar.gz +NEWLIB_BARE_METAL_DEPENDENCIES = host-gcc-bare-metal +NEWLIB_BARE_METAL_ADD_TOOLCHAIN_DEPENDENCY = NO +NEWLIB_BARE_METAL_LICENSE = GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0 +NEWLIB_BARE_METAL_LICENSE_FILES = \ + COPYING \ + COPYING.LIB \ + COPYING.LIBGLOSS \ + COPYING.NEWLIB + +NEWLIB_BARE_METAL_INSTALL_STAGING = YES +NEWLIB_BARE_METAL_INSTALL_TARGET = NO + +define NEWLIB_BARE_METAL_CONFIGURE_CMDS + (cd $(@D) && \ + PATH=$(BR_PATH) \ + ./configure \ + --target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \ + --prefix=/usr \ + --enable-newlib-io-c99-formats \ + --enable-newlib-io-long-long \ + --enable-newlib-io-float \ + --enable-newlib-io-long-double \ + --disable-multilib \ + ) +endef + +define NEWLIB_BARE_METAL_BUILD_CMDS + PATH=$(BR_PATH) $(MAKE1) -C $(@D) +endef + +define NEWLIB_BARE_METAL_INSTALL_STAGING_CMDS + PATH=$(BR_PATH) $(MAKE1) -C $(@D) DESTDIR=$(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT) install +endef + +define NEWLIB_BARE_METAL_FIXUP + mv $(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT)/usr/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)/include \ + $(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT)/usr/include + mv $(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT)/usr/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)/lib \ + $(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT)/usr/lib +endef +NEWLIB_BARE_METAL_POST_INSTALL_STAGING_HOOKS += NEWLIB_BARE_METAL_FIXUP + +$(eval $(generic-package))