Building curl-7.84.0 for 64-bit RISC-V Linux using GCC 12.1.0 fails for me:
CCLD curl
ld: ../lib/.libs/libcurl.so: undefined reference to `__atomic_exchange_1'
This is because GCC 12 doesn't inline sub-word-sized atomic operations (although future versions may do), and the new code in easy_lock.h does an atomic exchange on a single-byte atomic_bool.
The proper fix would be to link with GCC's libatomic - maybe CURL_ATOMIC should check for this? Changing the type of curl_simple_lock to atomic_int also works as a workaround.
The text was updated successfully, but these errors were encountered:
Building curl-7.84.0 for 64-bit RISC-V Linux using GCC 12.1.0 fails for me:
This is because GCC 12 doesn't inline sub-word-sized atomic operations (although future versions may do), and the new code in
easy_lock.h
does an atomic exchange on a single-byteatomic_bool
.The proper fix would be to link with GCC's
libatomic
- maybeCURL_ATOMIC
should check for this? Changing the type ofcurl_simple_lock
toatomic_int
also works as a workaround.The text was updated successfully, but these errors were encountered: