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 4# PSL v2. 5# You may obtain a copy of Mulan PSL v2 at: 6# http://license.coscl.org.cn/MulanPSL2 7# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY 8# KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 9# NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 10# See the Mulan PSL v2 for more details. 11 12list(APPEND COMMON_LDFLAGS 13 "-s" 14 "SHELL:-z text" 15 "SHELL:-z now" 16 "SHELL:-z relro" 17 "SHELL:-z noexecstack" 18 "-shared" 19) 20if ("${CONFIG_GCC}" STREQUAL "n") 21 list(APPEND COMMON_LDFLAGS 22 "SHELL:-z max-page-size=4096" 23 "--execute-only" 24 ) 25endif() 26set(COMMON_LDFLAGS ${COMMON_LDFLAGS} CACHE INTERNAL "") 27 28list(APPEND COMMON_CFLAGS 29 -Wall 30 -Werror 31 -Wdate-time 32 -Wfloat-equal 33 -Wshadow 34 -fno-short-enums 35 -fno-omit-frame-pointer 36 -Wstack-protector 37 --param ssp-buffer-size=4 38 -Wextra 39 -nostdinc 40 -march=armv8-a 41 -fPIC 42 -fno-common 43 -fsigned-char 44 -DCONFIG_AUTH_TERMINAL 45 -pipe 46) 47if ("${CONFIG_GCC}" STREQUAL "y") 48 list(APPEND COMMON_CFLAGS 49 -W 50 -fstack-protector 51 -Os 52 -fno-peephole 53 -fno-peephole2 54 ) 55else() 56 list(APPEND COMMON_CFLAGS 57 -fstack-protector-strong 58 -funwind-tables 59 -Oz 60 -munaligned-access 61 -fmax-type-align=1 62 -flto 63 -fvisibility=default 64 -fsanitize=cfi 65 -fno-exceptions 66 -ftrivial-auto-var-init=zero 67 -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang 68 ) 69 if ("${TARGET_IS_ARM64}" STREQUAL "n") 70 list(APPEND COMMON_CFLAGS 71 --target=arm-linux-gnu 72 -mfloat-abi=soft 73 ) 74 else() 75 list(APPEND COMMON_CFLAGS 76 --target=aarch64-linux-gnu 77 ) 78 endif() 79endif() 80set(COMMON_CFLAGS ${COMMON_CFLAGS} CACHE INTERNAL "") 81