Closed mohsaka closed 1 year ago
@kgpai and @mbasmanova due to experience with issue https://github.com/facebookincubator/velox/issues/1562
Any ideas? Thank you!
Other information,
Attempted MACOSX_DEPLOYMENT_TARGET=12.3
. Did not fix anything.
Attempted upgrading MacOs to latest + latest X-code.
Attempted a full factory reset of Mac.
All resulted in the same failure.
Was successful in compiling with velox % CPU_TARGET="arm64" make EXTRA_CMAKE_FLAGS="-DVELOX_BUILD_MINIMAL=ON"
Was also successful when compiling via the Presto repo.
However I believe that neither of these compile the test cases so they would not hit this issue.
Thanks for filing this issue. We started to see this in CircleCI as well. https://app.circleci.com/pipelines/github/facebookincubator/velox/26419/workflows/9b151140-a453-4e9c-9cdd-5c8602b74a00/jobs/166967/parallel-runs/0/steps/0-108 I can help investigate.
The issue with CPU_TARGET and sudo requirements should be fixed soon as well. Issues below. https://github.com/facebookincubator/velox/issues/5204 https://github.com/facebookincubator/velox/issues/1446
The issue is due to the protobuf version. A new protobuf version 23.2 was released a couple of days ago https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/protobuf.rb This is causing the link failure. I was able to build successfully installing an older protobuf version. brew install protobuf@21
I installed the 21.12 version https://raw.githubusercontent.com/Homebrew/homebrew-core/79cd8fade5afb6d5d4ac27163105d8783ebc0084/Formula/protobuf.rb
Thanks Deepak can we pin protobuf @21.2 ? A similar problem was reported with re2, which thankfully was pinned.
@kgpai yes. protobuf@21
should do.
The same issue happens on my Intel Macbook too, after upgrading the MacOS SDK to 13.3. It built fine on MacOS SDK 13.1, but threw the same error @mohsaka found after upgrading to XCode CommandLine tools 14.3.1 (MacOS SDK 13.3). I checked the ld snapshot. and it's trying to link IntDecoderBenchmark.cpp.o with libLTO.dylib. I tried to upload the snapshot here but it's very large, so I'm pasting the results:
Link command
/Library/Developer/CommandLineTools/usr/bin/ld -Z -demangle -lto_library data_files/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 13.0.0 13.3 -search_paths_first -headerpad_max_install_names -flat_namespace -filelist objects/filelist
Where objects/filelist = objects/IntDecoderBenchmark.cpp.o Output
Yings-MBP:velox_dwio_common_int_decoder_benchmark-2023-06-08-015257.ld-snapshot yingsu$ /Library/Developer/CommandLineTools/usr/bin/ld -Z -demangle -lto_library data_files/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 13.0.0 13.3 -search_paths_first -headerpad_max_install_names -flat_namespace -filelist objects/filelist
Undefined symbols for architecture x86_64:
"__Unwind_Resume", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
std::__1::enable_if<IsSomeString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::value && (sizeof...(char [19]) != 1 || !std::is_same<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, folly::detail::LastElement<char const (&) [19]>::type>::value), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::type folly::to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, char [19]>(char const (&) [19]) in IntDecoderBenchmark.cpp.o
facebook::velox::dwio::common::exception::LoggedException::LoggedException(char const*, unsigned long, char const*, char const*, 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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in IntDecoderBenchmark.cpp.o
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
__GLOBAL__sub_I_IntDecoderBenchmark.cpp in IntDecoderBenchmark.cpp.o
"folly::runBenchmarks()", referenced from:
_main in IntDecoderBenchmark.cpp.o
"folly::ThreadLocalPRNG::operator()()", referenced from:
_main in IntDecoderBenchmark.cpp.o
"folly::BenchmarkSuspender::timeSpent", referenced from:
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_5, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_5>, void>::type folly::addBenchmark<$_5>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_5, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_5>, void>::type folly::addBenchmark<$_5>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
"folly::init(int*, char***, bool)", referenced from:
_main in IntDecoderBenchmark.cpp.o
"folly::detail::addBenchmarkImpl(char const*, folly::Range<char const*>, std::__1::function<folly::detail::TimeIterData (unsigned int)>, bool)", referenced from:
__GLOBAL__sub_I_IntDecoderBenchmark.cpp in IntDecoderBenchmark.cpp.o
"facebook::velox::VeloxException::VeloxException(char const*, unsigned long, char const*, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, bool, facebook::velox::VeloxException::Type, std::__1::basic_string_view<char, std::__1::char_traits<char>>)", referenced from:
facebook::velox::dwio::common::exception::LoggedException::LoggedException(char const*, unsigned long, char const*, char const*, 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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in IntDecoderBenchmark.cpp.o
"facebook::velox::dwio::common::exception::getExceptionLogger()", referenced from:
facebook::velox::dwio::common::exception::LoggedException::LoggedException(char const*, unsigned long, char const*, char const*, 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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in IntDecoderBenchmark.cpp.o
"facebook::velox::VeloxException::State::what() const", referenced from:
facebook::velox::dwio::common::exception::LoggedException::LoggedException(char const*, unsigned long, char const*, char const*, 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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::what() const in IntDecoderBenchmark.cpp.o
"std::logic_error::logic_error(char const*)", referenced from:
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
"std::logic_error::logic_error(char const*)", referenced from:
std::length_error::length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
"std::logic_error::~logic_error()", referenced from:
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
"std::length_error::~length_error()", referenced from:
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
"std::runtime_error::runtime_error(char const*)", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
"std::runtime_error::~runtime_error()", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
"std::bad_array_new_length::bad_array_new_length()", referenced from:
std::__throw_bad_array_new_length[abi:v15006]() in IntDecoderBenchmark.cpp.o
"std::bad_array_new_length::~bad_array_new_length()", referenced from:
std::__throw_bad_array_new_length[abi:v15006]() in IntDecoderBenchmark.cpp.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append(char const*)", referenced from:
std::__1::enable_if<IsSomeString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::value && (sizeof...(char [19]) != 1 || !std::is_same<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, folly::detail::LastElement<char const (&) [19]>::type>::value), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::type folly::to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, char [19]>(char const (&) [19]) in IntDecoderBenchmark.cpp.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::reserve(unsigned long)", referenced from:
std::__1::enable_if<IsSomeString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::value && (sizeof...(char [19]) != 1 || !std::is_same<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, folly::detail::LastElement<char const (&) [19]>::type>::value), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::type folly::to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, char [19]>(char const (&) [19]) in IntDecoderBenchmark.cpp.o
"std::__1::__shared_weak_count::__release_weak()", referenced from:
facebook::velox::dwio::common::exception::LoggedException::~LoggedException() in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::~VeloxException() in IntDecoderBenchmark.cpp.o
facebook::velox::dwio::common::exception::LoggedException::~LoggedException() in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::~VeloxException() in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::~VeloxException() in IntDecoderBenchmark.cpp.o
"std::__1::chrono::steady_clock::now()", referenced from:
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_5, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_5>, void>::type folly::addBenchmark<$_5>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_5, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_5>, void>::type folly::addBenchmark<$_5>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::operator()(unsigned int&&) in IntDecoderBenchmark.cpp.o
"std::exception::~exception()", referenced from:
facebook::velox::dwio::common::exception::LoggedException::~LoggedException() in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::~VeloxException() in IntDecoderBenchmark.cpp.o
facebook::velox::dwio::common::exception::LoggedException::~LoggedException() in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::~VeloxException() in IntDecoderBenchmark.cpp.o
facebook::velox::VeloxException::~VeloxException() in IntDecoderBenchmark.cpp.o
"typeinfo for std::logic_error", referenced from:
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
"typeinfo for std::length_error", referenced from:
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
"typeinfo for std::runtime_error", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
"typeinfo for std::bad_array_new_length", referenced from:
std::__throw_bad_array_new_length[abi:v15006]() in IntDecoderBenchmark.cpp.o
"typeinfo for std::exception", referenced from:
typeinfo for facebook::velox::VeloxException in IntDecoderBenchmark.cpp.o
"vtable for __cxxabiv1::__class_type_info", referenced from:
typeinfo for std::__1::__function::__base<folly::detail::TimeIterData (unsigned int)> in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int) in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int) in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int) in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int) in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int) in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::enable_if<folly::is_invocable_v<$_5, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_5>, void>::type folly::addBenchmark<$_5>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_5&&)::'lambda'(unsigned int) in IntDecoderBenchmark.cpp.o
...
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for __cxxabiv1::__si_class_type_info", referenced from:
typeinfo for facebook::velox::VeloxException in IntDecoderBenchmark.cpp.o
typeinfo for facebook::velox::dwio::common::exception::LoggedException in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)> in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)> in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)> in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)> in IntDecoderBenchmark.cpp.o
typeinfo for std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)> in IntDecoderBenchmark.cpp.o
...
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for std::length_error", referenced from:
std::length_error::length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"operator delete(void*)", referenced from:
std::__1::vector<unsigned short, std::__1::allocator<unsigned short>>::~vector[abi:v15006]() in IntDecoderBenchmark.cpp.o
std::__1::vector<unsigned long long, std::__1::allocator<unsigned long long>>::~vector[abi:v15006]() in IntDecoderBenchmark.cpp.o
std::__1::vector<char, std::__1::allocator<char>>::~vector[abi:v15006]() in IntDecoderBenchmark.cpp.o
std::__1::vector<unsigned int, std::__1::allocator<unsigned int>>::~vector[abi:v15006]() in IntDecoderBenchmark.cpp.o
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
std::__1::enable_if<IsSomeString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::value && (sizeof...(char [19]) != 1 || !std::is_same<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, folly::detail::LastElement<char const (&) [19]>::type>::value), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::type folly::to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, char [19]>(char const (&) [19]) in IntDecoderBenchmark.cpp.o
_main in IntDecoderBenchmark.cpp.o
...
"operator new(unsigned long)", referenced from:
folly::BasicFixedString<char, 7ul>::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>() const in IntDecoderBenchmark.cpp.o
_main in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_0, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_0>, void>::type folly::addBenchmark<$_0>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_0&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::__clone() const in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_1, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_1>, void>::type folly::addBenchmark<$_1>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_1&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::__clone() const in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_2, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_2>, void>::type folly::addBenchmark<$_2>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_2&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::__clone() const in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_3, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_3>, void>::type folly::addBenchmark<$_3>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_3&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::__clone() const in IntDecoderBenchmark.cpp.o
std::__1::__function::__func<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int), std::__1::allocator<std::__1::enable_if<folly::is_invocable_v<$_4, unsigned int>, void>::type folly::addBenchmark<std::__1::enable_if<folly::is_invocable_v<$_4>, void>::type folly::addBenchmark<$_4>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>(char const*, folly::Range<char const*>, $_4&&)::'lambda'(unsigned int)>, folly::detail::TimeIterData (unsigned int)>::__clone() const in IntDecoderBenchmark.cpp.o
...
"___bzero", referenced from:
_main in IntDecoderBenchmark.cpp.o
std::__1::vector<unsigned long long, std::__1::allocator<unsigned long long>>::__append(unsigned long) in IntDecoderBenchmark.cpp.o
"___cxa_allocate_exception", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
std::__throw_bad_array_new_length[abi:v15006]() in IntDecoderBenchmark.cpp.o
"___cxa_atexit", referenced from:
__GLOBAL__sub_I_IntDecoderBenchmark.cpp in IntDecoderBenchmark.cpp.o
"___cxa_free_exception", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
"___cxa_guard_acquire", referenced from:
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
"___cxa_guard_release", referenced from:
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
"___cxa_throw", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
std::__throw_bad_array_new_length[abi:v15006]() in IntDecoderBenchmark.cpp.o
"___gxx_personality_v0", referenced from:
readVuLong(char const*, unsigned long&) in IntDecoderBenchmark.cpp.o
readVuLongOptimized(unsigned long long, char const*, unsigned long long*) in IntDecoderBenchmark.cpp.o
std::__1::enable_if<IsSomeString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::value && (sizeof...(char [19]) != 1 || !std::is_same<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, folly::detail::LastElement<char const (&) [19]>::type>::value), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::type folly::to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, char [19]>(char const (&) [19]) in IntDecoderBenchmark.cpp.o
facebook::velox::dwio::common::exception::LoggedException::LoggedException(char const*, unsigned long, char const*, char const*, 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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in IntDecoderBenchmark.cpp.o
std::__1::__throw_length_error[abi:v15006](char const*) in IntDecoderBenchmark.cpp.o
__GLOBAL__sub_I_IntDecoderBenchmark.cpp in IntDecoderBenchmark.cpp.o
Dwarf Exception Unwind Info (__eh_frame) in IntDecoderBenchmark.cpp.o
...
"___stack_chk_fail", referenced from:
__GLOBAL__sub_I_IntDecoderBenchmark.cpp in IntDecoderBenchmark.cpp.o
"___stack_chk_guard", referenced from:
__GLOBAL__sub_I_IntDecoderBenchmark.cpp in IntDecoderBenchmark.cpp.o
"_memcpy", referenced from:
folly::BasicFixedString<char, 7ul>::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>() const in IntDecoderBenchmark.cpp.o
"_memmove", referenced from:
_main in IntDecoderBenchmark.cpp.o
std::__1::vector<unsigned long long, std::__1::allocator<unsigned long long>>::__append(unsigned long) in IntDecoderBenchmark.cpp.o
"_strlen", referenced from:
facebook::velox::dwio::common::exception::LoggedException::LoggedException(char const*, unsigned long, char const*, char const*, 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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in IntDecoderBenchmark.cpp.o
ld: symbol(s) not found for architecture x86_64
I checked a few CircleCI failures and they are all happening when linking IntDecoderBenchmark.cpp.o.
cc @kgpai @majetideepak
Validated. Working for me.
Some information.
michaelohsaka@Michaels-MacBook-Pro velox % pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 14.3.1.0.1.1683849156
volume: /
location: /
install-time: 1686350895
Velox System Info v0.0.2
Commit: 4ddc957d3eaf957334caf67eb186cfdd9ffcfecb
CMake Version: 3.26.4
System: Darwin-22.5.0
Arch: arm64
C++ Compiler: /Library/Developer/CommandLineTools/usr/bin/c++
C++ Compiler Version: 14.0.3.14030022
C Compiler: /Library/Developer/CommandLineTools/usr/bin/cc
C Compiler Version: 14.0.3.14030022
CMake Prefix Path: /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr;/opt/homebrew;/usr/local;/usr;/;/opt/homebrew/Cellar/cmake/3.26.4;/usr/local;/usr/X11R6;/usr/pkg;/opt;/sw;/opt/local
Still doesn't work for me
@yingsu00 your backtrace looks different that the one posted here. Do you want to open a separate issue?
@kgpai yes.
protobuf@21
should do. Hi @majetideepak, I got the same issue when trying to build velox on my mocos M1 pro as below:0 0x104e2bbb8 __assert_rtn + 128 1 0x104d47624 ld::tool::InputFiles::findDylib(char const*, ld::dylib::File const*, bool) + 776 2 0x104de8b0c generic::dylib::File::processIndirectLibraries(ld::dylib::File::DylibHandler*, bool) + 88 3 0x104d488f0 ld::tool::InputFiles::createIndirectDylibs() + 456 4 0x104d498e4 ld::tool::InputFiles::forEachInitialAtom(ld::File::AtomHandler&, ld::Internal&) + 836 5 0x104d58fb8 ld::tool::Resolver::resolve() + 44 6 0x104cea15c main + 288 A linker snapshot was created at: /tmp/velox_concurrent_allocation_benchmark-2024-01-21-180846.ld-snapshot ld: Assertion failed: (counter() < 0xffff), function nextCounter, file ld.hpp, line 404. clang: error: linker command failed with exit code 1 (use -v to see invocation)
but I found the protobuf version in the scripts/setup-macos.sh has been 'protobuf@21' and in my built-output-log, it says:
-- Setting Protobuf source to AUTO -- Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR) (Required is exact version "3.21") -- Building Protobuf from source -- 3.21.4.0 -- Using BUNDLED Protobuf
it seems that the bundled 3.21.4.0 protobuf was used and it caused the same errors.
I found the place where protobuf version was defined in the CMakeLists.txt
if(NOT ${VELOX_BUILD_MINIMAL}) set_source(Protobuf) resolve_dependency(Protobuf 3.21 EXACT) include_directories(${Protobuf_INCLUDE_DIRS}) endif()
I wonder how to switch the version of Protobuf used for compiling Velox. I am new to CMake and look forward to any suggestion given. Thank you
Problem description
Installed Homebrew via
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Setup the first time using
CPU_TARGET="arm64" ./scripts/setup-macos.sh
To install brew dependencies.Setup a second time using sudo with commenting out
update_brew
to prevent failure due to sudo with homebrewsudo INSTALL_PREREQUISITES=N CPU_TARGET="arm64" ./scripts/setup-macos.sh
To install the other dependencies pulled from git.Run CPU_TARGET="arm64" make
System information
Velox System Info v0.0.2 Commit: c067fc06ffd6ab380dc82906b4d9795f04f96026 CMake Version: 3.26.4 System: Darwin-21.6.0 Arch: arm64 C++ Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ C++ Compiler Version: 13.1.6.13160021 C Compiler: /Library/Developer/CommandLineTools/usr/bin/cc C Compiler Version: 13.1.6.13160021 CMake Prefix Path: /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/usr;/opt/homebrew;/usr/local;/usr;/;/opt/homebrew/Cellar/cmake/3.26.4;/usr/local;/usr/X11R6;/usr/pkg;/opt;/sw;/opt/local
CMake log