From 96ec18730b0b707a07a262fd9541d6b2a11871cb Mon Sep 17 00:00:00 2001 From: Brian Neradt Date: Tue, 10 Jan 2023 19:48:39 +0000 Subject: [PATCH] Fix test_jsonrpcserver library ordering link issue This addresses the following link error that Debian based builds were experiences with the `make check` target: root@4a3eeaf3152e:/var/tmp/trafficserver/mgmt/rpc# make V=1 test_jsonrpcserver /bin/bash ../../libtool --tag=CXX --mode=link ccache c++ -std=c++17 -g -pipe -Wall -Wextra -Wno-ignored-qualifiers -Wno-unused-parameter -Wno-format-truncation -Wno-cast-function-type -Wno-stringop-overflow -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing -Wno-invalid-offsetof -Wno-noexcept-type -Wsuggest-override -mcx16 -rdynamic -Wl,--as-needed -o test_jsonrpcserver server/unit_tests/test_jsonrpcserver-unit_test_main.o test_jsonrpcserver-IPCSocketClient.o server/unit_tests/test_jsonrpcserver-test_rpcserver.o libjsonrpc_protocol.la libjsonrpc_server.la ../../src/tscpp/util/libtscpputil.la ../../src/records/librecords_p.a ../../src/tscore/libtscore.la ../../iocore/eventsystem/libinkevent.a ../../src/records/librecords_p.a ../../iocore/eventsystem/libinkevent.a ../../src/tscore/libtscore.la ../../mgmt/libmgmt_p.la ../../proxy/shared/libUglyLogStubs.a -lyamlcpp -lhwloc -lpthread -ldl libtool: link: ccache c++ -std=c++17 -g -pipe -Wall -Wextra -Wno-ignored-qualifiers -Wno-unused-parameter -Wno-format-truncation -Wno-cast-function-type -Wno-stringop-overflow -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing -Wno-invalid-offsetof -Wno-noexcept-type -Wsuggest-override -mcx16 -rdynamic -Wl,--as-needed -o .libs/test_jsonrpcserver server/unit_tests/test_jsonrpcserver-unit_test_main.o test_jsonrpcserver-IPCSocketClient.o server/unit_tests/test_jsonrpcserver-test_rpcserver.o ./.libs/libjsonrpc_protocol.a ./.libs/libjsonrpc_server.a ../../src/tscpp/util/.libs/libtscpputil.so ../../src/records/librecords_p.a ../../iocore/eventsystem/libinkevent.a ../../src/tscore/.libs/libtscore.so ../../mgmt/.libs/libmgmt_p.a ../../proxy/shared/libUglyLogStubs.a /var/tmp/trafficserver/lib/yamlcpp/.libs/libyamlcpp.a -lhwloc -lpthread -ldl -Wl,-rpath -Wl,/var/tmp/ts_build/lib /usr/bin/ld: ../../iocore/eventsystem/libinkevent.a(EventSystem.o): undefined reference to symbol '_ZN2ts13svtoi_convertE' /usr/bin/ld: ../../src/tscpp/util/.libs/libtscpputil.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [Makefile:1216: test_jsonrpcserver] Error 1 Note that libinkevent.a has a dependency upon ts::svtoi_convert. This is provided by libtscpputil.la, so it must come later in the library order when provided to the linker. --- mgmt/rpc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt/rpc/Makefile.am b/mgmt/rpc/Makefile.am index c606100be44..d4b12b45649 100644 --- a/mgmt/rpc/Makefile.am +++ b/mgmt/rpc/Makefile.am @@ -114,12 +114,12 @@ test_jsonrpcserver_SOURCES = \ test_jsonrpcserver_LDADD = \ libjsonrpc_protocol.la \ libjsonrpc_server.la \ - $(top_builddir)/src/tscpp/util/libtscpputil.la \ $(top_builddir)/src/records/librecords_p.a \ $(top_builddir)/src/tscore/libtscore.la \ $(top_builddir)/iocore/eventsystem/libinkevent.a \ $(top_builddir)/src/records/librecords_p.a \ $(top_builddir)/iocore/eventsystem/libinkevent.a \ + $(top_builddir)/src/tscpp/util/libtscpputil.la \ $(top_builddir)/src/tscore/libtscore.la \ $(top_builddir)/mgmt/libmgmt_p.la \ $(top_builddir)/proxy/shared/libUglyLogStubs.a \