| 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 | |