td: OpenBSD 6.7 -stable build fail
ssh3@balamut:build$ uname -a OpenBSD balamut.td.kms 6.7 GENERIC.MP#2 amd64
ssh3@balamut:build$ clang -v OpenBSD clang version 8.0.1 (tags/RELEASE_801/final) (based on LLVM 8.0.1) Target: amd64-unknown-openbsd6.7 Thread model: posix InstalledDir: /usr/bin
ssh3@balamut:build$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=…/tdlib …
– The CXX compiler identification is Clang 8.0.1
– The C compiler identification is Clang 8.0.1
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Could NOT find ccache (this is NOT an error)
– Found OpenSSL: /usr/lib/libcrypto.so.46.1 (found version “2.0.0”)
– Found OpenSSL: /usr/include /usr/lib/libssl.so.48.1;/usr/lib/libcrypto.so.46.1
– Performing Test HAVE_STD14
– Performing Test HAVE_STD14 - Success
– Looking for pthread.h
– Looking for pthread.h - found
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
– Check if compiler accepts -pthread
– Check if compiler accepts -pthread - yes
– Found Threads: TRUE
– Performing Test HAVE_CXX_FLAG_WALL
– Performing Test HAVE_CXX_FLAG_WALL - Success
– Performing Test HAVE_CXX_FLAG_WEXTRA
– Performing Test HAVE_CXX_FLAG_WEXTRA - Success
– Performing Test HAVE_CXX_FLAG_WIMPLICIT_FALLTHROUGH_2
– Performing Test HAVE_CXX_FLAG_WIMPLICIT_FALLTHROUGH_2 - Failed
– Performing Test HAVE_CXX_FLAG_WPOINTER_ARITH
– Performing Test HAVE_CXX_FLAG_WPOINTER_ARITH - Success
– Performing Test HAVE_CXX_FLAG_WCAST_QUAL
– Performing Test HAVE_CXX_FLAG_WCAST_QUAL - Success
– Performing Test HAVE_CXX_FLAG_WSIGN_COMPARE
– Performing Test HAVE_CXX_FLAG_WSIGN_COMPARE - Success
– Performing Test HAVE_CXX_FLAG_WDUPLICATED_BRANCHES
– Performing Test HAVE_CXX_FLAG_WDUPLICATED_BRANCHES - Failed
– Performing Test HAVE_CXX_FLAG_WDUPLICATED_COND
– Performing Test HAVE_CXX_FLAG_WDUPLICATED_COND - Failed
– Performing Test HAVE_CXX_FLAG_WALLOC_ZERO
– Performing Test HAVE_CXX_FLAG_WALLOC_ZERO - Failed
– Performing Test HAVE_CXX_FLAG_WLOGICAL_OP
– Performing Test HAVE_CXX_FLAG_WLOGICAL_OP - Failed
– Performing Test HAVE_CXX_FLAG_WTAUTOLOGICAL_COMPARE
– Performing Test HAVE_CXX_FLAG_WTAUTOLOGICAL_COMPARE - Success
– Performing Test HAVE_CXX_FLAG_WVLA
– Performing Test HAVE_CXX_FLAG_WVLA - Success
– Performing Test HAVE_CXX_FLAG_WNON_VIRTUAL_DTOR
– Performing Test HAVE_CXX_FLAG_WNON_VIRTUAL_DTOR - Success
– Performing Test HAVE_CXX_FLAG_WUNUSED_PARAMETER
– Performing Test HAVE_CXX_FLAG_WUNUSED_PARAMETER - Success
– Performing Test HAVE_CXX_FLAG_WCONVERSION
– Performing Test HAVE_CXX_FLAG_WCONVERSION - Success
– Performing Test HAVE_CXX_FLAG_WSIGN_CONVERSION
– Performing Test HAVE_CXX_FLAG_WSIGN_CONVERSION - Success
– Performing Test HAVE_CXX_FLAG_WCXX14_COMPAT_PEDANTIC
– Performing Test HAVE_CXX_FLAG_WCXX14_COMPAT_PEDANTIC - Success
– Performing Test HAVE_CXX_FLAG_WDEPRECATED
– Performing Test HAVE_CXX_FLAG_WDEPRECATED - Success
– Performing Test HAVE_CXX_FLAG_QUNUSED_ARGUMENTS
– Performing Test HAVE_CXX_FLAG_QUNUSED_ARGUMENTS - Success
– Performing Test HAVE_CXX_FLAG_WODR
– Performing Test HAVE_CXX_FLAG_WODR - Success
– Performing Test HAVE_CXX_FLAG_FLTO_ODR_TYPE_MERGING
– Performing Test HAVE_CXX_FLAG_FLTO_ODR_TYPE_MERGING - Failed
– Found ZLIB: /usr/lib/libz.so.5.0 (found version “1.2.3”)
– Found ZLIB: /usr/include /usr/lib/libz.so.5.0
– Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
– Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
– Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
– Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
– Performing Test COMPILER_HAS_DEPRECATED_ATTR
– Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
– Performing Test GNU_READLINE_FOUND
– Performing Test GNU_READLINE_FOUND - Failed
– Could NOT find Readline (missing: READLINE_INCLUDE_DIR READLINE_LIBRARY)
– Could NOT find Readline (this is NOT an error)
– Configuring done
– Generating done
– Build files have been written to: /usr/src/td/build
ssh3@balamut:build$ cmake --build . --target install …
Scanning dependencies of target tg_cli
[ 67%] Building CXX object CMakeFiles/tg_cli.dir/td/telegram/cli.cpp.o
[ 67%] Building CXX object CMakeFiles/tg_cli.dir/td/generate/auto/td/telegram/td_api_json.cpp.o
[ 67%] Linking CXX executable tg_cli
ld: error: undefined symbol: td::Td::request(unsigned long long, td::tl::unique_ptr<td::td_api::Function>)
>>> referenced by ClientActor.cpp
>>> ClientActor.cpp.o:(td::ClientActor::request(unsigned long long, td::tl::unique_ptr<td::td_api::Function>)) in archive libtdcore.a
ld: error: undefined symbol: td::Td::static_request(td::tl::unique_ptr<td::td_api::Function>)
>>> referenced by ClientActor.cpp
>>> ClientActor.cpp.o:(td::ClientActor::execute(td::tl::unique_ptr<td::td_api::Function>)) in archive libtdcore.a
ld: error: undefined symbol: td::Td::Td(td::unique_ptr<td::TdCallback>)
>>> referenced by ClientActor.cpp
>>> ClientActor.cpp.o:(td::ActorOwn<td::Td> td::Scheduler::create_actor<td::Td, td::unique_ptr<td::TdCallback> >(td::Slice, td::unique_ptr<td::TdCallback>&&)) in archive libtdcore.a
ld: error: undefined symbol: td::verbosity_td_init
>>> referenced by Logging.cpp
>>> Logging.cpp.o:(.data.rel.ro..Lconstinit+0x10) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::inputEncryptedFileBigUploaded::inputEncryptedFileBigUploaded(long long, int, int)
>>> referenced by FileManager.cpp
>>> FileManager.cpp.o:(td::tl::unique_ptr<td::telegram_api::inputEncryptedFileBigUploaded> td::make_tl_object<td::telegram_api::inputEncryptedFileBigUploaded, long long const&, int const&, int>(long long const&, int const&, int&&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::inputEncryptedFileUploaded::inputEncryptedFileUploaded(long long, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)
>>> referenced by FileManager.cpp
>>> FileManager.cpp.o:(td::tl::unique_ptr<td::telegram_api::inputEncryptedFileUploaded> td::make_tl_object<td::telegram_api::inputEncryptedFileUploaded, long long const&, int const&, char const (&) [1], int>(long long const&, int const&, char const (&) [1], int&&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::inputSecureFileUploaded::inputSecureFileUploaded(long long, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, td::BufferSlice&&, td::BufferSlice&&)
>>> referenced by FileManager.cpp
>>> FileManager.cpp.o:(td::tl::unique_ptr<td::telegram_api::inputSecureFileUploaded> td::make_tl_object<td::telegram_api::inputSecureFileUploaded, long long const&, int const&, char const (&) [1], td::BufferSlice, td::BufferSlice>(long long const&, int const&, char const (&) [1], td::BufferSlice&&, td::BufferSlice&&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::inputFileBig::inputFileBig(long long, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
>>> referenced by FileManager.cpp
>>> FileManager.cpp.o:(td::tl::unique_ptr<td::telegram_api::inputFileBig> td::make_tl_object<td::telegram_api::inputFileBig, long long const&, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(long long const&, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::inputFile::inputFile(long long, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
>>> referenced by FileManager.cpp
>>> FileManager.cpp.o:(td::tl::unique_ptr<td::telegram_api::inputFile> td::make_tl_object<td::telegram_api::inputFile, long long const&, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char const (&) [1]>(long long const&, int const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&, char const (&) [1])) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::inputDocument::inputDocument(long long, long long, td::BufferSlice&&)
>>> referenced by FileManager.cpp
>>> FileManager.cpp.o:(td::tl::unique_ptr<td::telegram_api::inputDocument> td::make_tl_object<td::telegram_api::inputDocument, long long const&, long long const&, td::BufferSlice>(long long const&, long long const&, td::BufferSlice&&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::upload_saveBigFilePart::upload_saveBigFilePart(long long, int, int, td::BufferSlice&&)
>>> referenced by FileUploader.cpp
>>> FileUploader.cpp.o:(td::FileUploader::start_part(td::Part, int, long long)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::upload_saveFilePart::upload_saveFilePart(long long, int, td::BufferSlice&&)
>>> referenced by FileUploader.cpp
>>> FileUploader.cpp.o:(td::FileUploader::start_part(td::Part, int, long long)) in archive libtdcore.a
ld: error: undefined symbol: vtable for td::telegram_api::upload_saveBigFilePart
>>> referenced by FileUploader.cpp
>>> FileUploader.cpp.o:(td::telegram_api::upload_saveBigFilePart::~upload_saveBigFilePart()) in archive libtdcore.a
the vtable symbol may be undefined because the class is missing its key function (see https://lld.llvm.org/missingkeyfunction)
ld: error: undefined symbol: vtable for td::telegram_api::upload_saveFilePart
>>> referenced by FileUploader.cpp
>>> FileUploader.cpp.o:(td::telegram_api::upload_saveFilePart::~upload_saveFilePart()) in archive libtdcore.a
the vtable symbol may be undefined because the class is missing its key function (see https://lld.llvm.org/missingkeyfunction)
ld: error: undefined symbol: td::telegram_api::upload_saveBigFilePart::fetch_result(td::TlBufferParser&)
>>> referenced by FileUploader.cpp
>>> FileUploader.cpp.o:(td::Result<td::telegram_api::upload_saveBigFilePart::ReturnType> td::fetch_result<td::telegram_api::upload_saveBigFilePart>(td::BufferSlice const&, bool)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::upload_saveFilePart::fetch_result(td::TlBufferParser&)
>>> referenced by FileUploader.cpp
>>> FileUploader.cpp.o:(td::Result<td::telegram_api::upload_saveFilePart::ReturnType> td::fetch_result<td::telegram_api::upload_saveFilePart>(td::BufferSlice const&, bool)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::to_string(td::TlObject const&)
>>> referenced by utils.cpp
>>> utils.cpp.o:(td::create_storer(td::telegram_api::Function const&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::upload_getFile::fetch_result(td::TlBufferParser&)
>>> referenced by FileDownloader.cpp
>>> FileDownloader.cpp.o:(td::Result<td::telegram_api::upload_getFile::ReturnType> td::fetch_result<td::telegram_api::upload_getFile>(td::BufferSlice const&, bool)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::to_string(td::TlObject const&)
>>> referenced by FileDownloader.cpp
>>> FileDownloader.cpp.o:(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > td::telegram_api::to_string<td::telegram_api::upload_fileCdnRedirect>(td::tl::unique_ptr<td::telegram_api::upload_fileCdnRedirect> const&)) in archive libtdcore.a
ld: error: undefined symbol: td::telegram_api::upload_reuploadCdnFile::fetch_result(td::TlBufferParser&)
>>> referenced by FileDownloader.cpp
>>> FileDownloader.cpp.o:(td::Result<td::telegram_api::upload_reuploadCdnFile::ReturnType> td::fetch_result<td::telegram_api::upload_reuploadCdnFile>(td::BufferSlice const&, bool)) in archive libtdcore.a
ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error 1 in . (CMakeFiles/tg_cli.dir/build.make:111 'tg_cli': /usr/local/bin/cmake -E cmake_link_script CMakeFiles/tg_cli.dir/link.txt --...)
*** Error 2 in . (CMakeFiles/Makefile2:388 'CMakeFiles/tg_cli.dir/all': /usr/bin/make -f CMakeFiles/tg_cli.dir/build.make CMakeFiles/tg_cli....)
*** Error 2 in /usr/src/td/build (Makefile:141 'all': /usr/bin/make -f CMakeFiles/Makefile2 all)
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 3
- Comments: 17 (12 by maintainers)
@ssh3 @tipsybsd I reproduced this in OpenBSD 6.7 and the primary cause of the issue is
/usr/bin/ar: libtdcore.a: Memory exhausted. Thelibtdcore.afile is truncated, but it still created, so the build continues and fails on linking.