Open
Description
Describe the bug
SRS server doesn't compile on respberrypi 4B Debian 10
Version
Newest git clone
To Reproduce
/usr/bin/ld: core.cpp:(.text+0x135dc): undefined reference to `__atomic_load_8'
root@rpitx:/home/pi/srs/trunk# make
Build the SRS server, JOBS= --jobs=4, FORCE_MAKE_JOBS=YES
make --jobs=4 -f ./objs/Makefile srs
make[1]: Entering directory '/home/pi/srs/trunk'
g++ -o ./objs/srs ./objs/src/core/srs_core.o ./objs/src/core/srs_core_version.o ./objs/src/core/srs_core_version5.o ./objs/src/core/srs_core_autofree.o ./objs/src/core/srs_core_performance.o ./objs/src/core/srs_core_time.o ./objs/src/core/srs_core_platform.o ./objs/src/kernel/srs_kernel_error.o ./objs/src/kernel/srs_kernel_log.o ./objs/src/kernel/srs_kernel_buffer.o ./objs/src/kernel/srs_kernel_utility.o ./objs/src/kernel/srs_kernel_flv.o ./objs/src/kernel/srs_kernel_codec.o ./objs/src/kernel/srs_kernel_io.o ./objs/src/kernel/srs_kernel_consts.o ./objs/src/kernel/srs_kernel_aac.o ./objs/src/kernel/srs_kernel_mp3.o ./objs/src/kernel/srs_kernel_ts.o ./objs/src/kernel/srs_kernel_ps.o ./objs/src/kernel/srs_kernel_stream.o ./objs/src/kernel/srs_kernel_balance.o ./objs/src/kernel/srs_kernel_mp4.o ./objs/src/kernel/srs_kernel_file.o ./objs/src/kernel/srs_kernel_kbps.o ./objs/src/kernel/srs_kernel_rtc_rtp.o ./objs/src/kernel/srs_kernel_rtc_rtcp.o ./objs/src/protocol/srs_protocol_amf0.o ./objs/src/protocol/srs_protocol_io.o ./objs/src/protocol/srs_protocol_conn.o ./objs/src/protocol/srs_protocol_rtmp_handshake.o ./objs/src/protocol/srs_protocol_rtmp_stack.o ./objs/src/protocol/srs_protocol_utility.o ./objs/src/protocol/srs_protocol_rtmp_msg_array.o ./objs/src/protocol/srs_protocol_stream.o ./objs/src/protocol/srs_protocol_raw_avc.o ./objs/src/protocol/srs_protocol_http_stack.o ./objs/src/protocol/srs_protocol_kbps.o ./objs/src/protocol/srs_protocol_json.o ./objs/src/protocol/srs_protocol_format.o ./objs/src/protocol/srs_protocol_log.o ./objs/src/protocol/srs_protocol_st.o ./objs/src/protocol/srs_protocol_http_client.o ./objs/src/protocol/srs_protocol_http_conn.o ./objs/src/protocol/srs_protocol_rtmp_conn.o ./objs/src/protocol/srs_protocol_protobuf.o ./objs/src/protocol/srs_protocol_srt.o ./objs/src/protocol/srs_protocol_rtc_stun.o ./objs/src/app/srs_app_server.o ./objs/src/app/srs_app_conn.o ./objs/src/app/srs_app_rtmp_conn.o ./objs/src/app/srs_app_source.o ./objs/src/app/srs_app_refer.o ./objs/src/app/srs_app_hls.o ./objs/src/app/srs_app_forward.o ./objs/src/app/srs_app_encoder.o ./objs/src/app/srs_app_http_stream.o ./objs/src/app/srs_app_st.o ./objs/src/app/srs_app_log.o ./objs/src/app/srs_app_config.o ./objs/src/app/srs_app_stream_bridge.o ./objs/src/app/srs_app_pithy_print.o ./objs/src/app/srs_app_reload.o ./objs/src/app/srs_app_http_api.o ./objs/src/app/srs_app_http_conn.o ./objs/src/app/srs_app_http_hooks.o ./objs/src/app/srs_app_ingest.o ./objs/src/app/srs_app_ffmpeg.o ./objs/src/app/srs_app_utility.o ./objs/src/app/srs_app_edge.o ./objs/src/app/srs_app_heartbeat.o ./objs/src/app/srs_app_empty.o ./objs/src/app/srs_app_http_client.o ./objs/src/app/srs_app_http_static.o ./objs/src/app/srs_app_recv_thread.o ./objs/src/app/srs_app_security.o ./objs/src/app/srs_app_statistic.o ./objs/src/app/srs_app_hds.o ./objs/src/app/srs_app_mpegts_udp.o ./objs/src/app/srs_app_listener.o ./objs/src/app/srs_app_async_call.o ./objs/src/app/srs_app_caster_flv.o ./objs/src/app/srs_app_latest_version.o ./objs/src/app/srs_app_uuid.o ./objs/src/app/srs_app_process.o ./objs/src/app/srs_app_ng_exec.o ./objs/src/app/srs_app_hourglass.o ./objs/src/app/srs_app_dash.o ./objs/src/app/srs_app_fragment.o ./objs/src/app/srs_app_dvr.o ./objs/src/app/srs_app_coworkers.o ./objs/src/app/srs_app_hybrid.o ./objs/src/app/srs_app_threads.o ./objs/src/app/srs_app_srt_server.o ./objs/src/app/srs_app_srt_listener.o ./objs/src/app/srs_app_srt_conn.o ./objs/src/app/srs_app_srt_utility.o ./objs/src/app/srs_app_srt_source.o ./objs/src/app/srs_app_rtc_conn.o ./objs/src/app/srs_app_rtc_dtls.o ./objs/src/app/srs_app_rtc_sdp.o ./objs/src/app/srs_app_rtc_network.o ./objs/src/app/srs_app_rtc_queue.o ./objs/src/app/srs_app_rtc_server.o ./objs/src/app/srs_app_rtc_source.o ./objs/src/app/srs_app_rtc_api.o ./objs/src/app/srs_app_rtc_codec.o ./objs/src/main/srs_main_server.o ./objs/st/libst.a ./objs/openssl/lib/libssl.a ./objs/openssl/lib/libcrypto.a ./objs/srtp2/lib/libsrtp2.a ./objs/ffmpeg/lib/libavcodec.a ./objs/ffmpeg/lib/libswresample.a ./objs/ffmpeg/lib/libavutil.a ./objs/opus/lib/libopus.a ./objs/srt/lib/libsrt.a -ldl -lpthread -lrt -rdynamic
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::sendCtrl(srt::UDTMessageType, int const*, void*, int) [clone .constprop.448]':
core.cpp:(.text+0x23c): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::construct()':
core.cpp:(.text+0x3b4): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::open()':
core.cpp:(.text+0x8bc): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x900): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x940): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o):core.cpp:(.text+0x96c): more undefined references to `__atomic_store_8' follow
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::bstats(CBytePerfMon*, bool, bool)':
core.cpp:(.text+0x29ec): undefined reference to `__atomic_load_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::checkExpTimer(srt::sync::TimePoint<srt::sync::steady_clock> const&, int)':
core.cpp:(.text+0x39f0): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x3a18): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x3b60): undefined reference to `__atomic_load_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::updateCC(srt::ETransmissionEvent, srt::EventVariant)':
core.cpp:(.text+0xa8b0): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::setupCC()':
core.cpp:(.text+0xb780): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0xb7c0): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0xb7fc): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0xb824): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o):core.cpp:(.text+0xca2c): more undefined references to `__atomic_store_8' follow
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::checkACKTimer(srt::sync::TimePoint<srt::sync::steady_clock> const&)':
core.cpp:(.text+0xcf64): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0xd068): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::checkNAKTimer(srt::sync::TimePoint<srt::sync::steady_clock> const&) [clone .part.288]':
core.cpp:(.text+0xd168): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0xd1e4): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::checkTimers()':
core.cpp:(.text+0xd32c): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0xd354): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0xd398): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0xd4fc): undefined reference to `__atomic_load_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::packData(srt::CPacket&, srt::sync::TimePoint<srt::sync::steady_clock>&, srt::sockaddr_any&)':
core.cpp:(.text+0x13484): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x135dc): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x13604): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x1361c): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x13704): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x13738): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x137d4): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x137fc): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x1382c): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x1384c): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::processData(srt::CUnit*)':
core.cpp:(.text+0x181d4): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x1898c): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::processConnectResponse(srt::CPacket const&, srt::CUDTException*)':
core.cpp:(.text+0x1ce3c): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o):core.cpp:(.text+0x1cfbc): more undefined references to `__atomic_store_8' follow
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::startConnect(srt::sockaddr_any const&, int)':
core.cpp:(.text+0x1eaa0): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x1eb00): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::processCtrlHS(srt::CPacket const&)':
core.cpp:(.text+0x1ff14): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::CUDT::processCtrl(srt::CPacket const&)':
core.cpp:(.text+0x2000c): undefined reference to `__atomic_store_8'
/usr/bin/ld: core.cpp:(.text+0x201ac): undefined reference to `__atomic_load_8'
/usr/bin/ld: core.cpp:(.text+0x20208): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(core.cpp.o): in function `srt::sync::AtomicClock<srt::sync::steady_clock>::operator=(srt::sync::TimePoint<srt::sync::steady_clock> const&)':
core.cpp:(.text._ZN3srt4sync11AtomicClockINS0_12steady_clockEEaSERKNS0_9TimePointIS2_EE[_ZN3srt4sync11AtomicClockINS0_12steady_clockEEaSERKNS0_9TimePointIS2_EE]+0x24): undefined reference to `__atomic_store_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(queue.cpp.o): in function `srt::CRendezvousQueue::updateConnStatus(srt::EReadStatus, srt::EConnectStatus, srt::CUnit*)':
queue.cpp:(.text+0x346c): undefined reference to `__atomic_load_8'
/usr/bin/ld: ./objs/srt/lib/libsrt.a(queue.cpp.o): in function `srt::CRendezvousQueue::qualifyToHandle(srt::EReadStatus, srt::EConnectStatus, int, std::vector<srt::CRendezvousQueue::LinkStatusInfo, std::allocator<srt::CRendezvousQueue::LinkStatusInfo> >&, std::vector<srt::CRendezvousQueue::LinkStatusInfo, std::allocator<srt::CRendezvousQueue::LinkStatusInfo> >&)':
queue.cpp:(.text+0x3e8c): undefined reference to `__atomic_load_8'
collect2: error: ld returned 1 exit status
make[1]: *** [objs/Makefile:756: objs/srs] Error 1
make[1]: Leaving directory '/home/pi/srs/trunk'
make: *** [Makefile:98: server] Error 2