[lttng-dev] TSAN build broken on master branch

Ondřej Surý ondrej at sury.org
Thu Sep 21 14:34:48 EDT 2023


Hi,

I've updated to the latest HEAD and compilation with clang-16 and clang-17 and

./configure --enable-compiler-atomic-builtins --disable-legacy-mb

It fails with:

rculfhash.c:1189:2: error: address argument to atomic operation must be a pointer to integer ('typeof (node_next)' (aka 'struct cds_lfht_node **') invalid)
        uatomic_or_mo(node_next, REMOVED_FLAG, CMM_RELEASE);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/urcu/uatomic/builtins-generic.h:123:10: note: expanded from macro 'uatomic_or_mo'
                (void) __atomic_or_fetch(cmm_cast_volatile(addr), mask, \
                       ^                 ~~~~~~~~~~~~~~~~~~~~~~~
rculfhash.c:1440:3: error: address argument to atomic operation must be a pointer to integer ('typeof (fini_bucket_next)' (aka 'struct cds_lfht_node **') invalid)
                uatomic_or(fini_bucket_next, REMOVED_FLAG);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/urcu/uatomic/builtins-generic.h:130:2: note: expanded from macro 'uatomic_or'
        uatomic_or_mo(addr, mask, CMM_RELAXED)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/urcu/uatomic/builtins-generic.h:123:10: note: expanded from macro 'uatomic_or_mo'
                (void) __atomic_or_fetch(cmm_cast_volatile(addr), mask, \
                       ^                 ~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.

It works with gcc-12, so it seems that clang has stricter rules here.

Ondřej
--
Ondřej Surý (He/Him)
ondrej at sury.org



More information about the lttng-dev mailing list