1d6aed566Sopenharmony_ci#Copyright (c) 2020-2021 Huawei Device Co., Ltd. 2d6aed566Sopenharmony_ci#Licensed under the Apache License, Version 2.0 (the "License"); 3d6aed566Sopenharmony_ci#you may not use this file except in compliance with the License. 4d6aed566Sopenharmony_ci#You may obtain a copy of the License at 5d6aed566Sopenharmony_ci# 6d6aed566Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7d6aed566Sopenharmony_ci# 8d6aed566Sopenharmony_ci#Unless required by applicable law or agreed to in writing, software 9d6aed566Sopenharmony_ci#distributed under the License is distributed on an "AS IS" BASIS, 10d6aed566Sopenharmony_ci#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11d6aed566Sopenharmony_ci#See the License for the specific language governing permissions and 12d6aed566Sopenharmony_ci#limitations under the License. 13d6aed566Sopenharmony_ci 14d6aed566Sopenharmony_ci# Kernel type, e.g. "linux", "liteos_a", "liteos_m". 15d6aed566Sopenharmony_cikernel_type = "liteos_m" 16d6aed566Sopenharmony_ci 17d6aed566Sopenharmony_ci# Kernel version. 18d6aed566Sopenharmony_cikernel_version = "3.0.0" 19d6aed566Sopenharmony_ci 20d6aed566Sopenharmony_ci# Board CPU type, for example: "cortex-a7", "riscv32". 21d6aed566Sopenharmony_ciboard_cpu = "" 22d6aed566Sopenharmony_ci 23d6aed566Sopenharmony_ci# Board arch, for example: "armv7-a", "rv32imc". 24d6aed566Sopenharmony_ciboard_arch = "rv32imac" 25d6aed566Sopenharmony_ci 26d6aed566Sopenharmony_ci# Toolchain used for system compiling. 27d6aed566Sopenharmony_ci# For example: gcc-arm-none-eabi, arm-linux-ohoseabi-gcc, ohos-clang, riscv32-unknown-elf. 28d6aed566Sopenharmony_ci# Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toolchain. 29d6aed566Sopenharmony_ciboard_toolchain = "riscv32-unknown-elf" 30d6aed566Sopenharmony_ci 31d6aed566Sopenharmony_ci#board_toolchain = "riscv-none-embed" 32d6aed566Sopenharmony_ci 33d6aed566Sopenharmony_ci# The path which toolchain installed, it's not mandatory if toolchain path has been added to your ~/.bashrc. 34d6aed566Sopenharmony_ciboard_toolchain_path = "" 35d6aed566Sopenharmony_ci 36d6aed566Sopenharmony_ci# Compiler prefix. 37d6aed566Sopenharmony_ciboard_toolchain_prefix = "riscv32-unknown-elf-" 38d6aed566Sopenharmony_ci 39d6aed566Sopenharmony_ci#board_toolchain_prefix = "riscv-none-embed-" 40d6aed566Sopenharmony_ci 41d6aed566Sopenharmony_ci# Compiler type, "gcc" or "clang". 42d6aed566Sopenharmony_ciboard_toolchain_type = "gcc" 43d6aed566Sopenharmony_ci 44d6aed566Sopenharmony_ci# config.json parse 45d6aed566Sopenharmony_ciif (product_path != "") { 46d6aed566Sopenharmony_ci product_conf = read_file("${product_path}/config.json", "json") 47d6aed566Sopenharmony_ci force_link_libs = product_conf.force_link_libs 48d6aed566Sopenharmony_ci} 49d6aed566Sopenharmony_ci 50d6aed566Sopenharmony_ci#Debug compiler optimization level options 51d6aed566Sopenharmony_ciboard_opt_flags = [] 52d6aed566Sopenharmony_ci 53d6aed566Sopenharmony_ci# Board related common compile flags. 54d6aed566Sopenharmony_ciboard_cflags = [ 55d6aed566Sopenharmony_ci "-mabi=ilp32", 56d6aed566Sopenharmony_ci "-falign-functions=2", 57d6aed566Sopenharmony_ci "-msave-restore", 58d6aed566Sopenharmony_ci "-fno-optimize-strlen", 59d6aed566Sopenharmony_ci "-freorder-blocks-algorithm=simple", 60d6aed566Sopenharmony_ci "-fno-schedule-insns", 61d6aed566Sopenharmony_ci "-fno-inline-small-functions", 62d6aed566Sopenharmony_ci "-fno-inline-functions-called-once", 63d6aed566Sopenharmony_ci "-mtune=size", 64d6aed566Sopenharmony_ci "-mno-small-data-limit=0", 65d6aed566Sopenharmony_ci "-fno-aggressive-loop-optimizations", 66d6aed566Sopenharmony_ci "-Wpointer-arith", 67d6aed566Sopenharmony_ci "-ffunction-sections", 68d6aed566Sopenharmony_ci "-fdata-sections", 69d6aed566Sopenharmony_ci "-fno-short-enums", 70d6aed566Sopenharmony_ci "-fno-builtin", 71d6aed566Sopenharmony_ci "-O2", 72d6aed566Sopenharmony_ci "-static", 73d6aed566Sopenharmony_ci "-fno-common", 74d6aed566Sopenharmony_ci "-fno-stack-protector", 75d6aed566Sopenharmony_ci "-fno-omit-frame-pointer", 76d6aed566Sopenharmony_ci "-Wno-format-truncation", 77d6aed566Sopenharmony_ci "-D__RISC_V__", 78d6aed566Sopenharmony_ci "-D__LITEOS_M__", 79d6aed566Sopenharmony_ci "-DLWIP_SUPPORT_CUSTOM_PBUF=1", 80d6aed566Sopenharmony_ci "-D_BSD_SOURCE", 81d6aed566Sopenharmony_ci "-Wformat=0", 82d6aed566Sopenharmony_ci "-DLOSCFG_BASE_CORE_HILOG", 83d6aed566Sopenharmony_ci] 84d6aed566Sopenharmony_ci 85d6aed566Sopenharmony_ciboard_cflags += board_opt_flags 86d6aed566Sopenharmony_ci 87d6aed566Sopenharmony_ciboard_asmflags = [ 88d6aed566Sopenharmony_ci "-march=rv32imac", 89d6aed566Sopenharmony_ci "-mabi=ilp32", 90d6aed566Sopenharmony_ci "-static", 91d6aed566Sopenharmony_ci "-O2", 92d6aed566Sopenharmony_ci] 93d6aed566Sopenharmony_ciboard_asmflags += board_opt_flags 94d6aed566Sopenharmony_ciboard_cxx_flags = board_cflags 95d6aed566Sopenharmony_ciboard_ld_flags = [] 96d6aed566Sopenharmony_ciboard_ld_flags += [ 97d6aed566Sopenharmony_ci "-Wl,--wrap=_free_r", 98d6aed566Sopenharmony_ci "-Wl,--wrap,_malloc_usable_size_r", 99d6aed566Sopenharmony_ci "-Wl,--wrap,_malloc_r", 100d6aed566Sopenharmony_ci "-Wl,--wrap,_memalign_r", 101d6aed566Sopenharmony_ci "-Wl,--wrap,_realloc_r", 102d6aed566Sopenharmony_ci "-Wl,--wrap,_calloc_r", 103d6aed566Sopenharmony_ci "-Wl,--wrap=printf", 104d6aed566Sopenharmony_ci] 105d6aed566Sopenharmony_ci 106d6aed566Sopenharmony_ci# Board related headfiles search path. 107d6aed566Sopenharmony_ciboard_include_dirs = [ "//commonlibrary/utils_lite/include" ] 108d6aed566Sopenharmony_ci 109d6aed566Sopenharmony_ci# Board adapter dir for OHOS components. 110d6aed566Sopenharmony_ciboard_adapter_dir = "//device/qemu/riscv32_virt/driver" 111d6aed566Sopenharmony_ci 112d6aed566Sopenharmony_ci# Sysroot path. 113d6aed566Sopenharmony_ciboard_configed_sysroot = "" 114d6aed566Sopenharmony_ci 115d6aed566Sopenharmony_ci# Board storage type, it used for file system generation. 116d6aed566Sopenharmony_cistorage_type = "" 117