Project

General

Profile

Actions

Bug #56492

open

undefined reference to "__atomic_load_16" on s390x

Added by Ken Dreyer almost 2 years ago. Updated over 1 year ago.

Status:
Pending Backport
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
backport_processed
Backport:
quincy
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

On s390x, I get a build failure related to atomics.

[ 42%] Linking CXX executable ../../bin/ceph-bluestore-tool
cd /builddir/build/BUILD/ceph-17.2.1/redhat-linux-build/src/os && /usr/bin/cmake -E cmake_link_script CMakeFiles/ceph-bluestore-tool.dir/link.txt --verbose=1
/usr/bin/c++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=z14 -mtune=z15 -fasynchronous-unwind-tables -fstack-clash-protection -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -rdynamic -pie CMakeFiles/ceph-bluestore-tool.dir/bluestore/bluestore_tool.cc.o -o ../../bin/ceph-bluestore-tool  -Wl,-rpath,/builddir/build/BUILD/ceph-17.2.1/redhat-linux-build/lib: ../../lib/libos.a ../../lib/libglobal.a ../../lib/libblk.a /lib64/libaio.so ../../../src/liburing/src/liburing.a ../../lib/libkv.a ../../lib/libheap_profiler.a /lib64/libtcmalloc.so ../rocksdb/librocksdb.a /lib64/libsnappy.so /usr/lib64/liblz4.so /usr/lib64/libz.so /usr/lib64/libfuse.so ../../lib/libceph-common.so.2 ../../lib/libjson_spirit.a ../../lib/libcommon_utf8.a ../../lib/liberasure_code.a ../../lib/libcrc32.a ../../lib/libarch.a ../../boost/lib/libboost_thread.a ../../boost/lib/libboost_chrono.a ../../boost/lib/libboost_atomic.a ../../boost/lib/libboost_system.a ../../boost/lib/libboost_random.a ../../boost/lib/libboost_program_options.a ../../boost/lib/libboost_date_time.a ../../boost/lib/libboost_iostreams.a ../../boost/lib/libboost_regex.a /usr/lib64/libblkid.so /usr/lib64/libcrypto.so /usr/lib64/libudev.so /usr/lib64/libibverbs.so /usr/lib64/librdmacm.so /usr/lib64/libz.so -ldl /usr/lib64/librt.a -lresolv 
make[2]: Leaving directory '/builddir/build/BUILD/ceph-17.2.1/redhat-linux-build'
/usr/bin/ld: /tmp/ccrFZZvJ.ltrans64.ltrans.o: in function `boost::lockfree::queue<void*>::~queue()':
/usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /tmp/ccrFZZvJ.ltrans64.ltrans.o: in function `bool boost::lockfree::queue<void*>::pop<void*>(void*&)':
/usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:323: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:323: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /usr/include/c++/11/atomic:355: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /tmp/ccrFZZvJ.ltrans64.ltrans.o: in function `HugePagePoolOfPools::from_desc(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:323: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /tmp/ccrFZZvJ.ltrans72.ltrans.o: in function `bool boost::lockfree::queue<void*>::do_push<false>(void* const&) [clone .isra.0]':
/usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:323: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:271: undefined reference to `__atomic_store_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:285: undefined reference to `__atomic_load_16'
/usr/bin/ld: /usr/include/c++/11/atomic:355: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /usr/include/c++/11/atomic:323: undefined reference to `__atomic_compare_exchange_16'
/usr/bin/ld: /usr/include/c++/11/atomic:355: undefined reference to `__atomic_compare_exchange_16'
collect2: error: ld returned 1 exit status
make[2]: *** [src/os/CMakeFiles/ceph-bluestore-tool.dir/build.make:132: bin/ceph-bluestore-tool] Error 1
make[1]: *** [CMakeFiles/Makefile2:6990: src/os/CMakeFiles/ceph-bluestore-tool.dir/all] Error 2

I do note that HAVE_CXX11_ATOMIC is different between pacific and quincy:

v16.2.8 on RHEL 9:

-- Performing Test HAVE_CXX11_ATOMIC
-- Performing Test HAVE_CXX11_ATOMIC - Failed
-- Performing Test HAVE_LIBATOMIC
-- Performing Test HAVE_LIBATOMIC - Success


v17.2.1 on RHEL 9:
-- Performing Test HAVE_CXX11_ATOMIC
-- Performing Test HAVE_CXX11_ATOMIC - Success

Possibly a problem with this change? https://github.com/ceph/ceph/pull/44264 - EDIT: nevermind, that is in main, not in v17.2.1.


Related issues 2 (1 open1 closed)

Is duplicate of devops - Bug #54514: build: LTO can cause false positives in cmake tests resulting in build failuresPending BackportKen Dreyer

Actions
Copied to devops - Backport #57684: quincy: undefined reference to "__atomic_load_16" on s390xDuplicateJustin CaratzasActions
Actions

Also available in: Atom PDF