[Debian-med-packaging] Bug#1016263: xenium: FTBFS: atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]

Lucas Nussbaum lucas at debian.org
Fri Jul 29 17:26:19 BST 2022


Source: xenium
Version: 0.0.2+ds-6
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20220728 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> /usr/bin/c++ -DDEBUG -I/<<PKGBUILDDIR>>/. -isystem /usr/src/googletest/googletest -isystem /usr/src/googletest/googletest/include -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fsanitize=thread -Wall -Wextra -Werror -Wno-error=cpp -std=gnu++17 -MD -MT CMakeFiles/gtest.dir/test/reclamation/generic_epoch_based_test.cpp.o -MF CMakeFiles/gtest.dir/test/reclamation/generic_epoch_based_test.cpp.o.d -o CMakeFiles/gtest.dir/test/reclamation/generic_epoch_based_test.cpp.o -c /<<PKGBUILDDIR>>/test/reclamation/generic_epoch_based_test.cpp
> In file included from /usr/include/c++/12/atomic:41,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/detail/concurrent_ptr.hpp:11,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/lock_free_ref_count.hpp:9,
>                  from /<<PKGBUILDDIR>>/test/harris_michael_list_based_set_test.cpp:1:
> In function ‘void std::atomic_thread_fence(memory_order)’,
>     inlined from ‘bool xenium::reclamation::quiescent_state_based::thread_data::try_update_epoch(unsigned int, unsigned int)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/quiescent_state_based.hpp:129:33:
> /usr/include/c++/12/bits/atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
>   133 |   { __atomic_thread_fence(int(__m)); }
>       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> In file included from /usr/include/c++/12/atomic:41,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/detail/concurrent_ptr.hpp:11,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/hazard_pointer.hpp:9,
>                  from /<<PKGBUILDDIR>>/test/kirsch_kfifo_queue_test.cpp:1:
> In function ‘void std::atomic_thread_fence(memory_order)’,
>     inlined from ‘bool xenium::reclamation::quiescent_state_based::thread_data::try_update_epoch(unsigned int, unsigned int)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/quiescent_state_based.hpp:129:33:
> /usr/include/c++/12/bits/atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
>   133 |   { __atomic_thread_fence(int(__m)); }
>       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_from_prev_list(marked_ptr&, marked_ptr, marked_ptr&)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:307:25,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:155:49,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_or_skip_marked_block(marked_ptr&, marked_ptr&, marked_ptr, xenium::reclamation::stamp_it::stamp_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:485:24,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_from_prev_list(marked_ptr&, marked_ptr, marked_ptr&)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:361:40,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:155:49,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_or_skip_marked_block(marked_ptr&, marked_ptr&, marked_ptr, xenium::reclamation::stamp_it::stamp_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:485:24,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_order_queue::remove_from_next_list(marked_ptr, marked_ptr, marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:448:40,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:157:30,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_from_prev_list(marked_ptr&, marked_ptr, marked_ptr&)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:307:25,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:155:49,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_or_skip_marked_block(marked_ptr&, marked_ptr&, marked_ptr, xenium::reclamation::stamp_it::stamp_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:485:24,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_from_prev_list(marked_ptr&, marked_ptr, marked_ptr&)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:361:40,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:155:49,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_or_skip_marked_block(marked_ptr&, marked_ptr&, marked_ptr, xenium::reclamation::stamp_it::stamp_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:485:24,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_order_queue::remove_from_next_list(marked_ptr, marked_ptr, marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:448:40,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:157:30,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> [ 70%] Building CXX object CMakeFiles/gtest.dir/test/reclamation/hazard_eras_test.cpp.o
> /usr/bin/c++ -DDEBUG -I/<<PKGBUILDDIR>>/. -isystem /usr/src/googletest/googletest -isystem /usr/src/googletest/googletest/include -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fsanitize=thread -Wall -Wextra -Werror -Wno-error=cpp -std=gnu++17 -MD -MT CMakeFiles/gtest.dir/test/reclamation/hazard_eras_test.cpp.o -MF CMakeFiles/gtest.dir/test/reclamation/hazard_eras_test.cpp.o.d -o CMakeFiles/gtest.dir/test/reclamation/hazard_eras_test.cpp.o -c /<<PKGBUILDDIR>>/test/reclamation/hazard_eras_test.cpp
> In file included from /usr/include/c++/12/atomic:41,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/detail/concurrent_ptr.hpp:11,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/lock_free_ref_count.hpp:9,
>                  from /<<PKGBUILDDIR>>/test/michael_scott_queue_test.cpp:1:
> In function ‘void std::atomic_thread_fence(memory_order)’,
>     inlined from ‘bool xenium::reclamation::quiescent_state_based::thread_data::try_update_epoch(unsigned int, unsigned int)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/quiescent_state_based.hpp:129:33:
> /usr/include/c++/12/bits/atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
>   133 |   { __atomic_thread_fence(int(__m)); }
>       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> In file included from /usr/include/c++/12/atomic:41,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/detail/concurrent_ptr.hpp:11,
>                  from /<<PKGBUILDDIR>>/./xenium/reclamation/generic_epoch_based.hpp:9,
>                  from /<<PKGBUILDDIR>>/test/reclamation/generic_epoch_based_test.cpp:1:
> In function ‘void std::atomic_thread_fence(memory_order)’,
>     inlined from ‘xenium::reclamation::generic_epoch_based<Traits>::epoch_t xenium::reclamation::generic_epoch_based<Traits>::thread_data::update_global_epoch(xenium::reclamation::generic_epoch_based<Traits>::epoch_t, xenium::reclamation::generic_epoch_based<Traits>::epoch_t) [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:417:33,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::do_enter_critical() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:378:38:
> /usr/include/c++/12/bits/atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
>   133 |   { __atomic_thread_fence(int(__m)); }
>       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_from_prev_list(marked_ptr&, marked_ptr, marked_ptr&)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:307:25,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:155:49,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_or_skip_marked_block(marked_ptr&, marked_ptr&, marked_ptr, xenium::reclamation::stamp_it::stamp_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:485:24,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_from_prev_list(marked_ptr&, marked_ptr, marked_ptr&)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:361:40,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:155:49,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In member function ‘bool std::atomic<_Tp>::compare_exchange_weak(_Tp&, _Tp, std::memory_order, std::memory_order) [with _Tp = xenium::marked_ptr<xenium::reclamation::stamp_it::thread_control_block, 18>]’,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::mark_next(marked_ptr, size_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:563:46,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove_or_skip_marked_block(marked_ptr&, marked_ptr&, marked_ptr, xenium::reclamation::stamp_it::stamp_t)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:485:24,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_order_queue::remove_from_next_list(marked_ptr, marked_ptr, marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:448:40,
>     inlined from ‘bool xenium::reclamation::stamp_it::thread_order_queue::remove(marked_ptr)’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:157:30,
>     inlined from ‘void xenium::reclamation::stamp_it::thread_data::leave_region()’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/stamp_it.hpp:620:36:
> /usr/include/c++/12/atomic:325:41: error: failure memory model ‘memory_order_acquire’ cannot be stronger than success memory model ‘memory_order_relaxed’ for ‘bool __atomic_compare_exchange_8(volatile void*, void*, long unsigned int, bool, int, int)’ [-Werror=invalid-memory-model]
>   325 |         return __atomic_compare_exchange(std::__addressof(_M_i),
>       |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>   326 |                                          std::__addressof(__e),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   327 |                                          std::__addressof(__i),
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~
>   328 |                                          true, int(__s), int(__f));
>       |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/12/atomic:325:41: note: valid models are 'memory_order_relaxed'
> In function ‘void std::atomic_thread_fence(memory_order)’,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::set_critical_region_flag() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:337:31,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::enter_region() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:287:35,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::enter_critical() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:301:19,
>     inlined from ‘xenium::reclamation::generic_epoch_based<Traits>::guard_ptr<T, MarkedPtr>::guard_ptr(const MarkedPtr&) [with T = {anonymous}::Foo; MarkedPtr = xenium::marked_ptr<{anonymous}::Foo, 2, 16>; Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:141:39:
> /usr/include/c++/12/bits/atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
>   133 |   { __atomic_thread_fence(int(__m)); }
>       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> In function ‘void std::atomic_thread_fence(memory_order)’,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::set_critical_region_flag() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:337:31,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::enter_region() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:287:35,
>     inlined from ‘void xenium::reclamation::generic_epoch_based<Traits>::thread_data::enter_critical() [with Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:301:19,
>     inlined from ‘xenium::reclamation::generic_epoch_based<Traits>::guard_ptr<T, MarkedPtr>& xenium::reclamation::generic_epoch_based<Traits>::guard_ptr<T, MarkedPtr>::operator=(const xenium::reclamation::generic_epoch_based<Traits>::guard_ptr<T, MarkedPtr>&) [with T = {anonymous}::Foo; MarkedPtr = xenium::marked_ptr<{anonymous}::Foo, 2, 16>; Traits = xenium::reclamation::generic_epoch_based_traits<0, xenium::reclamation::scan::all_threads, xenium::reclamation::abandon::never, xenium::reclamation::region_extension::eager>]’ at /<<PKGBUILDDIR>>/./xenium/reclamation/impl/generic_epoch_based.hpp:169:39,
>     inlined from ‘virtual void {anonymous}::GenericEpochBased_copy_assignment_leads_to_shared_ownership_preventing_the_object_from_beeing_reclaimed_Test::TestBody()’ at /<<PKGBUILDDIR>>/test/reclamation/generic_epoch_based_test.cpp:139:9:
> /usr/include/c++/12/bits/atomic_base.h:133:26: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
>   133 |   { __atomic_thread_fence(int(__m)); }
>       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> cc1plus: all warnings being treated as errors
> make[4]: *** [CMakeFiles/gtest.dir/build.make:247: CMakeFiles/gtest.dir/test/reclamation/generic_epoch_based_test.cpp.o] Error 1


The full build log is available from:
http://qa-logs.debian.net/2022/07/28/xenium_0.0.2+ds-6_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20220728;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20220728&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.



More information about the Debian-med-packaging mailing list