diff --git a/kernel/Kconfig b/kernel/Kconfig
index db845a6bdef57fd4ce80033ea10fa097dde79ec1..42b50b42cb3e7bacefedb6d9d638a887a9e33aab 100644
--- a/kernel/Kconfig
+++ b/kernel/Kconfig
@@ -861,9 +861,16 @@ config TICKLESS_KERNEL
 	  This option enables a fully event driven kernel. Periodic system
 	  clock interrupt generation would be stopped at all times.
 
+config TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
+	bool
+	default y if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr"
+	help
+	  Hidden option to signal that toolchain supports generating code
+	  with thread local storage.
+
 config THREAD_LOCAL_STORAGE
 	bool "Thread Local Storage (TLS)"
-	depends on ARCH_HAS_THREAD_LOCAL_STORAGE
+	depends on ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
 	select NEED_LIBC_MEM_PARTITION if (CPU_CORTEX_M && USERSPACE)
 	help
 	  This option enables thread local storage (TLS) support in kernel.