• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2022 Huawei Technologies Co., Ltd.
2# Licensed under the Mulan PSL v2.
3# You can use this software according to the terms and conditions of the Mulan PSL v2.
4# You may obtain a copy of Mulan PSL v2 at:
5#     http://license.coscl.org.cn/MulanPSL2
6# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
7# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
8# PURPOSE.
9# See the Mulan PSL v2 for more details.
10#
11#toolchain.mk
12#
13export TOOLCHAIN_ROOT=$(TEE_CLANG_DIR)
14
15export CLANG_TOOLCHAIN   := $(TOOLCHAIN_ROOT)
16export PATH := $(CLANG_TOOLCHAIN):$(PATH)
17CROSS_COMPILE := $(CLANG_TOOLCHAIN)
18
19override CC      := $(SOURCEANALYZER) $(CCACHE) $(CROSS_COMPILE)/clang
20override CXX     := $(SOURCEANALYZER) $(CCACHE) $(CROSS_COMPILE)/clang++
21override AS      := $(CROSS_COMPILE)/llvm-as
22override LD      := $(CROSS_COMPILE)/ld.lld
23override CPP     := $(srctree)/kernel/clang-cpp
24# disable ar creating debug
25override AR      := $(CROSS_COMPILE)/llvm-ar 2>/dev/null
26override NM      := $(CROSS_COMPILE)/llvm-nm
27override OBJCOPY := $(CROSS_COMPILE)/llvm-objcopy
28override READELF := $(CROSS_COMPILE)/llvm-readelf
29override STRIP   := $(CROSS_COMPILE)/llvm-strip
30override RANLIB  := $(CROSS_COMPILE)/llvm-ranlib
31
32export CC CXX AS LD CPP AR NM OBJCOPY READELF STRIP
33
34# clang need `--target=$(TARGET_ARCH)` option
35export TARGET_ARCH_32 := arm-linux-gnueabi
36export TARGET_ARCH_64 := aarch64-linux-gnu
37
38ifeq ($(ARCH), arm)
39	TARGET_ARCH := $(TARGET_ARCH_32)
40	LIBCOMPILER_RT_BUILTINS := $(TEE_COMPILER_DIR)/lib/clang/$(LLVM_BASEVER)/lib/arm-linux-ohos/libclang_rt.builtins.a
41ifeq (${CONFIG_THUMB_SUPPORT},y)
42    flags += -mthumb
43endif
44ifeq ($(CONFIG_ARM_CORTEX_A15),y)
45    flags += -march=armv7ve
46endif
47ifeq ($(CONFIG_ARM_CORTEX_A53),y)
48    flags += -march=armv8-a
49endif
50else
51	TARGET_ARCH := $(TARGET_ARCH_64)
52	LIBCOMPILER_RT_BUILTINS := $(TEE_COMPILER_DIR)/lib/clang/$(LLVM_BASEVER)/lib/aarch64-linux-ohos/libclang_rt.builtins.a
53    flags += -march=armv8-a
54ifeq ($(CONFIG_ARM_CORTEX_A53),y)
55    ASFLAGS += -march=armv8-a
56    ASFLAGS += -mcpu=cortex-a53
57endif
58endif
59
60flags     += --target=$(TARGET_ARCH)
61cxx-flags += --target=$(TARGET_ARCH)
62asflags   += --target=$(TARGET_ARCH)
63