circle icon indicating copy to clipboard operation
circle copied to clipboard

Compilation error in libstd 12.1 with circle

Open correaa opened this issue 2 years ago • 3 comments

After upgrading the version of libstd (I think), I get this error with circle 170. Same thing happens with circle 168.

cd /builds/correaa/boost-multi/build/test && /builds/correaa/boost-multi/build_latest/circle -DBOOST_TEST_DYN_LINK=1 -I/builds/correaa/boost-multi/include -isystem /usr/include -Werror -Wall -MD -MT test/CMakeFiles/allocator.cpp.x.dir/allocator.cpp.o -MF CMakeFiles/allocator.cpp.x.dir/allocator.cpp.o.d -o CMakeFiles/allocator.cpp.x.dir/allocator.cpp.o -c /builds/correaa/boost-multi/test/allocator.cpp
error: /usr/include/c++/12/bits/char_traits.h:289:28
... included from /usr/include/c++/12/string:40:10
... included from /usr/include/boost/test/utils/basic_cstring/bcs_char_traits.hpp:25:10
... included from /usr/include/boost/test/utils/basic_cstring/basic_cstring.hpp:21:10
... included from /usr/include/boost/test/detail/global_typedef.hpp:15:10
... included from /usr/include/boost/test/tree/observer.hpp:17:10
... included from /usr/include/boost/test/unit_test_log.hpp:18:10
... included from /usr/include/boost/test/tools/old/impl.hpp:19:10
... included from /usr/include/boost/test/test_tools.hpp:46:12
... included from /usr/include/boost/test/unit_test.hpp:18:10
... included from /builds/correaa/boost-multi/test/allocator.cpp:5:9
cannot convert prvalue bool to const void*
    __builtin_memcpy(&__c, __builtin_addressof(__a), 1); 

The problem happens in /usr/include/c++/12/bits/char_traits.h:289 full context: https://gitlab.com/correaa/boost-multi/-/jobs/2890405996#L695

correaa avatar Aug 16 '22 21:08 correaa

I get the same error on the same line when trying to compile sanity.cxx

./circle sanity.cxx
Hello printf at compile time
Hello cout at compile time
error: /usr/include/c++/12/bits/char_traits.h:289:28
... included from /usr/include/c++/12/ios:40:10
... included from /usr/include/c++/12/ostream:38:10
... included from /usr/include/c++/12/iostream:39:10
... included from sanity.cxx:2:10
cannot convert prvalue bool to const void*
    __builtin_memcpy(&__c, __builtin_addressof(__a), 1);

I have libstdc++-devel-12.1.1-1.fc36.x86_64 on Fedora 36

dmdmdm avatar Aug 24 '22 14:08 dmdmdm

looks like this is a duplicate of #124

lilly-lizard avatar Oct 07 '22 07:10 lilly-lizard

@dmdmdm yes, it is duplicate. In that thread there is also a solution which for me (Ubuntu 22.04) involved using these options:

circle -nostdinc -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/lib/gcc/x86_64-linux-gnu/11/include

correaa avatar Oct 10 '22 18:10 correaa