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