# SPDX-License-Identifier: GPL-2.0-only
config CC_VERSION_TEXT
	string
	default "$(CC_VERSION_TEXT)"
	help
	  This is used in unclear ways:

	  - Re-run Kconfig when the compiler is updated
	    The 'default' property references the environment variable,
	    CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
	    When the compiler is updated, Kconfig will be invoked.

	  - Ensure full rebuild when the compiler is updated
	    include/linux/compiler-version.h contains this option in the comment
	    line so fixdep adds include/config/CC_VERSION_TEXT into the
	    auto-generated dependency. When the compiler is updated, syncconfig
	    will touch it and then every file will be rebuilt.

config CC_IS_GCC
	def_bool $(success,test "$(cc-name)" = GCC)

config GCC_VERSION
	int
	default $(cc-version) if CC_IS_GCC
	default 0

config CC_IS_CLANG
	def_bool $(success,test "$(cc-name)" = Clang)

config CLANG_VERSION
	int
	default $(cc-version) if CC_IS_CLANG
	default 0

config AS_IS_GNU
	def_bool $(success,test "$(as-name)" = GNU)

config AS_IS_LLVM
	def_bool $(success,test "$(as-name)" = LLVM)

config AS_VERSION
	int
	# Use clang version if this is the integrated assembler
	default CLANG_VERSION if AS_IS_LLVM
	default $(as-version)

config LD_IS_BFD
	def_bool $(success,test "$(ld-name)" = BFD)

config LD_VERSION
	int
	default $(ld-version) if LD_IS_BFD
	default 0

config LD_IS_LLD
	def_bool $(success,test "$(ld-name)" = LLD)

config LLD_VERSION
	int
	default $(ld-version) if LD_IS_LLD
	default 0

config RUSTC_VERSION
	int
	default $(rustc-version)
	help
	  It does not depend on `RUST` since that one may need to use the version
	  in a `depends on`.

config RUST_IS_AVAILABLE
	def_bool $(success,$(srctree)/scripts/rust_is_available.sh)
	help
	  This shows whether a suitable Rust toolchain is available (found).

	  Please see Documentation/rust/quick-start.rst for instructions on how
	  to satisfy the build requirements of Rust support.

	  In particular, the Makefile target 'rustavailable' is useful to check
	  why the Rust toolchain is not being detected.

config RUSTC_LLVM_VERSION
	int
	default $(rustc-llvm-version)

config RUSTC_LLVM_MAJOR_VERSION
	int
	default $(shell,expr $(rustc-llvm-version) / 10000)

config RUSTC_CLANG_LLVM_COMPATIBLE
	bool
	default y if CC_IS_CLANG && RUSTC_LLVM_MAJOR_VERSION = $(shell,expr $(cc-version) / 10000)
	help
	  This indicates whether Rust and Clang use LLVM of the same major
	  version.

	  Operations involving handling LLVM IR or bitcode (e.g. cross-language
	  LTO) require the same LLVM major version to work properly. For best
	  compatibility it is recommended that the exact same LLVM is used.

config ARCH_HAS_CC_CAN_LINK
	bool

config CC_CAN_LINK
	bool
	default ARCH_CC_CAN_LINK if ARCH_HAS_CC_CAN_LINK
	default $(cc_can_link_user,$(m64-flag)) if 64BIT
	default $(cc_can_link_user,$(m32-flag))

# Fixed in GCC 14, 13.3, 12.4 and 11.5
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
config GCC_ASM_GOTO_OUTPUT_BROKEN
	bool
	depends on CC_IS_GCC
	default y if GCC_VERSION < 110500
	default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
	default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300

config CC_HAS_ASM_GOTO_OUTPUT
	def_bool y
	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)

config CC_HAS_ASM_GOTO_TIED_OUTPUT
	depends on CC_HAS_ASM_GOTO_OUTPUT
	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)

config TOOLS_SUPPORT_RELR
	def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)

config CC_HAS_ASM_INLINE
	def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)

config CC_HAS_ASSUME
	bool
	# clang needs to be at least 19.1.0 since the meaning of the assume
	# attribute changed:
	# https://github.com/llvm/llvm-project/commit/c44fa3e8a9a44c2e9a575768a3c185354b9f6c17
	default y if CC_IS_CLANG && CLANG_VERSION >= 190100
	# supported since gcc 13.1.0
	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106654
	default y if CC_IS_GCC && GCC_VERSION >= 130100

config CC_HAS_NO_PROFILE_FN_ATTR
	def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)

config CC_OPT_ZERO_INIT_PADDING_BITS
	def_string "$(cc-option-str,-fzero-init-padding-bits=all)"

config CC_OPT_NO_ADDRSIG
	def_string "$(cc-option-str,-fno-addrsig)"

config CC_OPT_DIAGNOSTICS_SHOW_CONTEXT
	def_string "$(cc-option-str,-fdiagnostics-show-context=2)"

config CC_OPT_DIAGNOSTICS_SHOW_INLINING_CHAIN
	def_string "$(cc-option-str,-fdiagnostics-show-inlining-chain)"

config CC_OPT_STRICT_FLEX_ARRAYS
	def_string "$(cc-option-str,-fstrict-flex-arrays=3)"

# gcc-10 renamed --param=allow-store-data-races=0 to -fno-allow-store-data-races
config CC_OPT_ALLOW_STORE_DATA_RACES_PARAM
	def_string "$(cc-option-str,--param=allow-store-data-races=0)"

config CC_OPT_NO_ALLOW_STORE_DATA_RACES
	def_string "$(cc-option-str,-fno-allow-store-data-races)"

config CC_HAS_MNOP_MCOUNT
	def_bool $(cc-option,-mnop-mcount)

# s390-linux-gnu-gcc did not support -mfentry until gcc-9.
config CC_HAS_MFENTRY
	def_bool $(cc-option,-mfentry)

config LD_OPT_FORCE_GROUP_ALLOCATION
	def_string "$(ld-option-str,--force-group-allocation)"

config LD_OPT_NO_WARN_RWX_SEGMENTS
	def_string "$(ld-option-str,--no-warn-rwx-segments)"

config CC_OPT_WNO_ADDRESS_OF_PACKED_MEMBER
	def_string "$(cc-option-str,-Wno-address-of-packed-member)"

config CC_OPT_WNO_FORMAT_OVERFLOW_NON_KPRINTF
	def_string "$(cc-option-str,-Wno-format-overflow-non-kprintf)"

config CC_OPT_WNO_FORMAT_TRUNCATION_NON_KPRINTF
	def_string "$(cc-option-str,-Wno-format-truncation-non-kprintf)"

config CC_OPT_WNO_DEFAULT_CONST_INIT_UNSAFE
	def_string "$(cc-option-str,-Wno-default-const-init-unsafe)"

config CC_OPT_WNO_DANGLING_POINTER
	def_string "$(cc-option-str,-Wno-dangling-pointer)"

config CC_OPT_WVLA_LARGER_THAN
	def_string "$(cc-option-str,-Wvla-larger-than=1)"

config CC_HAS_WSTRINGOP_OVERFLOW
	def_bool $(cc-option,-Wstringop-overflow)

config CC_OPT_WNO_UNTERMINATED_STRING_INITIALIZATION
	def_string "$(cc-option-str,-Wno-unterminated-string-initialization)"

config CC_OPT_WERROR_DESIGNATED_INIT
	def_string "$(cc-option-str,-Werror=designated-init)"

config CC_OPT_WENUM_CONVERSION
	def_string "$(cc-option-str,-Wenum-conversion)"

config CC_OPT_WNO_PACKED_NOT_ALIGNED
	def_string "$(cc-option-str,-Wno-packed-not-aligned)"

config CC_OPT_WNO_FORMAT_OVERFLOW
	def_string "$(cc-option-str,-Wno-format-overflow)"

config CC_OPT_WNO_STRINGOP_TRUNCATION
	def_string "$(cc-option-str,-Wno-stringop-truncation)"

config CC_HAS_COUNTED_BY
	bool
	# clang needs to be at least 20.1.0 to avoid potential crashes
	# when building structures that contain __counted_by
	# https://github.com/ClangBuiltLinux/linux/issues/2114
	# https://github.com/llvm/llvm-project/commit/160fb1121cdf703c3ef5e61fb26c5659eb581489
	default y if CC_IS_CLANG && CLANG_VERSION >= 200100
	# supported since gcc 15.1.0
	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
	default y if CC_IS_GCC && GCC_VERSION >= 150100

config CC_HAS_COUNTED_BY_PTR
	bool
	# supported since clang 22
	default y if CC_IS_CLANG && CLANG_VERSION >= 220100
	# supported since gcc 16.0.0
	default y if CC_IS_GCC && GCC_VERSION >= 160000

config CC_HAS_BROKEN_COUNTED_BY_REF
	bool
	# https://github.com/llvm/llvm-project/issues/182575
	default y if CC_IS_CLANG && CLANG_VERSION < 220100

config CC_HAS_ALLOC_TOKEN
	def_bool $(cc-option,-falloc-token-max=123)

config CC_HAS_MULTIDIMENSIONAL_NONSTRING
	def_bool $(success,echo 'char tag[][4] __attribute__((__nonstring__)) = { };' | $(CC) $(CLANG_FLAGS) -x c - -c -o /dev/null -Werror)

config CC_OPT_INLINE_MEMSET
	string
	default "-finline-stringops=memset" if $(cc-option,-finline-stringops=memset)
	default "-mllvm -max-store-memset=4294967294" if $(cc-option,-mllvm -max-store-memset=4294967294)

config LD_CAN_USE_KEEP_IN_OVERLAY
	# ld.lld prior to 21.0.0 did not support KEEP within an overlay description
	# https://github.com/llvm/llvm-project/pull/130661
	def_bool LD_IS_BFD || LLD_VERSION >= 210000

config RUSTC_HAS_UNNECESSARY_TRANSMUTES
	def_bool RUSTC_VERSION >= 108800

config RUSTC_HAS_FILE_WITH_NUL
	def_bool RUSTC_VERSION >= 108900

config RUSTC_HAS_FILE_AS_C_STR
	def_bool RUSTC_VERSION >= 109100

config RUSTC_HAS_SUSPICIOUS_RUNTIME_SYMBOL_DEFINITIONS
	def_bool RUSTC_VERSION >= 109800

config PAHOLE_VERSION
	int
	default "$(PAHOLE_VERSION)"
