From nobody Sat Feb 7 10:16:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+106593+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+106593+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1688371728; cv=none; d=zohomail.com; s=zohoarc; b=eonBnU8VfTtYHXK5BasyDeqaTFB+ZnViITe/25IrOIzRnuPt2+oUoWa+scR16wnJu9bdSagxHbWo5AP7yDmvpEp21v3Me1Z0LPNcrqlwXrBsQ3thZO3oqxGtJ0M4rOY/gVpHxvqT3MtZN7tEQBPiB642oefzdOVEULDh1KbRoY8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1688371728; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=tX68J7dTFbV7BkfMeYmhnVXvHbkIS+2NfRArOtXBUAI=; b=SGheanxi4rUoNA28h6Y/GU1MsqL0MYt8myA5hT/zjF/UFuCc9qGx2qxQFXUoL6WxvA4kf9wzR/JARYLbj2jw6ogJPqf+r5hcCY/oob1lxPXuPfOGDKWUS3BN6UvAsl7AkJoFICWiYFYCfmesizz9vO3fjOE7X7UHE+yAFLG2JGg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+106593+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1688371728477304.83097804542524; Mon, 3 Jul 2023 01:08:48 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Zo70YY1788612xdcZYVHnqK2; Mon, 03 Jul 2023 01:08:48 -0700 X-Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by mx.groups.io with SMTP id smtpd.web10.22610.1688371727751801895 for ; Mon, 03 Jul 2023 01:08:47 -0700 X-Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-1b852785a65so25756205ad.0 for ; Mon, 03 Jul 2023 01:08:47 -0700 (PDT) X-Gm-Message-State: FUnX8jZ9tYhq9KhvNd6qLNfNx1787277AA= X-Google-Smtp-Source: ACHHUZ5bPty1rEDep43U36KgtBQGFd5bJvxJtJCRkg3W0cSDw4XBZNuvx1CbVFSi+b+5kzttwaSlqA== X-Received: by 2002:a17:902:cecb:b0:1b7:dfbd:4dd3 with SMTP id d11-20020a170902cecb00b001b7dfbd4dd3mr23615495plg.9.1688371726933; Mon, 03 Jul 2023 01:08:46 -0700 (PDT) X-Received: from sunil-laptop.. ([106.51.184.72]) by smtp.gmail.com with ESMTPSA id s18-20020a17090a881200b0024e05b7ba8bsm14863253pjn.25.2023.07.03.01.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jul 2023 01:08:46 -0700 (PDT) From: "Sunil V L" To: devel@edk2.groups.io Cc: Sunil V L , Rebecca Cran , Liming Gao , Bob Feng , Yuwei Chen , Ard Biesheuvel Subject: [edk2-devel] [PATCH 3/4] BaseTools/tools_def: Add CLANGDWARF support for RISC-V Date: Mon, 3 Jul 2023 13:38:30 +0530 Message-Id: <20230703080831.51075-4-sunilvl@ventanamicro.com> In-Reply-To: <20230703080831.51075-1-sunilvl@ventanamicro.com> References: <20230703080831.51075-1-sunilvl@ventanamicro.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,sunilvl@ventanamicro.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1688371728; bh=18bSxa0ney7hVhZ6usEdQX03Z99kKu7hhtNwK4meCA4=; h=Cc:Date:From:Reply-To:Subject:To; b=kPXWEBYU67FKPvVpzG7w6gJPQc6Txd1INlMEwiIaV+/ULXSWQgMZaw3AepHRtlXpUXw JNXAHzDUCHPaEG8zIMAGWMKLsXtN17114IlZgR6FNIa/ur4U0pTWLMn1xemebUB6GCA0F bM3pf96VhyFjoxAxolBfbjNWe3BFIIeuS6w= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1688371729287100003 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4478 Add tools_def definitions to support CLANGDWARF toolchain for RISC-V. This uses clang and the llvm LLD linker. This helps people by not requiring to install multiple cross compilers for different architectures. Cc: Rebecca Cran Cc: Liming Gao Cc: Bob Feng Cc: Yuwei Chen Cc: Ard Biesheuvel Signed-off-by: Sunil V L --- BaseTools/Conf/tools_def.template | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index 90f4105506e5..47d8c379d9f2 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -745,6 +745,7 @@ DEFINE GCC_LOONGARCH64_CC_FLAGS =3D DEF(GCC_ALL_CC_F= LAGS) -mabi=3Dlp64d -fno-asyn DEFINE GCC_ARM_CC_XIPFLAGS =3D -mno-unaligned-access DEFINE GCC_AARCH64_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mlittle-endi= an -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fda= ta-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables= -fno-pic -fno-pie -ffixed-x18 DEFINE GCC_AARCH64_CC_XIPFLAGS =3D -mstrict-align -mgeneral-regs-only +DEFINE GCC_RISCV64_CC_XIPFLAGS =3D -mstrict-align -mgeneral-regs-only DEFINE GCC_DLINK_FLAGS_COMMON =3D -nostdlib --pie DEFINE GCC_DLINK2_FLAGS_COMMON =3D -Wl,--script=3D$(EDK_TOOLS_PATH)/Sc= ripts/GccBase.lds DEFINE GCC_IA32_X64_DLINK_COMMON =3D DEF(GCC_DLINK_FLAGS_COMMON) --gc-se= ctions @@ -2023,6 +2024,57 @@ DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS =3D DEF(CLANG= DWARF_AARCH64_TARGET) DEF(GCC_ RELEASE_CLANGDWARF_AARCH64_CC_FLAGS =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS= ) $(PLATFORM_FLAGS) -flto -O3 RELEASE_CLANGDWARF_AARCH64_DLINK_FLAGS =3D DEF(CLANGDWARF_AARCH64_DLINK_FL= AGS) -flto -Wl,-O3 -fuse-ld=3Dlld -L$(WORKSPACE)/ArmPkg/Library/GccLto -llt= o-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64 -Wl,--no-pie,--no= -relax =20 +################## +# CLANGDWARF RISCV64 definitions +################## +DEFINE CLANGDWARF_RISCV64_TARGET =3D -target riscv64-linux-gnu +DEFINE CLANGDWARF_RISCV64_CC_FLAGS =3D DEF(GCC5_RISCV64_CC_FLAGS) DEF(CLA= NGDWARF_RISCV64_TARGET) DEF(CLANGDWARF_WARNING_OVERRIDES) + +# This is similar to GCC flags but without -n +DEFINE CLANGDWARF_RISCV64_ALL_DLINK_COMMON =3D -nostdlib -Wl,-q,--gc-sect= ions -z common-page-size=3D0x40 +DEFINE CLANGDWARF_RISCV64_ALL_DLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_ALL= _DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl= ,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map +DEFINE CLANGDWARF_RISCV64_DLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_TAR= GET) DEF(CLANGDWARF_RISCV64_ALL_DLINK_FLAGS) -Wl,-melf64lriscv,--oformat=3D= elf64-littleriscv,--no-relax + +*_CLANGDWARF_RISCV64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) +*_CLANGDWARF_RISCV64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) +*_CLANGDWARF_RISCV64_APP_FLAGS =3D +*_CLANGDWARF_RISCV64_ASL_FLAGS =3D DEF(IASL_FLAGS) +*_CLANGDWARF_RISCV64_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) +*_CLANGDWARF_RISCV64_DTCPP_FLAGS =3D DEF(GCC_DTCPP_FLAGS) +*_CLANGDWARF_RISCV64_DEPS_FLAGS =3D DEF(GCC_DEPS_FLAGS) + +*_CLANGDWARF_RISCV64_CC_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_ASM_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_PP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_VFRPP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_ASLCC_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_ASLPP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_DLINK_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_RISCV64_ASLDLINK_PATH =3D ENV(CLANGDWARF_BIN)clang + +*_CLANGDWARF_RISCV64_SLINK_PATH =3D ENV(CLANGDWARF_BIN)llvm-ar +*_CLANGDWARF_RISCV64_RC_PATH =3D ENV(CLANGDWARF_BIN)llvm-objcopy + +*_CLANGDWARF_RISCV64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -flto +*_CLANGDWARF_RISCV64_ASLDLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_TARGET) DEF= (GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS) +*_CLANGDWARF_RISCV64_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_= RISCV64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments -mabi=3Dlp64 -mno-rel= ax -flto +*_CLANGDWARF_RISCV64_DLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_TARGET) DEF= (GCC5_RISCV64_DLINK_FLAGS) +*_CLANGDWARF_RISCV64_DLINK_XIPFLAGS =3D -z common-page-size=3D0x20 +*_CLANGDWARF_RISCV64_DLINK2_FLAGS =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,-= -defsym=3DPECOFF_HEADER_SIZE=3D0x240 +*_CLANGDWARF_RISCV64_PLATFORM_FLAGS =3D +*_CLANGDWARF_RISCV64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_R= ISCV64_TARGET) $(PLATFORM_FLAGS) +*_CLANGDWARF_RISCV64_RC_FLAGS =3D DEF(GCC_RISCV64_RC_FLAGS) +*_CLANGDWARF_RISCV64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWAR= F_RISCV64_TARGET) $(PLATFORM_FLAGS) +*_CLANGDWARF_RISCV64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWAR= F_RISCV64_TARGET) +*_CLANGDWARF_RISCV64_CC_XIPFLAGS =3D DEF(GCC_RISCV64_CC_XIPFLAGS) + + DEBUG_CLANGDWARF_RISCV64_CC_FLAGS =3D DEF(CLANGDWARF_RISCV64_CC_FLAGS= ) $(PLATFORM_FLAGS) -flto -O1 + DEBUG_CLANGDWARF_RISCV64_DLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_DLINK_FL= AGS) -flto -Wl,-O1 -fuse-ld=3Dlld -Wl,--no-pie,--no-relax + NOOPT_CLANGDWARF_RISCV64_CC_FLAGS =3D DEF(CLANGDWARF_RISCV64_CC_FLAGS= ) $(PLATFORM_FLAGS) -O0 + NOOPT_CLANGDWARF_RISCV64_DLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_DLINK_FL= AGS) -fuse-ld=3Dlld -Wl,--no-pie,--no-relax +RELEASE_CLANGDWARF_RISCV64_CC_FLAGS =3D DEF(CLANGDWARF_RISCV64_CC_FLAGS= ) $(PLATFORM_FLAGS) -flto -O3 +RELEASE_CLANGDWARF_RISCV64_DLINK_FLAGS =3D DEF(CLANGDWARF_RISCV64_DLINK_FL= AGS) -flto -Wl,-O3 -fuse-ld=3Dlld -Wl,--no-pie,--no-relax + # # # XCODE5 support --=20 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#106593): https://edk2.groups.io/g/devel/message/106593 Mute This Topic: https://groups.io/mt/99923013/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-