https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101448

            Bug ID: 101448
           Summary: Use GCC 9.3.0 to build Ceph crimson-osd, linker failed
                    for "relocation truncated to fit" against symbol
           Product: gcc
           Version: 9.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kevin.zhao at linaro dot org
  Target Milestone: ---

Use GCC 9.3.0 binutils 2.34 to build Ceph, I experienced relocation truncated
to fit: R_AARCH64_CALL26
This binary after Linking usually around 2G size, I'm not sure if this is
related with the failure.
Btw, build with Clang 10 works well.

This is the regression point:
https://github.com/ceph/ceph/commit/80961c27d1adaa969e9ad3647d2fb9944b77904a#diff-195c71729a932038ce1774c2539247ffb0189fb3a7d10162403b06b26f2fdb54R264

After taking into this line, the Linking failed. The corresponding function in
seastar is:
https://github.com/scylladb/seastar/blob/master/src/core/prometheus.cc#L599

Log:
[462/462] Linking CXX executable bin/crimson-osd
FAILED: bin/crimson-osd
: && /usr/bin/ccache /usr/bin/c++  -g  -rdynamic
src/crimson/osd/CMakeFiles/crimson-osd.dir/backfill_state.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/ec_backend.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/heartbeat.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/main.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_meta.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/pg.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/pg_backend.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/pg_meta.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/replicated_backend.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/shard_services.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/object_context.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/ops_executer.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operation.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/client_request.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/client_request_common.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/compound_peering_request.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/internal_client_request.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/peering_event.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/pg_advance_map.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/replicated_request.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/background_recovery.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osd_operations/recovery_subrequest.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/pg_recovery.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/recovery_backend.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/replicated_recovery_backend.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/scheduler/scheduler.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/scheduler/mclock_scheduler.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/osdmap_gate.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/pg_map.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/pg_interval_interrupt_condition.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/objclass.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/objclass/class_api.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/ClassHandler.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/osd_op_util.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/OSDCap.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/PeeringState.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/PGPeeringEvent.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/PGStateUtils.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/MissingLoc.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/PGLog.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/recovery_types.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/__/__/osd/osd_perf_counters.cc.o
src/crimson/osd/CMakeFiles/crimson-osd.dir/watch.cc.o  -o bin/crimson-osd 
-Wl,-rpath,:::::::::::::::::::  lib/libcrimson-admin.a  lib/libcrimson-common.a
 lib/libcrimson-os.a  lib/libcrimson.a  /usr/lib/aarch64-linux-gnu/libfmt.a 
lib/libdmclock.a  lib/libcrimson-cyanstore.a  lib/libcrimson-os.a 
lib/libcrimson-cyanstore.a  lib/libcrimson-alienstore.a  lib/libkv.a 
/usr/lib/aarch64-linux-gnu/libleveldb.so  src/rocksdb/librocksdb.a 
/usr/lib/aarch64-linux-gnu/libsnappy.so  /usr/lib/aarch64-linux-gnu/liblz4.so 
/usr/lib/aarch64-linux-gnu/libz.so  lib/libheap_profiler.a 
lib/libcrimson-alien-common.a  /usr/lib/aarch64-linux-gnu/libblkid.so 
/usr/lib/aarch64-linux-gnu/libudev.so  lib/libblk.a 
/usr/lib/aarch64-linux-gnu/libaio.so  ../src/spdk/build/lib/libspdk_lvol.a 
../src/spdk/build/lib/libspdk_env_dpdk.a  -Wl,--whole-archive
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_bus_pci.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_eal.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_kvargs.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_mbuf.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_mempool.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_mempool_ring.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_pci.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_ring.a
/home/ubuntu/ceph-gcc/ceph/build/src/dpdk/lib/librte_telemetry.a
-Wl,--no-whole-archive  -Wl,-lnuma -Wl,-lpthread,-ldl  -lrt 
../src/spdk/build/lib/libspdk_sock.a  ../src/spdk/build/lib/libspdk_nvmf.a 
../src/spdk/build/lib/libspdk_bdev.a  ../src/spdk/build/lib/libspdk_nvme.a 
../src/spdk/build/lib/libspdk_conf.a  ../src/spdk/build/lib/libspdk_thread.a 
../src/spdk/build/lib/libspdk_trace.a  ../src/spdk/build/lib/libspdk_notify.a 
../src/spdk/build/lib/libspdk_accel.a 
../src/spdk/build/lib/libspdk_event_accel.a 
../src/spdk/build/lib/libspdk_blob.a  ../src/spdk/build/lib/libspdk_vmd.a 
../src/spdk/build/lib/libspdk_event_vmd.a 
../src/spdk/build/lib/libspdk_event_bdev.a 
../src/spdk/build/lib/libspdk_sock_posix.a 
../src/spdk/build/lib/libspdk_event_sock.a 
../src/spdk/build/lib/libspdk_event.a  ../src/spdk/build/lib/libspdk_rpc.a 
../src/spdk/build/lib/libspdk_jsonrpc.a  ../src/spdk/build/lib/libspdk_json.a 
../src/spdk/build/lib/libspdk_util.a  /usr/lib/aarch64-linux-gnu/libuuid.so 
../src/spdk/build/lib/libspdk_log.a  src/liburing/src/liburing.a 
lib/libcrimson-seastore.a  lib/libcrimson.a  lib/libcrimson-common.a 
lib/libcrc32.a  lib/libarch.a  boost/lib/libboost_iostreams.a 
boost/lib/libboost_regex.a  boost/lib/libboost_random.a  lib/libjson_spirit.a 
lib/libcommon_utf8.a  /usr/lib/aarch64-linux-gnu/libz.so 
/usr/lib/aarch64-linux-gnu/libcrypto.so  lib/libseastar.a 
/usr/lib/aarch64-linux-gnu/libfmt.a  boost/lib/libboost_program_options.a 
boost/lib/libboost_thread.a  boost/lib/libboost_chrono.a 
boost/lib/libboost_system.a  boost/lib/libboost_date_time.a 
boost/lib/libboost_atomic.a  /usr/lib/aarch64-linux-gnu/libcares.so 
/usr/lib/aarch64-linux-gnu/libcryptopp.so  /usr/lib/aarch64-linux-gnu/liblz4.so
 -ldl  /usr/lib/aarch64-linux-gnu/libgnutls.so  -latomic 
/usr/lib/aarch64-linux-gnu/libsctp.so 
/usr/lib/aarch64-linux-gnu/libprotobuf.so  -lrt 
/usr/lib/aarch64-linux-gnu/libyaml-cpp.so  -fsanitize=address 
-fsanitize=undefined  -fno-sanitize=vptr  /usr/lib/aarch64-linux-gnu/libnuma.so
 -lpthread && :
boost/lib/libboost_program_options.a(cmdline.o): in function
`boost::program_options::invalid_syntax::get_template[abi:cxx11](boost::program_options::invalid_syntax::kind_t)':
cmdline.cpp:(.text+0x70): relocation truncated to fit: R_AARCH64_CALL26 against
symbol `strlen' defined in .text section in
/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so
cmdline.cpp:(.text+0xa4): relocation truncated to fit: R_AARCH64_CALL26 against
symbol `memcpy' defined in .text section in
/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so
cmdline.cpp:(.text+0x14c): relocation truncated to fit: R_AARCH64_CALL26
against symbol `__stack_chk_fail@@GLIBC_2.17' defined in .text section in
/lib/aarch64-linux-gnu/libc.so.6
boost/lib/libboost_program_options.a(cmdline.o): in function
`boost::program_options::detail::cmdline::style(int)':
cmdline.cpp:(.text+0x1b0): relocation truncated to fit: R_AARCH64_CALL26
against symbol `strlen' defined in .text section in
/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so
cmdline.cpp:(.text+0x1e4): relocation truncated to fit: R_AARCH64_CALL26
against symbol `memcpy' defined in .text section in
/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so
cmdline.cpp:(.text+0x200): relocation truncated to fit: R_AARCH64_CALL26
against symbol `std::logic_error::logic_error(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)@@GLIBCXX_3.4.21' defined
in .text section in /usr/lib/gcc/aarch64-linux-gnu/9/libstdc++.so
cmdline.cpp:(.text+0x214): relocation truncated to fit: R_AARCH64_CALL26
against symbol `__cxa_allocate_exception@@CXXABI_1.3' defined in .text section
in /usr/lib/gcc/aarch64-linux-gnu/9/libstdc++.so
cmdline.cpp:(.text+0x230): relocation truncated to fit: R_AARCH64_CALL26
against symbol `std::logic_error::logic_error(std::logic_error
const&)@@GLIBCXX_3.4.21' defined in .text section in
/usr/lib/gcc/aarch64-linux-gnu/9/libstdc++.so
cmdline.cpp:(.text+0x274): relocation truncated to fit: R_AARCH64_CALL26
against symbol `__cxa_throw' defined in .text section in
/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so
cmdline.cpp:(.text+0x2d4): relocation truncated to fit: R_AARCH64_CALL26
against symbol `__stack_chk_fail@@GLIBC_2.17' defined in .text section in
/lib/aarch64-linux-gnu/libc.so.6
cmdline.cpp:(.text+0x2fc): additional relocation overflows omitted from the
output
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Reply via email to