https://bugs.kde.org/show_bug.cgi?id=443817

--- Comment #3 from alexfa...@yahoo.com ---
So I take out the code piece for libatomic detection to test directly. It
compiles with no error (which is meant to fail). 

unmatch2 /tmp # cat test.cpp 
#include <atomic>
std::atomic<int> x;
int main() {
return std::atomic_is_lock_free(&x);
}
unmatch2 /tmp # gcc -Wall test.cpp 
test.cpp: In function ‘int main()’:
test.cpp:4:10: warning: unused variable ‘i’ [-Wunused-variable]
    4 | uint64_t i = x.load(std::memory_order_relaxed);
      |          ^
test.cpp:5:6: warning: unused variable ‘b’ [-Wunused-variable]
    5 | bool b = x.is_lock_free();
      |      ^
"

I found this piece works from
https://github.com/WebKit/WebKit/blob/87d88025bf5a3089e68b4466a12dd1cb2584d557/Source/cmake/WebKitCompilerFlags.cmake#L282

unmatch2 /tmp # cat test2.cpp 
#include <atomic>
int main() {
std::atomic<bool> y (false);
std::atomic<uint64_t> x (0);
bool expected = true;
bool j = y.compare_exchange_weak(expected,false);
x++;
return 0;
}
unmatch2 /tmp # gcc test2.cpp 
/usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/../../../../riscv64-unknown-linux-gnu/bin/ld:
/tmp/.private/root/cc45pcng.o: in function `.L0 ':
test2.cpp:(.text._ZNSt6atomicIbE21compare_exchange_weakERbbSt12memory_order[_ZNSt6atomicIbE21compare_exchange_weakERbbSt12memory_order]+0xb2):
undefined reference to `__atomic_compare_exchange_1'
collect2: error: ld returned 1 exit status

My gcc version
Using built-in specs.
COLLECT_GCC=gcc    
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/riscv64-unknown-linux-gnu/11.2.0/lto-wrapper
Target: riscv64-unknown-linux-gnu     
Configured with:
/var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/configure
--host=riscv64-unknown-linux-gnu --
build=riscv64-unknown-linux-gnu --prefix=/usr
--bindir=/usr/riscv64-unknown-linux-gnu/gcc-bin/11.2.0 --includedir=/u
sr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/include
--datadir=/usr/share/gcc-data/riscv64-unknown-linux-gnu/11.2.0 -
-mandir=/usr/share/gcc-data/riscv64-unknown-linux-gnu/11.2.0/man
--infodir=/usr/share/gcc-data/riscv64-unknown-linux
-gnu/11.2.0/info
--with-gxx-include-dir=/usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/include/g++-v11
--with-python-
dir=/share/gcc-data/riscv64-unknown-linux-gnu/11.2.0/python
--enable-languages=c,c++,fortran --enable-obsolete --ena
ble-secureplt --disable-werror --with-system-zlib --enable-nls
--without-included-gettext --disable-libunwind-except
ions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/
--with-pkgversion='Gentoo 11.2.0 p1' --disable
-esp --enable-libstdcxx-time --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu --dis
able-multilib --disable-fixed-point --with-abi=lp64d --enable-libgomp
--disable-libssp --disable-libada --disable-sy
stemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv
--withou
t-zstd --enable-lto --withou
t-isl --disable-libsanitizer --enable-default-pie --enable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.2.0 (Gentoo 11.2.0 p1)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to