From nobody Mon Feb 9 01:45:47 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+106816+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+106816+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1689090235; cv=none; d=zohomail.com; s=zohoarc; b=Om/tgvTuP2ImgPpJI35UlpEOCVt+j8GzwZGOSAESzavSwkEx50oC3duTeyZz2NpaG6sYool8MW3sVzD2UODHvPVHgpv+sdRoxdDIO0Y+73+bcEmF33dTFjT9NuRYKmKMNIbQ0oUI8YTkQ9vutGD0ajpUIRsxbpDEwlHbVy2o2eA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689090235; 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=rxoq6+agxo7rwzeCh51+CKOkdcJaxVHmssfjBOWiE3o=; b=X5Pf0/y14wsIx6j3+7FBH5W9ObM1mz6rVVJ+EUnaIDvld7tnoG2SHThnPeVlkfUpHbvuyncA3sRRKKI7zAehxrP8lk6XxFbS5oXuxgiUTd/NpZotl19CaUh5gIKo8Hjrki1HSNuFiuWsTFAe/3g6lqWWcmgktHOivorRn/86Qwc= 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+106816+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1689090235910832.9295427021385; Tue, 11 Jul 2023 08:43:55 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=Z7BBb5+7tIoL21poytAEnXDPSH0DQ9izyk7Dw70Djqk=; c=relaxed/simple; d=groups.io; h=X-Received:X-Received:X-Received:X-Gm-Message-State:X-Google-Smtp-Source:X-Received:X-Received:From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Unsubscribe:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:Content-Transfer-Encoding; s=20140610; t=1689090235; v=1; b=YdS5tozwU4pxYz3WA3mnke/CApPf3hvSTgM8mjwX7UJ1mBohud+2VOnqBQuscqOQpW9TbeSF gHQMt7WyuQf823s7CbPDD7G0hDOBMmPpVcR27Hn3kyougWbpm5pyDbdMOsWxpqLAd+GQJq5TIAO v/lCMdAlQBatW7OXrnJYcdsU= X-Received: by 127.0.0.2 with SMTP id i8NnYY1788612xf3xN5BHUx3; Tue, 11 Jul 2023 08:43:55 -0700 X-Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by mx.groups.io with SMTP id smtpd.web10.2972.1689090235007240389 for ; Tue, 11 Jul 2023 08:43:55 -0700 X-Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1b89600a37fso29670605ad.2 for ; Tue, 11 Jul 2023 08:43:54 -0700 (PDT) X-Gm-Message-State: D3T8s0XhBZEANTVFOewbLZBfx1787277AA= X-Google-Smtp-Source: APBJJlESCwfHR0qA56Gd9zR9TB2S4vZOwpstKYhSvXQSDw1Yjwe1mTDM9Z1RrUXFDDVbmjR/peCqGg== X-Received: by 2002:a17:903:441:b0:1b8:b26f:a6ac with SMTP id iw1-20020a170903044100b001b8b26fa6acmr13289707plb.5.1689090234285; Tue, 11 Jul 2023 08:43:54 -0700 (PDT) X-Received: from sunil-laptop.. ([106.51.184.72]) by smtp.gmail.com with ESMTPSA id k9-20020a170902694900b001b9f75c8c4dsm923084plt.52.2023.07.11.08.43.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jul 2023 08:43:54 -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 , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 3/4] BaseTools/tools_def: Add CLANGDWARF support for RISC-V Date: Tue, 11 Jul 2023 21:13:34 +0530 Message-Id: <20230711154335.586343-4-sunilvl@ventanamicro.com> In-Reply-To: <20230711154335.586343-1-sunilvl@ventanamicro.com> References: <20230711154335.586343-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 X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1689090237181100013 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 Acked-by: Ard Biesheuvel Reviewed-by: Rebecca Cran --- BaseTools/Conf/tools_def.template | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index 90f4105506e5..1bf62362b611 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,58 @@ 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_COMMON =3D DEF(GCC5_RISCV_ALL_CC_FLAGS) DEF(G= CC5_RISCV_ALL_CC_FLAGS_WARNING_DISABLE) DEF(GCC5_RISCV_OPENSBI_TYPES) -marc= h=3DDEF(GCC5_RISCV64_ARCH) -fno-builtin -fno-builtin-memcpy -fno-stack-prot= ector -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -Wno-= unused-but-set-variable -fpack-struct=3D8 -mcmodel=3Dmedany -mabi=3Dlp64 -m= no-relax +DEFINE CLANGDWARF_RISCV64_CC_FLAGS =3D DEF(CLANGDWARF_RISCV64_CC_COMMON) = DEF(CLANGDWARF_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) -fno-lto +*_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-relax +*_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 (#106816): https://edk2.groups.io/g/devel/message/106816 Mute This Topic: https://groups.io/mt/100081396/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-