[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <77D47E8C-5ECC-4B07-9A8E-C5E0F1E1EA80@zytor.com>
Date: Sat, 17 Jan 2026 21:19:57 -0800
From: "H. Peter Anvin" <hpa@...or.com>
To: kernel test robot <lkp@...el.com>, Thomas Gleixner <tglx@...nel.org>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>
CC: oe-kbuild-all@...ts.linux.dev, x86@...nel.org,
Chris Mason <chris.mason@...ionio.com>,
Thorsten Leemhuis <linux@...mhuis.info>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 2/3] x86/entry/vdso: fix filtering of vdso compiler flags
On January 17, 2026 6:17:20 PM PST, kernel test robot <lkp@...el.com> wrote:
>Hi Peter,
>
>First bad commit (maybe != root cause):
>
>kernel test robot noticed the following build errors:
>
>[auto build test ERROR on tip/master]
>[also build test ERROR on next-20260116]
>[cannot apply to tip/auto-latest linus/master v6.19-rc5]
>[If your patch is applied to the wrong git tree, kindly drop us a note.
>And when submitting patch, we suggest to use '--base' as documented in
>https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
>url: https://github.com/intel-lab-lkp/linux/commits/H-Peter-Anvin/x86-entry-vdso-update-the-object-paths-for-make-vdso_install/20260117-044522
>base: tip/master
>patch link: https://lore.kernel.org/r/20260116204057.386268-3-hpa%40zytor.com
>patch subject: [PATCH v2 2/3] x86/entry/vdso: fix filtering of vdso compiler flags
>config: x86_64-rhel-9.4-func (https://download.01.org/0day-ci/archive/20260118/202601180025.lLCHWiad-lkp@intel.com/config)
>compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
>reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260118/202601180025.lLCHWiad-lkp@intel.com/reproduce)
>
>If you fix the issue in a separate patch/commit (i.e. not just a new version of
>the same patch/commit), kindly add following tags
>| Reported-by: kernel test robot <lkp@...el.com>
>| Closes: https://lore.kernel.org/r/202601180025.lLCHWiad-lkp@intel.com/
>
>All errors (new ones prefixed by >>):
>
> In file included from include/linux/compiler_types.h:44,
> from <command-line>:
> include/linux/compiler-context-analysis.h: In function '_context_unsafe_alias':
>>> include/linux/compiler-context-analysis.h:237:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 237 | static inline void _context_unsafe_alias(void **p) { }
> | ^~~~~~
> In file included from include/linux/export.h:5,
> from include/linux/linkage.h:7,
> from arch/x86/include/asm/cache.h:5,
> from include/vdso/cache.h:5,
> from include/linux/cache.h:6,
> from include/linux/time.h:5,
> from arch/x86/entry/vdso/vdso64/../common/vclock_gettime.c:11,
> from arch/x86/entry/vdso/vdso64/vclock_gettime.c:1:
> include/linux/compiler.h: In function 'offset_to_ptr':
> include/linux/compiler.h:272:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 272 | {
> | ^
> In file included from include/asm-generic/rwonce.h:26,
> from ./arch/x86/include/generated/asm/rwonce.h:1,
> from include/linux/compiler.h:382:
> include/linux/kasan-checks.h: In function 'kasan_check_read':
> include/linux/kasan-checks.h:41:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 41 | {
> | ^
> include/linux/kasan-checks.h: In function 'kasan_check_write':
> include/linux/kasan-checks.h:45:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 45 | {
> | ^
> In file included from include/asm-generic/rwonce.h:27:
> include/linux/kcsan-checks.h: In function '__kcsan_check_access':
> include/linux/kcsan-checks.h:190:41: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 190 | int type) { }
> | ^~~
> include/linux/kcsan-checks.h: In function '__kcsan_mb':
> include/linux/kcsan-checks.h:192:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 192 | static inline void __kcsan_mb(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function '__kcsan_wmb':
> include/linux/kcsan-checks.h:193:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 193 | static inline void __kcsan_wmb(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function '__kcsan_rmb':
> include/linux/kcsan-checks.h:194:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 194 | static inline void __kcsan_rmb(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function '__kcsan_release':
> include/linux/kcsan-checks.h:195:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 195 | static inline void __kcsan_release(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_disable_current':
> include/linux/kcsan-checks.h:196:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 196 | static inline void kcsan_disable_current(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_enable_current':
> include/linux/kcsan-checks.h:197:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 197 | static inline void kcsan_enable_current(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_enable_current_nowarn':
> include/linux/kcsan-checks.h:198:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 198 | static inline void kcsan_enable_current_nowarn(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_nestable_atomic_begin':
> include/linux/kcsan-checks.h:199:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 199 | static inline void kcsan_nestable_atomic_begin(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_nestable_atomic_end':
> include/linux/kcsan-checks.h:200:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 200 | static inline void kcsan_nestable_atomic_end(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_flat_atomic_begin':
> include/linux/kcsan-checks.h:201:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 201 | static inline void kcsan_flat_atomic_begin(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_flat_atomic_end':
> include/linux/kcsan-checks.h:202:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 202 | static inline void kcsan_flat_atomic_end(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_atomic_next':
> include/linux/kcsan-checks.h:203:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 203 | static inline void kcsan_atomic_next(int n) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_set_access_mask':
> include/linux/kcsan-checks.h:204:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 204 | static inline void kcsan_set_access_mask(unsigned long mask) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_begin_scoped_access':
> include/linux/kcsan-checks.h:210:34: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 210 | struct kcsan_scoped_access *sa) { return sa; }
> | ^~~~~~~~~~~~~~~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_end_scoped_access':
> include/linux/kcsan-checks.h:211:51: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 211 | static inline void kcsan_end_scoped_access(struct kcsan_scoped_access *sa) { }
> | ^~~~~~~~~~~~~~~~~~~
> include/linux/kcsan-checks.h: In function 'kcsan_check_access':
> include/linux/kcsan-checks.h:230:39: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 230 | int type) { }
> | ^~~
> include/linux/kcsan-checks.h: In function '__kcsan_enable_current':
> include/linux/kcsan-checks.h:231:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 231 | static inline void __kcsan_enable_current(void) { }
> | ^~~~~~
> include/linux/kcsan-checks.h: In function '__kcsan_disable_current':
> include/linux/kcsan-checks.h:232:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
>--
> include/linux/find.h: In function 'find_first_bit':
> include/linux/find.h:207:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 207 | {
> | ^
> include/linux/find.h: In function 'find_nth_bit':
> include/linux/find.h:233:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 233 | {
> | ^
> include/linux/find.h: In function 'find_nth_and_bit':
> include/linux/find.h:259:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 259 | {
> | ^
> include/linux/find.h: In function 'find_nth_and_andnot_bit':
> include/linux/find.h:289:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 289 | {
> | ^
> include/linux/find.h: In function 'find_first_and_bit':
> include/linux/find.h:316:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 316 | {
> | ^
> include/linux/find.h: In function 'find_first_andnot_bit':
> include/linux/find.h:340:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 340 | {
> | ^
> include/linux/find.h: In function 'find_first_and_and_bit':
> include/linux/find.h:365:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 365 | {
> | ^
> include/linux/find.h: In function 'find_first_zero_bit':
> include/linux/find.h:386:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 386 | {
> | ^
> include/linux/find.h: In function 'find_last_bit':
> include/linux/find.h:407:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 407 | {
> | ^
> include/linux/find.h: In function 'find_next_and_bit_wrap':
> include/linux/find.h:432:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 432 | {
> | ^
> include/linux/find.h: In function 'find_next_bit_wrap':
> include/linux/find.h:454:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 454 | {
> | ^
> include/linux/find.h: In function '__for_each_wrap':
> include/linux/find.h:471:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 471 | {
> | ^
> include/linux/find.h: In function 'find_next_zero_bit_le':
> include/linux/find.h:511:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 511 | {
> | ^
> include/linux/find.h: In function 'find_next_bit_le':
> include/linux/find.h:517:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 517 | {
> | ^
> include/linux/find.h: In function 'find_first_zero_bit_le':
> include/linux/find.h:523:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 523 | {
> | ^
> In file included from include/linux/bitmap.h:13:
> include/linux/string.h: In function 'memdup_array_user':
> include/linux/string.h:33:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 33 | {
> | ^
> include/linux/string.h: In function 'vmemdup_array_user':
> include/linux/string.h:53:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 53 | {
> | ^
> include/linux/string.h: In function 'strstrip':
> include/linux/string.h:190:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 190 | {
> | ^
> include/linux/string.h: In function 'memset_l':
> include/linux/string.h:237:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 237 | {
> | ^
> include/linux/string.h: In function 'memset_p':
> include/linux/string.h:245:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 245 | {
> | ^
> include/linux/string.h: In function 'mem_is_zero':
> include/linux/string.h:295:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 295 | {
> | ^
> include/linux/string.h: In function '__free_argv_free':
> include/linux/string.h:316:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 316 | DEFINE_FREE(argv_free, char **, if (!IS_ERR_OR_NULL(_T)) argv_free(_T))
> | ^~~~~~~~~~~
> include/linux/string.h: In function 'memzero_explicit':
> include/linux/string.h:365:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 365 | {
> | ^
> include/linux/string.h: In function 'kbasename':
> include/linux/string.h:380:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 380 | {
> | ^
> In file included from include/linux/fortify-string.h:5,
> from include/linux/string.h:386:
> include/linux/bitfield.h: In function 'field_multiplier':
>>> include/linux/bitfield.h:202:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 202 | {
> | ^
> include/linux/bitfield.h: In function 'field_mask':
> include/linux/bitfield.h:208:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 208 | {
> | ^
> include/linux/bitfield.h: In function 'u8_encode_bits':
> include/linux/bitfield.h:237:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 237 | ____MAKE_OP(u8,u8,,)
> | ^~~~~~~~~~~
> include/linux/bitfield.h: In function 'u8_replace_bits':
> include/linux/bitfield.h:237:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u8p_replace_bits':
> include/linux/bitfield.h:237:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u8_get_bits':
> include/linux/bitfield.h:237:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le16_encode_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 238 | __MAKE_OP(16)
> | ^~~~~~~~~
> include/linux/bitfield.h: In function 'le16_replace_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le16p_replace_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le16_get_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be16_encode_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be16_replace_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be16p_replace_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be16_get_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u16_encode_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u16_replace_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u16p_replace_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u16_get_bits':
> include/linux/bitfield.h:238:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le32_encode_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 239 | __MAKE_OP(32)
> | ^~~~~~~~~
> include/linux/bitfield.h: In function 'le32_replace_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le32p_replace_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le32_get_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be32_encode_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be32_replace_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be32p_replace_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be32_get_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u32_encode_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u32_replace_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u32p_replace_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u32_get_bits':
> include/linux/bitfield.h:239:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le64_encode_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 240 | __MAKE_OP(64)
> | ^~~~~~~~~
> include/linux/bitfield.h: In function 'le64_replace_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le64p_replace_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'le64_get_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be64_encode_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be64_replace_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be64p_replace_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'be64_get_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u64_encode_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u64_replace_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u64p_replace_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/bitfield.h: In function 'u64_get_bits':
> include/linux/bitfield.h:240:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> include/linux/fortify-string.h: In function 'strncpy':
> include/linux/fortify-string.h:198:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
> 198 | {
> | ^
> include/linux/fortify-string.h: In function 'strnlen':
> include/linux/fortify-string.h:220:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
>..
>
>
>vim +237 include/linux/compiler-context-analysis.h
>
>3269701cb25662 Marco Elver 2025-12-19 221
>3269701cb25662 Marco Elver 2025-12-19 222 /**
>3269701cb25662 Marco Elver 2025-12-19 223 * context_unsafe_alias() - helper to insert a context lock "alias barrier"
>3269701cb25662 Marco Elver 2025-12-19 224 * @p: pointer aliasing a context lock or object containing context locks
>3269701cb25662 Marco Elver 2025-12-19 225 *
>3269701cb25662 Marco Elver 2025-12-19 226 * No-op function that acts as a "context lock alias barrier", where the
>3269701cb25662 Marco Elver 2025-12-19 227 * analysis rightfully detects that we're switching aliases, but the switch is
>3269701cb25662 Marco Elver 2025-12-19 228 * considered safe but beyond the analysis reasoning abilities.
>3269701cb25662 Marco Elver 2025-12-19 229 *
>3269701cb25662 Marco Elver 2025-12-19 230 * This should be inserted before the first use of such an alias.
>3269701cb25662 Marco Elver 2025-12-19 231 *
>3269701cb25662 Marco Elver 2025-12-19 232 * Implementation Note: The compiler ignores aliases that may be reassigned but
>3269701cb25662 Marco Elver 2025-12-19 233 * their value cannot be determined (e.g. when passing a non-const pointer to an
>3269701cb25662 Marco Elver 2025-12-19 234 * alias as a function argument).
>3269701cb25662 Marco Elver 2025-12-19 235 */
>3269701cb25662 Marco Elver 2025-12-19 236 #define context_unsafe_alias(p) _context_unsafe_alias((void **)&(p))
>3269701cb25662 Marco Elver 2025-12-19 @237 static inline void _context_unsafe_alias(void **p) { }
>3269701cb25662 Marco Elver 2025-12-19 238
>
For the record: already fixed.
Powered by blists - more mailing lists