Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / third_party / pigweed / repo / targets / lm3s6965evb-qemu / target_toolchains.gni
1 # Copyright 2020 The Pigweed Authors
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 # use this file except in compliance with the License. You may obtain a copy of
5 # the License at
6 #
7 #     https://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 # License for the specific language governing permissions and limitations under
13 # the License.
14
15 import("//build_overrides/pigweed.gni")
16
17 import("$dir_pw_sys_io/backend.gni")
18 import("$dir_pw_toolchain/arm_clang/toolchains.gni")
19 import("$dir_pw_toolchain/arm_gcc/toolchains.gni")
20
21 _test_runner_script = "py/lm3s6965evb_qemu_utils/unit_test_runner.py"
22
23 _target_config = {
24   # Use the logging main.
25   pw_unit_test_MAIN = "$dir_pw_unit_test:logging_main"
26
27   # Configuration options for Pigweed executable targets.
28   pw_build_EXECUTABLE_TARGET_TYPE = "lm3s6965evb_executable"
29
30   pw_build_EXECUTABLE_TARGET_TYPE_FILE =
31       get_path_info("lm3s6965evb_executable.gni", "abspath")
32
33   # Path to the bloaty config file for the output binaries.
34   pw_bloat_BLOATY_CONFIG = "$dir_pw_boot_armv7m/bloaty_config.bloaty"
35
36   pw_unit_test_AUTOMATIC_RUNNER = get_path_info(_test_runner_script, "abspath")
37
38   # Facade backends
39   pw_assert_BACKEND = dir_pw_assert_basic
40   pw_boot_BACKEND = dir_pw_boot_armv7m
41   pw_log_BACKEND = dir_pw_log_basic
42   pw_sys_io_BACKEND = dir_pw_sys_io_baremetal_lm3s6965evb
43   pw_sync_SPIN_LOCK_BACKEND = "$dir_pw_sync_baremetal:spin_lock_backend"
44
45   # pw_cpu_exception_armv7m tests do not work as expected in QEMU. It does not
46   # appear the divide-by-zero traps as expected when enabled, which prevents the
47   # module from triggering a recoverable exception. Since pw_cpu_exception is
48   # not fully set up on this target, disable it for now.
49   # pw_cpu_exception_ENTRY_BACKEND =
50   #     "$dir_pw_cpu_exception_cortex_m:cpu_exception_armv7m
51
52   pw_boot_armv7m_LINK_CONFIG_DEFINES = [
53     "PW_BOOT_FLASH_BEGIN=0x00000200",
54     "PW_BOOT_FLASH_SIZE=255K",
55     "PW_BOOT_HEAP_SIZE=0",
56     "PW_BOOT_MIN_STACK_SIZE=1K",
57     "PW_BOOT_RAM_BEGIN=0x20000000",
58     "PW_BOOT_RAM_SIZE=64K",
59     "PW_BOOT_VECTOR_TABLE_BEGIN=0x00000000",
60     "PW_BOOT_VECTOR_TABLE_SIZE=512",
61   ]
62
63   current_cpu = "arm"
64   current_os = ""
65 }
66
67 _gcc_target_default_configs = [
68   "$dir_pw_build:extra_strict_warnings",
69   "$dir_pw_toolchain/arm_gcc:enable_float_printf",
70 ]
71
72 _clang_target_default_configs = [
73   "$dir_pw_build:extra_strict_warnings",
74   "$dir_pw_toolchain/arm_clang:enable_float_printf",
75 ]
76
77 pw_target_toolchain_lm3s6965evb_qemu = {
78   _excluded_members = [
79     "defaults",
80     "name",
81   ]
82
83   debug = {
84     name = "lm3s6965evb_qemu_gcc_debug"
85     _toolchain_base = pw_toolchain_arm_gcc.cortex_m3_debug
86     forward_variables_from(_toolchain_base, "*", _excluded_members)
87     defaults = {
88       forward_variables_from(_toolchain_base.defaults, "*")
89       forward_variables_from(_target_config, "*")
90       default_configs += _gcc_target_default_configs
91     }
92   }
93
94   speed_optimized = {
95     name = "lm3s6965evb_qemu_gcc_speed_optimized"
96     _toolchain_base = pw_toolchain_arm_gcc.cortex_m3_speed_optimized
97     forward_variables_from(_toolchain_base, "*", _excluded_members)
98     defaults = {
99       forward_variables_from(_toolchain_base.defaults, "*")
100       forward_variables_from(_target_config, "*")
101       default_configs += _gcc_target_default_configs
102     }
103   }
104
105   size_optimized = {
106     name = "lm3s6965evb_qemu_gcc_size_optimized"
107     _toolchain_base = pw_toolchain_arm_gcc.cortex_m3_size_optimized
108     forward_variables_from(_toolchain_base, "*", _excluded_members)
109     defaults = {
110       forward_variables_from(_toolchain_base.defaults, "*")
111       forward_variables_from(_target_config, "*")
112       default_configs += _gcc_target_default_configs
113     }
114   }
115
116   debug_clang = {
117     name = "lm3s6965evb_qemu_clang_debug"
118     _toolchain_base = pw_toolchain_arm_clang.cortex_m3_debug
119     forward_variables_from(_toolchain_base, "*", _excluded_members)
120     defaults = {
121       forward_variables_from(_toolchain_base.defaults, "*")
122       forward_variables_from(_target_config, "*")
123       default_configs += _clang_target_default_configs
124     }
125   }
126
127   speed_optimized_clang = {
128     name = "lm3s6965evb_qemu_clang_speed_optimized"
129     _toolchain_base = pw_toolchain_arm_clang.cortex_m3_speed_optimized
130     forward_variables_from(_toolchain_base, "*", _excluded_members)
131     defaults = {
132       forward_variables_from(_toolchain_base.defaults, "*")
133       forward_variables_from(_target_config, "*")
134       default_configs += _clang_target_default_configs
135     }
136   }
137
138   size_optimized_clang = {
139     name = "lm3s6965evb_qemu_clang_size_optimized"
140     _toolchain_base = pw_toolchain_arm_clang.cortex_m3_size_optimized
141     forward_variables_from(_toolchain_base, "*", _excluded_members)
142     defaults = {
143       forward_variables_from(_toolchain_base.defaults, "*")
144       forward_variables_from(_target_config, "*")
145       default_configs += _clang_target_default_configs
146     }
147   }
148 }
149
150 # This list just contains the members of the above scope for convenience to make
151 # it trivial to generate all the toolchains in this file via a
152 # `generate_toolchains` target.
153 pw_target_toolchain_lm3s6965evb_qemu_list = [
154   pw_target_toolchain_lm3s6965evb_qemu.debug,
155   pw_target_toolchain_lm3s6965evb_qemu.speed_optimized,
156   pw_target_toolchain_lm3s6965evb_qemu.size_optimized,
157   pw_target_toolchain_lm3s6965evb_qemu.debug_clang,
158   pw_target_toolchain_lm3s6965evb_qemu.speed_optimized_clang,
159   pw_target_toolchain_lm3s6965evb_qemu.size_optimized_clang,
160 ]