• 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
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