xref: /linux/include/linux/compiler-version.h (revision 48cfc5791d83b630fd90a1b64a15a6d09c186f99)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifdef  __LINUX_COMPILER_VERSION_H
4 #error "Please do not include <linux/compiler-version.h>. This is done by the build system."
5 #endif
6 #define __LINUX_COMPILER_VERSION_H
7 
8 /*
9  * This header exists to force full rebuild when the compiler is upgraded.
10  *
11  * When fixdep scans this, it will find this string "CONFIG_CC_VERSION_TEXT"
12  * and add dependency on include/config/CC_VERSION_TEXT, which is touched
13  * by Kconfig when the version string from the compiler changes.
14  */
15 
16 /* Additional tree-wide dependencies start here. */
17 
18 /*
19  * If any of the GCC plugins change, we need to rebuild everything that
20  * was built with them, as they may have changed their behavior and those
21  * behaviors may need to be synchronized across all translation units.
22  */
23 #ifdef GCC_PLUGINS
24 #include <generated/gcc-plugins.h>
25 #endif
26 
27 /*
28  * If the randstruct seed itself changes (whether for GCC plugins or
29  * Clang), the entire tree needs to be rebuilt since the randomization of
30  * structures may change between compilation units if not.
31  */
32 #ifdef RANDSTRUCT
33 #include <generated/randstruct_hash.h>
34 #endif
35 
36 /*
37  * If any external changes affect Clang's integer wrapping sanitizer
38  * behavior, a full rebuild is needed as the coverage for wrapping types
39  * may have changed, which may impact the expected behaviors that should
40  * not differ between compilation units.
41  */
42 #ifdef INTEGER_WRAP
43 #include <generated/integer-wrap.h>
44 #endif
45