1# Copyright (c) 2025 IAR Systems AB
2#
3# SPDX-License-Identifier: Apache-2.0
4
5config LD_LINKER_SCRIPT_SUPPORTED
6	default n
7
8choice LINKER_SCRIPT
9	default CMAKE_LINKER_GENERATOR
10endchoice
11
12menu "IAR options"
13
14choice IAR_INIT
15	bool "Static initialization method"
16	depends on XIP
17	default IAR_ZEPHYR_INIT
18
19config IAR_DATA_INIT
20	bool "IAR"
21	select SKIP_BSS_CLEAR # IAR handles zeroing.
22	help
23	  IAR handles initialization of static variables.
24	  Instead of `z_prep_c` calling Zephyrs `z_data_copy`
25	  we call IARs own proprietary initialization method
26	  which can save time and space.
27
28config IAR_ZEPHYR_INIT
29	bool "Zephyr"
30	help
31	  Zephyr handles initialization of static variables.
32	  This is the regular `z_data_copy`.
33
34endchoice
35
36
37config IAR_SEMIHOSTING
38	bool "Use the IAR semihosting implementation."
39	depends on IAR_LIBC
40	help
41	  Use the semihosting implementation in the IAR library
42	  instead of the Zephyr implementation.
43
44config IAR_BUFFERED_WRITE
45	bool "Use buffered write"
46	depends on IAR_SEMIHOSTING
47	help
48	  Instead of printing one character at a time
49	  this option uses a buffer to print a line
50	  at a time instead, increasing speed of printout.
51
52endmenu
53
54config TOOLCHAIN_IAR_SUPPORTS_THREAD_LOCAL_STORAGE
55	def_bool y
56	select TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
57
58# Should we set this? It doesn't seem to be used
59# We support most but don't set __GNUC__
60#
61config TOOLCHAIN_IAR_SUPPORTS_GNU_EXTENSIONS
62	def_bool y
63	select TOOLCHAIN_SUPPORTS_GNU_EXTENSIONS
64