apache / trafficserver

Apache Traffic Server™ is a fast, scalable and extensible HTTP/1.1 and HTTP/2 compliant caching proxy server.
https://trafficserver.apache.org/
Apache License 2.0
1.81k stars 798 forks source link

static link #7353

Open ancjf opened 3 years ago

ancjf commented 3 years ago

I run:

autoreconf -i --force
./configure CFLAGS="-DBIG_SECURITY_HOLE" CXXFLAGS="-DBIG_SECURITY_HOLE" LDFLAGS="-lpthread -ldl -lz -static" --prefix=/opt/trafficserver-8.1.0

make V=1

There will be an error:

libtool: link: 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 -mcx16 -DBIG_SECURITY_HOLE -rdynamic -Wl,--as-needed -o traffic_manager/traffic_manager traffic_manager/traffic_manager_traffic_manager-AddConfigFilesHere.o traffic_manager/traffic_manager_traffic_manager-traffic_manager.o  -L/mnt/hgfs/src/trafficserver/lib/yamlcpp ../mgmt/api/.libs/libmgmtapilocal.a /mnt/hgfs/src/trafficserver/src/tscore/.libs/libtscore.a ../mgmt/.libs/libmgmt_lm.a ../proxy/hdrs/libhdrs.a ../src/tscore/.libs/libtscore.a /mnt/hgfs/src/trafficserver/src/tscpp/util/.libs/libtscpputil.a -lresolv ../src/tscpp/util/.libs/libtscpputil.a ../iocore/eventsystem/libinkevent.a ../lib/records/librecords_lm.a ../proxy/shared/libdiagsconfig.a -lpcre -lhwloc /mnt/hgfs/src/trafficserver/lib/yamlcpp/.libs/libyamlcpp.a -lssl -lcrypto -lpthread -ldl -lz
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_inc(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `new_IOBufferData_internal(char const*, long, AllocType)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:221: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:269: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_inc(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `IOBufferData::alloc(long, AllocType)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:233: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:269: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_inc(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `new_IOBufferData_internal(char const*, long, AllocType)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:221: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `IOBufferBlock::alloc(long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:269: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_inc(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_inc(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:152: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Inline.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(Lock.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(UnixEThread.o): In function `EThread::EThread(ThreadType, int)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/UnixEThread.cc:88: undefined reference to `InkRand::InkRand(unsigned long)'
../iocore/eventsystem/libinkevent.a(UnixEThread.o): In function `EThread::EThread(ThreadType, Event*)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/UnixEThread.cc:116: undefined reference to `InkRand::InkRand(unsigned long)'
../iocore/eventsystem/libinkevent.a(UnixEThread.o): In function `EThread::EThread()':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/UnixEThread.cc:83: undefined reference to `InkRand::InkRand(unsigned long)'
../iocore/eventsystem/libinkevent.a(IOBuffer.o): In function `new_IOBufferData_internal(char const*, long, AllocType)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:221: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(IOBuffer.o): In function `MIOBuffer::write(void const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:269: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(IOBuffer.o): In function `new_IOBufferData_internal(char const*, long, AllocType)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:221: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(IOBuffer.o): In function `MIOBuffer::write(void const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:277: undefined reference to `res_track_memory'
../iocore/eventsystem/libinkevent.a(IOBuffer.o): In function `iobuffer_mem_inc(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:163: undefined reference to `ResourceTracker::increment(char const*, long)'
../iocore/eventsystem/libinkevent.a(IOBuffer.o): In function `iobuffer_mem_dec(char const*, long)':
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:169: undefined reference to `res_track_memory'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
/mnt/hgfs/src/trafficserver/iocore/eventsystem/P_IOBuffer.h:179: undefined reference to `ResourceTracker::increment(char const*, long)'
../lib/records/librecords_lm.a(RecCore.o): In function `RecCoreInit(RecModeT, Diags*)':
/mnt/hgfs/src/trafficserver/lib/records/RecCore.cc:209: undefined reference to `ink_rwlock_init(pthread_rwlock_t*)'
../lib/records/librecords_lm.a(RecHttp.o): In function `RecHttpLoadIpMap(char const*, IpMap&)':
/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IpMap.h:440: undefined reference to `IpMap::fill(sockaddr const*, sockaddr const*, void*)'
../lib/records/librecords_lm.a(RecHttp.o): In function `RecHttpLoadIpMap(char const*, IpMap&)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:161: undefined reference to `IpMap::count() const'
../lib/records/librecords_lm.a(RecHttp.o): In function `HttpProxyPort::HttpProxyPort()':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:217: undefined reference to `host_res_default_preference_order'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:217: undefined reference to `host_res_default_preference_order'
../lib/records/librecords_lm.a(RecHttp.o): In function `HttpProxyPort::print(char*, unsigned long)':
/usr/include/c++/7/bits/stl_algobase.h:800: undefined reference to `host_res_default_preference_order'
/usr/include/c++/7/bits/stl_algobase.h:800: undefined reference to `host_res_default_preference_order'
../lib/records/librecords_lm.a(RecHttp.o): In function `HttpProxyPort::print(char*, unsigned long)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:646: undefined reference to `ts_host_res_order_to_string(std::array<HostResPreference, 3ul> const&, char*, int)'
../lib/records/librecords_lm.a(RecHttp.o): In function `ts_host_res_global_init()':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:699: undefined reference to `HOST_RES_DEFAULT_PREFERENCE_ORDER'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:699: undefined reference to `host_res_default_preference_order'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:699: undefined reference to `HOST_RES_DEFAULT_PREFERENCE_ORDER'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:699: undefined reference to `host_res_default_preference_order'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:702: undefined reference to `host_res_default_preference_order'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:702: undefined reference to `parse_host_res_preference(char const*, std::array<HostResPreference, 3ul>&)'
../lib/records/librecords_lm.a(RecHttp.o): In function `SessionProtocolNameRegistry::toIndex(ts::TextView)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:770: undefined reference to `ts::MemArena::alloc(unsigned long)'
../lib/records/librecords_lm.a(RecHttp.o): In function `SessionProtocolNameRegistry::markIn(char const*, SessionProtocolSet&)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:770: undefined reference to `ts::MemArena::alloc(unsigned long)'
../lib/records/librecords_lm.a(RecHttp.o): In function `HttpProxyPort::processOptions(char const*)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:473: undefined reference to `HOST_RES_PREFERENCE_STRING'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:473: undefined reference to `HOST_RES_PREFERENCE_STRING'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:504: undefined reference to `parse_host_res_preference(char const*, std::array<HostResPreference, 3ul>&)'
../lib/records/librecords_lm.a(RecHttp.o): In function `mptcp_supported':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:95: undefined reference to `TextBuffer::TextBuffer(int)'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:97: undefined reference to `TextBuffer::slurp(int)'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:95: undefined reference to `TextBuffer::~TextBuffer()'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:95: undefined reference to `TextBuffer::~TextBuffer()'
../lib/records/librecords_lm.a(RecHttp.o): In function `HttpProxyPort::loadValue(std::vector<HttpProxyPort, std::allocator<HttpProxyPort> >&, char const*)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:217: undefined reference to `host_res_default_preference_order'
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:217: undefined reference to `host_res_default_preference_order'
../lib/records/librecords_lm.a(RecHttp.o): In function `HttpProxyPort::processFamilyPreference(char const*)':
/mnt/hgfs/src/trafficserver/lib/records/RecHttp.cc:504: undefined reference to `parse_host_res_preference(char const*, std::array<HostResPreference, 3ul>&)'
../lib/records/librecords_lm.a(RecHttp.o): In function `ts::IntrusivePtr<ts::MemArena::Block>::unset()':
/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IntrusivePtr.h:382: undefined reference to `ts::MemArena::Block::operator delete(void*)'
/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IntrusivePtr.h:382: undefined reference to `ts::MemArena::Block::operator delete(void*)'
../lib/records/librecords_lm.a(RecHttp.o): In function `SessionProtocolNameRegistry::~SessionProtocolNameRegistry()':
/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IntrusivePtr.h:382: undefined reference to `ts::MemArena::Block::operator delete(void*)'
/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IntrusivePtr.h:382: undefined reference to `ts::MemArena::Block::operator delete(void*)'
/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IntrusivePtr.h:382: undefined reference to `ts::MemArena::Block::operator delete(void*)'
../lib/records/librecords_lm.a(RecHttp.o):/mnt/hgfs/src/trafficserver/lib/records/../../include/tscore/IntrusivePtr.h:382: more undefined references to `ts::MemArena::Block::operator delete(void*)' follow

place: src/Makefile ::traffic_server_traffic_server_LDADD ::traffic_manager_traffic_manager_LDADD

The link order is wrong, libtscore.la should be placed later

In this way, you can compile it on raspberry, and then copy trafficserver to other arm machines to run. Please correct this problem so that trafficserver can better support static compilation

masaori335 commented 3 years ago

The link order is wrong, libtscore.la should be placed later

In this way, you can compile it on raspberry, and then copy trafficserver to other arm machines to run.

@ancjf Seem like you have a patch. Could you open a PR?

bryancall commented 3 years ago

@ancjf Could you please supply a PR?

bneradt commented 2 years ago

I'll try this out locally.

bneradt commented 2 years ago

@ancjf : When I add -static to my configure line as you suggest, it fails configuration. I don't get as far as you, since you seem to make to to compilation with these flags.

Here's how this can be reproduced using our CI's centos 8 docker image:

docker pull controller.trafficserver.org/ats/centos:8
docker run -it controller.trafficserver.org/ats/centos:8 /bin/bash

# Now, from within the running container:
git clone https://github.com/apache/trafficserver.git
cd trafficserver/
autoreconf -fi

# Repeating your configure line:
./configure CFLAGS="-DBIG_SECURITY_HOLE" CXXFLAGS="-DBIG_SECURITY_HOLE" LDFLAGS="-lpthread -ldl -lz -static" --prefix=/opt/trafficserver-8.1.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '0' is supported by ustar format... yes
checking whether GID '0' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports nested variables... (cached) yes
checking for chosen layout... TrafficServer
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking whether to enable debugging... no
checking whether to enable mime sanity check... no
checking whether to enable all asserts, a cheaper debug... no
checking whether to code coverage... no
checking whether to enable -Werror... no
checking whether to enable asan... no
checking whether to enable lsan... no
checking whether to enable tsan... no
checking whether to enable fast SDK APIs... no
checking whether to enable CURL... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for curl-config... /opt/bin/curl-config
checking for curl (7.79.0-DEV) >= 7.19... yes
checking whether to enable diags... yes
checking whether to enable fips... no
checking whether to enable regression tests... yes
checking whether to enable expensive unit tests... no
checking for java... java
Checking whether to build documentation:
Will build documentation: no
checking whether to enable WCCP v2 support... no
checking whether to enable profiler... no
checking whether to enable eventfd()... yes
checking whether to use POSIX capabilities... auto
checking whether to use hwloc library... yes
checking whether to enable ccache... no
checking whether to enable hardening of the executables... no
checking whether to enable TPROXY based transparency... auto
checking whether to enable experimental plugins... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBMAGICKCPP... no
checking for LIBMAGICKCPP... yes
checking whether to install example plugins... no
checking whether to install testing tools... no
checking whether to allow 32-bit builds... no
checking for cc... cc
checking whether the C compiler works... no
configure: error: in `/root/trafficserver':
configure: error: C compiler cannot create executables
See `config.log' for more details

The config.log has this:

compilation terminated.
configure:7024: $? = 1
configure:7044: checking whether the C compiler works
configure:7066: cc -DBIG_SECURITY_HOLE  -lpthread -ldl -lz -static conftest.c  >&5
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lz
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
configure:7070: $? = 1
configure:7108: result: no

Simplifying to ./configure LDFLAGS="-static" --prefix=/opt/trafficserver-8.1.0 produces a similar error. I also get the same results if I checkout and repeat these commands from 8.1.x.

Perhaps I'm missing some steps you performed to get as far as you did? Can you reproduce your build in the centos:8 docker image as I describe above? Or, alternatively, can you point me to a docker image I can reproduce your results in? Without more information, I'm blocked from reproducing your situation and, subsequently, working on a fix.

Thanks, Brian

rajeshadp commented 2 years ago

Hi

I am trying to build static build for trafficserver from code https://github.com/apache/trafficserver on Ubuntu 20.04

using commands: autoreconf -i --force ./configure CFLAGS="-DBIG_SECURITY_HOLE" CXXFLAGS="-DBIG_SECURITY_HOLE" LDFLAGS="-lpthread -ldl -lz -static" --prefix=/opt/ats/

configuration is successful, but make fails with below errors: (make succeeds if I remove -static above), any ideas?

make[2]: Entering directory '/home/embedur/trafficserver/src/tscore' Makefile:2641: warning: overriding recipe for target 'CompileParseRules' Makefile:1199: warning: ignoring old recipe for target 'CompileParseRules' CXX unit_tests/freelist_benchmark-freelist_benchmark.o CXX Arena.lo CXX ArgParser.lo CXX BaseLogFile.lo CXX BufferWriterFormat.lo CXX ContFlags.lo CXX CryptoHash.lo In file included from ../../include/tscore/ink_config.h:40, from ../../include/tscore/ink_platform.h:27, from CryptoHash.cc:28: /usr/include/openssl/bio.h:553:6: error: expected ‘)’ before ‘’ token 553 | void BIO_set_data(BIO a, void ptr); | ^~~~ ../../include/ink_autoconf.h:27:32: note: to match this ‘(’ 27 | #define BIO_set_data(a, _ptr) ((a)->ptr = (_ptr)) | ^ /usr/include/openssl/bio.h:553:6: error: expected ‘)’ before ‘’ token 553 | void BIO_set_data(BIO a, void ptr); | ^~~~ ../../include/ink_autoconf.h:27:31: note: to match this ‘(’ 27 | #define BIO_set_data(a, _ptr) ((a)->ptr = (_ptr)) | ^ /usr/include/openssl/bio.h:554:7: error: expected ‘)’ before ‘’ token 554 | void BIO_get_data(BIO a); | ^~~~ ../../include/ink_autoconf.h:12:26: note: to match this ‘(’ 12 | #define BIO_get_data(a) ((a)->ptr) | ^ /usr/include/openssl/bio.h:554:7: error: expected ‘)’ before ‘’ token 554 | void BIO_get_data(BIO a); | ^~~~ ../../include/ink_autoconf.h:12:25: note: to match this ‘(’ 12 | #define BIO_get_data(a) ((a)->ptr) | ^ /usr/include/openssl/bio.h:558:5: error: expected ‘)’ before ‘’ token 558 | int BIO_get_shutdown(BIO a); | ^~~~ ../../include/ink_autoconf.h:15:30: note: to match this ‘(’ 15 | #define BIO_get_shutdown(a) ((a)->shutdown) | ^ /usr/include/openssl/bio.h:558:5: error: expected ‘)’ before ‘’ token 558 | int BIO_get_shutdown(BIO a); | ^~~~ ../../include/ink_autoconf.h:15:29: note: to match this ‘(’ 15 | #define BIO_get_shutdown(a) ((a)->shutdown) | ^ /usr/include/openssl/bio.h:787:8: error: expected unqualified-id before ‘const’ 787 | long (BIO_meth_get_ctrl(const BIO_METHOD biom)) (BIO , int, long, void ); | ^~~~~ /usr/include/openssl/bio.h:787:8: error: expected ‘)’ before ‘const’ ../../include/ink_autoconf.h:21:34: note: to match this ‘(’ 21 | #define BIO_meth_get_ctrl(biom) ((biom)->ctrl) | ^ /usr/include/openssl/bio.h:787:8: error: expected ‘)’ before ‘const’ 787 | long (BIO_meth_get_ctrl(const BIO_METHOD biom)) (BIO , int, long, void ); | ^~~~~ ../../include/ink_autoconf.h:21:33: note: to match this ‘(’ 21 | #define BIO_meth_get_ctrl(biom) ((biom)->ctrl) | ^ /usr/include/openssl/bio.h:787:8: error: expected ‘)’ before ‘const’ 787 | long (BIO_meth_get_ctrl(const BIO_METHOD biom)) (BIO , int, long, void ); | ^~~~~ In file included from /usr/include/openssl/evp.h:16, from ../../include/tscore/SHA256.h:28, from CryptoHash.cc:30: /usr/include/openssl/bio.h:787:6: note: to match this ‘(’ 787 | long (BIO_meth_get_ctrl(const BIO_METHOD biom)) (BIO , int, long, void ); | ^ In file included from ../../include/tscore/ink_config.h:40, from ../../include/tscore/ink_platform.h:27, from CryptoHash.cc:28: /usr/include/openssl/bio.h:790:7: error: expected unqualified-id before ‘const’ 790 | int (BIO_meth_get_create(const BIO_METHOD bion)) (BIO ); | ^~~~~~~ /usr/include/openssl/bio.h:790:7: error: expected ‘)’ before ‘const’ ../../include/ink_autoconf.h:18:36: note: to match this ‘(’ 18 | #define BIO_meth_get_create(biom) ((biom)->create) | ^ /usr/include/openssl/bio.h:790:7: error: expected ‘)’ before ‘const’ 790 | int (BIO_meth_get_create(const BIO_METHOD bion)) (BIO ); | ^~~~~~~ ../../include/ink_autoconf.h:18:35: note: to match this ‘(’ 18 | #define BIO_meth_get_create(biom) ((biom)->create) | ^ /usr/include/openssl/bio.h:790:7: error: expected ‘)’ before ‘const’ 790 | int (BIO_meth_get_create(const BIO_METHOD bion)) (BIO ); | ^~~~~~~ In file included from /usr/include/openssl/evp.h:16, from ../../include/tscore/SHA256.h:28, from CryptoHash.cc:30: /usr/include/openssl/bio.h:790:5: note: to match this ‘(’ 790 | int (BIO_meth_get_create(const BIO_METHOD bion)) (BIO ); | ^ In file included from ../../include/tscore/ink_config.h:40, from ../../include/tscore/ink_platform.h:27, from CryptoHash.cc:28: /usr/include/openssl/bio.h:792:7: error: expected unqualified-id before ‘const’ 792 | int (BIO_meth_get_destroy(const BIO_METHOD biom)) (BIO ); | ^~~~~~~~ /usr/include/openssl/bio.h:792:7: error: expected ‘)’ before ‘const’ ../../include/ink_autoconf.h:24:37: note: to match this ‘(’ 24 | #define BIO_meth_get_destroy(biom) ((biom)->destroy) | ^ /usr/include/openssl/bio.h:792:7: error: expected ‘)’ before ‘const’ 792 | int (BIO_meth_get_destroy(const BIO_METHOD biom)) (BIO ); | ^~~~~~~~ ../../include/ink_autoconf.h:24:36: note: to match this ‘(’ 24 | #define BIO_meth_get_destroy(biom) ((biom)->destroy) | ^ /usr/include/openssl/bio.h:792:7: error: expected ‘)’ before ‘const’ 792 | int (BIO_meth_get_destroy(const BIO_METHOD biom)) (BIO ); | ^~~~~~~~ In file included from /usr/include/openssl/evp.h:16, from ../../include/tscore/SHA256.h:28, from CryptoHash.cc:30: /usr/include/openssl/bio.h:792:5: note: to match this ‘(’ 792 | int (BIO_meth_get_destroy(const BIO_METHOD biom)) (BIO ); | ^ In file included from ../../include/tscore/ink_config.h:40, from ../../include/tscore/ink_platform.h:27, from CryptoHash.cc:28: ../../include/ink_autoconf.h:9:31: error: conflicting declaration of C function ‘const unsigned char ASN1_STRING_data(const ASN1_STRING)’ 9 | #define ASN1_STRING_get0_data ASN1_STRING_data | ^~~~ In file included from /usr/include/openssl/evp.h:13, from ../../include/tscore/SHA256.h:28, from CryptoHash.cc:30: /usr/include/openssl/asn1.h:554:1: note: previous declaration ‘unsigned char ASN1_STRING_data(ASN1_STRING)’ 554 | DEPRECATEDIN_1_1_0(unsigned char ASN1_STRING_data(ASN1_STRING x)) | ^~~~~~ make[2]: [Makefile:1502: CryptoHash.lo] Error 1 make[2]: Leaving directory '/home/embedur/trafficserver/src/tscore' make[1]: [Makefile:1107: all] Error 2 make[1]: Leaving directory '/home/embedur/trafficserver/src/tscore' make: *** [Makefile:871: all-recursive] Error 1

rajeshadp commented 2 years ago

I am now able to successfully get a static build of ATS using Ermine tool on Ubuntu 20.04, I followed below steps,

build ATS server (by default its dynamic) git clone https://github.com/apache/trafficserver.git cd trafficserver/ autoreconf -fi ./configure --prefix=/opt/ats

make make check sudo make install

so we now have all artifacts of ATS build at /opt/ats and under /opt/ats/bin/ we have traffic_server binary.

wget http://www.magicermine.com/trial/ErmineLightTrial.x86_64/ErmineLightTrial.x86_64/ErmineLightTrial.x86_64

mv ErmineLightTrial.x86_64 ermine chmod +x ermine ./ermine YOUR-BINARY -o NEW-PORTABLE-BINARY-NAME

This should create a static build of ATS.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. Marking it stale to flag it for further consideration by the community.