• 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# hm entrypoint
12ENTRY_POINT ?= main
13
14TARGET_IS_SYS := y
15# setup toolchain
16include $(BUILD_CONFIG)/cfg.mk
17include $(BUILD_CONFIG)/toolchain.mk
18
19inc-flags += $(INCLUDE_PATH:%=-I%)
20
21# c & cpp flags:
22flags += -fdata-sections -ffunction-sections
23
24RUNTIME_LIB_FLAG := $(LIBCOMPILER_RT_BUILTINS)
25
26ifeq ($(SVC_PARTITIAL_LINK), y)
27ifeq ($(ARCH),aarch64)
28LDFLAGS += -x -z text -z now -z relro -shared -z noexecstack -z max-page-size=4096
29flags += -fvisibility=hidden
30else
31LDFLAGS += -x -z text -z now -z relro -shared -z noexecstack
32flags += -fvisibility=hidden
33endif #ARCH
34
35LINK_LIBS=$(LIBS:%=-l%)
36LDFLAGS += -L$(LIB_DIR)
37LDFLAGS += -L$(PREBUILD_ARCH_PLAT_LIBS) $(LINK_LIBS)
38flags += $(INCLUDES)
39else
40LDFLAGS += -u __vsyscall_ptr --gc-sections -pie -z relro -z now
41LDFLAGS += -L$(LIB_DIR)
42LDFLAGS += -L$(PREBUILD_ARCH_PLAT_LIBS) --start-group $(LIBS:%=-l%) $(RUNTIME_LIB_FLAG) --end-group
43LDFLAGS +=  -nostdlib -u $(ENTRY_POINT) -e $(ENTRY_POINT) -z max-page-size=4096
44endif #SVC_PARTITIAL_LINK
45
46flags += $(INCLUDES)
47
48include $(BUILD_CFI)/llvm-apps-cfi.mk
49