mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
rfnoc: move chdr_ctrl_xport::make() out of header
GCC 16 eagerly instantiates std::_Sp_counted_ptr_inplace<chdr_ctrl_xport> in every TU that includes chdr_ctrl_xport.hpp with the inline make() definition. This causes the destructor to be referenced in TUs that do not link against chdr_ctrl_xport.cpp (e.g. client_zero_test), resulting in undefined reference linker errors. Fix by moving make() from the inline header definition into the .cpp file, so std::make_shared<chdr_ctrl_xport> is only instantiated where ~chdr_ctrl_xport() is also defined.
This commit is contained in:
parent
98d1a0aab8
commit
050c7e2dad
@ -49,18 +49,7 @@ public:
|
|||||||
size_t num_send_frames,
|
size_t num_send_frames,
|
||||||
size_t num_recv_frames,
|
size_t num_recv_frames,
|
||||||
size_t send_frame_size,
|
size_t send_frame_size,
|
||||||
disconnect_callback_t disconnect)
|
disconnect_callback_t disconnect);
|
||||||
{
|
|
||||||
return std::make_shared<chdr_ctrl_xport>(io_srv,
|
|
||||||
send_link,
|
|
||||||
recv_link,
|
|
||||||
pkt_factory,
|
|
||||||
my_epid,
|
|
||||||
num_send_frames,
|
|
||||||
num_recv_frames,
|
|
||||||
send_frame_size,
|
|
||||||
disconnect);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Make a chdr_ctrl_xport
|
* Make a chdr_ctrl_xport
|
||||||
|
|||||||
@ -13,6 +13,27 @@ using namespace uhd::rfnoc;
|
|||||||
using namespace uhd::rfnoc::chdr;
|
using namespace uhd::rfnoc::chdr;
|
||||||
using namespace uhd::transport;
|
using namespace uhd::transport;
|
||||||
|
|
||||||
|
chdr_ctrl_xport::sptr chdr_ctrl_xport::make(io_service::sptr io_srv,
|
||||||
|
send_link_if::sptr send_link,
|
||||||
|
recv_link_if::sptr recv_link,
|
||||||
|
const chdr::chdr_packet_factory& pkt_factory,
|
||||||
|
sep_id_t my_epid,
|
||||||
|
size_t num_send_frames,
|
||||||
|
size_t num_recv_frames,
|
||||||
|
size_t send_frame_size,
|
||||||
|
disconnect_callback_t disconnect)
|
||||||
|
{
|
||||||
|
return std::make_shared<chdr_ctrl_xport>(io_srv,
|
||||||
|
send_link,
|
||||||
|
recv_link,
|
||||||
|
pkt_factory,
|
||||||
|
my_epid,
|
||||||
|
num_send_frames,
|
||||||
|
num_recv_frames,
|
||||||
|
send_frame_size,
|
||||||
|
disconnect);
|
||||||
|
}
|
||||||
|
|
||||||
chdr_ctrl_xport::chdr_ctrl_xport(io_service::sptr io_srv,
|
chdr_ctrl_xport::chdr_ctrl_xport(io_service::sptr io_srv,
|
||||||
send_link_if::sptr send_link,
|
send_link_if::sptr send_link,
|
||||||
recv_link_if::sptr recv_link,
|
recv_link_if::sptr recv_link,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user