Skip to content

[BUILD] AWS SDK build error on macOS #118

Description

@charles-typ

What OS are you using?

macOS Catalina

What compiler are you using? What version?

Apple clang version 11.0.0(clang-1100.0.33.16

What's your CMake arguments?

cmake .. -DBUILD_JAVA_CLIENT=OFF

What is the output of the CMake and make commands on a fresh build? (Please sanitize any sensitive information)

❯ make -j 64
[ 0%] Built target boost_ep
[ 1%] Built target zlib_ep
[ 2%] Built target libevent_ep
[ 3%] Built target openssl_ep
[ 3%] Building Python client
[ 6%] Built target curl_ep
[ 8%] Built target catch_ep
[ 9%] Built target jemalloc_ep
[ 18%] Built target awssdk_ep
[ 18%] Built target thrift_ep
running build
running build_py
[ 18%] Built target pyclient
[ 38%] Built target jiffy_client
[ 87%] Built target jiffy
[ 88%] Linking CXX executable directoryd
[ 88%] Linking CXX executable storaged
Undefined symbols for architecture x86_64:
"Aws::S3::S3Client::S3Client(Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool)", referenced from:
void jiffy::persistent::s3_store_impl::write_impljiffy::storage::string_array(jiffy::storage::string_array const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::write_impljiffy::storage::file_block(jiffy::storage::file_block const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::write_impl<std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > >(std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impljiffy::storage::string_array(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, jiffy::storage::string_array&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impljiffy::storage::file_block(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, jiffy::storage::file_block&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impl<std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > >&) in persistent_store.cpp.o
(maybe you meant: Aws::S3::S3Client::S3Client(Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION))
Undefined symbols for architecture x86_64:
"Aws::S3::S3Client::S3Client(Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool)", referenced from:
void jiffy::persistent::s3_store_impl::write_impljiffy::storage::string_array(jiffy::storage::string_array const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::write_impljiffy::storage::file_block(jiffy::storage::file_block const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::write_impl<std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > >(std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impljiffy::storage::string_array(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, jiffy::storage::string_array&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impljiffy::storage::file_block(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, jiffy::storage::file_block&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impl<std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > >&) in persistent_store.cpp.o
(maybe you meant: Aws::S3::S3Client::S3Client(Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION))
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [directory/directoryd] Error 1
make[1]: *** [directory/CMakeFiles/directoryd.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [storage/storaged] Error 1
make[1]: *** [storage/CMakeFiles/storaged.dir/all] Error 2
[ 88%] Linking CXX executable jiffy_tests
Undefined symbols for architecture x86_64:
"Aws::S3::S3Client::S3Client(Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool)", referenced from:
void jiffy::persistent::s3_store_impl::write_impljiffy::storage::string_array(jiffy::storage::string_array const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::write_impljiffy::storage::file_block(jiffy::storage::file_block const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::write_impl<std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > >(std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impljiffy::storage::string_array(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, jiffy::storage::string_array&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impljiffy::storage::file_block(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, jiffy::storage::file_block&) in persistent_store.cpp.o
void jiffy::persistent::s3_store_impl::read_impl<std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > > >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::unordered_map<jiffy::storage::byte_string, jiffy::storage::byte_string, jiffy::storage::hash_type, jiffy::storage::equal_type, std::__1::allocator<std::__1::pair<jiffy::storage::byte_string const, jiffy::storage::byte_string> > >&) in persistent_store.cpp.o
(maybe you meant: Aws::S3::S3Client::S3Client(Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION))
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libjiffy/jiffy_tests] Error 1
make[1]: *** [libjiffy/CMakeFiles/jiffy_tests.dir/all] Error 2
make: *** [all] Error 2

Seems like an error due to the new version of AWS SDK(C++), downgrading to version 1.6.53 resolves the issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions