mirror of https://github.com/acidanthera/audk.git
BaseTools: Enable RISC-V architecture for RISC-V EDK2 CI.
BZ:2562: https://bugzilla.tianocore.org/show_bug.cgi?id=2562 EDK CI for RISC-V architecture Enable RISC-V architecture for RISC-V EDK2 CI testing. Signed-off-by: Abner Chang <abner.chang@hpe.com> Reviewed-by: Sean Brogan <sean.brogan@microsoft.com> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com> Cc: Sean Brogan <sean.brogan@microsoft.com> Cc: Bob Feng <bob.c.feng@intel.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Gilbert Chen <gilbert.chen@hpe.com> Cc: Daniel Helmut Schaefer <daniel.schaefer@hpe.com>
This commit is contained in:
parent
faef5a367c
commit
ea56fa3d47
|
@ -0,0 +1,22 @@
|
|||
## @file
|
||||
# Download GCC RISCV64 compiler from RISC-V Organization release site
|
||||
# Set shell variable GCC5_RISCV64_INSTALL to this folder
|
||||
#
|
||||
# This is only downloaded when a build activates scope gcc_riscv64_unknown
|
||||
#
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
##
|
||||
{
|
||||
"scope": "gcc_riscv64_unknown",
|
||||
"type": "web",
|
||||
"name": "gcc_riscv64_unknown",
|
||||
"source": "https://raw.githubusercontent.com/riscv/riscv-uefi-edk2-docs/master/gcc-riscv-edk2-ci-toolchain/gcc-riscv-9.2.0-2020.04-x86_64_riscv64-unknown-gnu.tar.xz",
|
||||
"version": "9.2.0",
|
||||
"compression_type": "tar",
|
||||
"sha256": "28373643b69f0ce008273c3dc63f172aa1121952f1b9ae94d7485ac94af7f344",
|
||||
"internal_path": "/gcc-riscv-9.2.0-2020.04-x86_64_riscv64-unknown-gnu",
|
||||
"flags": ["set_shell_var", ],
|
||||
"var_name": "GCC5_RISCV64_INSTALL"
|
||||
}
|
|
@ -4,6 +4,7 @@
|
|||
# This plugin works in conjuncture with the tools_def
|
||||
#
|
||||
# Copyright (c) Microsoft Corporation
|
||||
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
##
|
||||
import os
|
||||
|
@ -36,6 +37,12 @@ class LinuxGcc5ToolChain(IUefiBuildPlugin):
|
|||
self.Logger.critical("Failed in check arm")
|
||||
return ret
|
||||
|
||||
# Check RISCV64 compiler
|
||||
ret = self._check_riscv64()
|
||||
if ret != 0:
|
||||
self.Logger.critical("Failed in check riscv64")
|
||||
return ret
|
||||
|
||||
return 0
|
||||
|
||||
def _check_arm(self):
|
||||
|
@ -83,3 +90,34 @@ class LinuxGcc5ToolChain(IUefiBuildPlugin):
|
|||
return -2
|
||||
|
||||
return 0
|
||||
|
||||
def _check_riscv64(self):
|
||||
# now check for install dir. If set then set the Prefix
|
||||
install_path = shell_environment.GetEnvironment(
|
||||
).get_shell_var("GCC5_RISCV64_INSTALL")
|
||||
if install_path is None:
|
||||
return 0
|
||||
|
||||
# check to see if full path already configured
|
||||
if shell_environment.GetEnvironment().get_shell_var("GCC5_RISCV64_PREFIX") is not None:
|
||||
self.Logger.info("GCC5_RISCV64_PREFIX is already set.")
|
||||
|
||||
else:
|
||||
# make GCC5_RISCV64_PREFIX to align with tools_def.txt
|
||||
prefix = os.path.join(install_path, "bin", "riscv64-unknown-elf-")
|
||||
shell_environment.GetEnvironment().set_shell_var("GCC5_RISCV64_PREFIX", prefix)
|
||||
|
||||
# now confirm it exists
|
||||
if not os.path.exists(shell_environment.GetEnvironment().get_shell_var("GCC5_RISCV64_PREFIX") + "gcc"):
|
||||
self.Logger.error(
|
||||
"Path for GCC5_RISCV64_PREFIX toolchain is invalid")
|
||||
return -2
|
||||
|
||||
# Check if LD_LIBRARY_PATH is set for the libraries of RISC-V GCC toolchain
|
||||
if shell_environment.GetEnvironment().get_shell_var("LD_LIBRARY_PATH") is not None:
|
||||
self.Logger.info("LD_LIBRARY_PATH is already set.")
|
||||
|
||||
prefix = os.path.join(install_path, "lib")
|
||||
shell_environment.GetEnvironment().set_shell_var("LD_LIBRARY_PATH", prefix)
|
||||
|
||||
return 0
|
||||
|
|
Loading…
Reference in New Issue