# Copyright (c) 2021 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config LD_LINKER_SCRIPT_SUPPORTED
	bool
	default n

choice LINKER_SCRIPT
	default CMAKE_LINKER_GENERATOR
endchoice

choice LIBC_IMPLEMENTATION
	prompt "C Library Implementation"
	default ARMCLANG_STD_LIBC

config ARMCLANG_STD_LIBC
	bool "ARM Compiler C library"
	select COMMON_LIBC_STRNLEN
	select COMMON_LIBC_TIME if POSIX_TIMERS
	help
	  Use the full Arm Compiler runtime libraries.
	  A reduced Zephyr minimal libc will be used for library functionality
	  not provided by ARM Compiler standard libraries.

endchoice

config TOOLCHAIN_ARMCLANG_SUPPORTS_GNU_EXTENSIONS
	def_bool y
	select TOOLCHAIN_SUPPORTS_GNU_EXTENSIONS
