Skip to content

Conversation

@nealrichardson
Copy link
Member

@nealrichardson nealrichardson commented Aug 10, 2020

This adds S3 support to the binary macOS and Windows (Rtools40 only, i.e. R >= 4.0) packages.

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-r-autobrew

@github-actions
Copy link

@github-actions
Copy link

Revision: 65001f14bf78efafad024907d7c91dd404d40c09

Submitted crossbow builds: ursa-labs/crossbow @ actions-471

Task Status
homebrew-r-autobrew TravisCI

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-r-autobrew

@github-actions
Copy link

Revision: d8cc705f2e0f42a56109a49024f2a122be668ced

Submitted crossbow builds: ursa-labs/crossbow @ actions-473

Task Status
homebrew-r-autobrew TravisCI

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-r-autobrew

@github-actions
Copy link

Revision: 9a8364dd3e89052f2925f34fc591f5e17563ab90

Submitted crossbow builds: ursa-labs/crossbow @ actions-474

Task Status
homebrew-r-autobrew TravisCI

@nealrichardson
Copy link
Member Author

Rtools40 is passing. Rtools35 needs a different library build, which Jeroen is working on: https://github.com/r-windows/rtools-backports/compare/aws-sdk

autobrew build fails like this:

==> cmake ../cpp -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -DCMAKE_INSTALL_PREFIX=/private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/build-apache-arrow/Cellar/apache-arrow/HEAD-9a8364d -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev -DARROW_COMPUTE=ON -DARROW_CSV=ON -DARROW_DATASET=ON -DARROW_FILESYSTEM=ON -DARROW_HDFS=OFF -DARROW_JSON=ON -DARROW_PARQUET=ON -DARROW_BUILD_SHARED=OFF -DARROW_JEMALLOC=ON -DARROW_USE_GLOG=OFF -DARROW_PYTHON=OFF -DARROW_S3=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_ZLIB=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_UTF8PROC=OFF -DARROW_BUILD_UTILITIES=ON -DARROW_VERBOSE_THIRDPARTY_BUILD=ON -DCMAKE_UNITY_BUILD=ON -DPARQUET_BUILD_EXECUTABLES=ON -DAWSSDK_HOME=/private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/build-apache-arrow/opt/aws-sdk-cpp -DLZ4_HOME=/private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/build-apache-arrow/opt/lz4 -DTHRIFT_HOME=/private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/build-apache-arrow/opt/thrift
==> make
Last 15 lines from /Users/travis/Library/Logs/Homebrew/apache-arrow/02.make:
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Any ideas @jeroen @pitrou ?

@pitrou
Copy link
Member

pitrou commented Aug 11, 2020

No idea. Can we have the entire output from make?

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-cpp-autobrew

@github-actions
Copy link

Revision: 9a8364dd3e89052f2925f34fc591f5e17563ab90

Submitted crossbow builds: ursa-labs/crossbow @ actions-475

Task Status
homebrew-cpp-autobrew TravisCI

@jeroen
Copy link
Contributor

jeroen commented Aug 11, 2020

Maybe there is a problem with the unity builds of aws-sdk-cpp or arrow

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-cpp-autobrew

@github-actions
Copy link

Revision: 3e72b7ad35355b66ae9b34d2d26dbcb879d19f82

Submitted crossbow builds: ursa-labs/crossbow @ actions-476

Task Status
homebrew-cpp-autobrew TravisCI

@jeroen
Copy link
Contributor

jeroen commented Aug 11, 2020

If I disable the arrow unity build, then it succeeds in linking aws-sdk, but then it fails building the vendored jemalloc. If I disable both jemalloc and unity-build, then everything works for me.

@nealrichardson
Copy link
Member Author

In https://travis-ci.org/github/ursa-labs/crossbow/builds/716930465 it seems that cmake can't find aws-c-common, though I see it is downloaded, so I wonder if we're hitting that cmake issue I referenced yesterday @jeroen.

@nealrichardson
Copy link
Member Author

If I disable the arrow unity build, then it succeeds in linking aws-sdk, but then it fails building the vendored jemalloc. If I disable both jemalloc and unity-build, then everything works for me.

Where do you see that?

@nealrichardson
Copy link
Member Author

Ok I've conditionally enabled ARROW_S3 for Rtools40 and not for Rtools35. Now we just need to sort out the autobrew issues.

@nealrichardson
Copy link
Member Author

I ran the autobrew locally and think I've got the full error here. It looks like it's linking some parquet lib and maybe needs to include the aws-sdk-cpp libs but isn't? I don't understand what it's trying to do or why though, particularly since we're building with -DARROW_BUILD_SHARED=OFF.

Does this provide any insight @pitrou @jeroen?

...
[ 95%] Built target arrow_dataset_static
[ 96%] Linking CXX executable ../../release/parquet-dump-schema
cd /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/hbtmp/apache-arrow-20200814-87974-y9m2as/build/tools/parquet && /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/Cellar/cmake/3.18.1/bin/cmake -E cmake_link_script CMakeFiles/parquet-dump-schema.dir/link.txt --verbose=1
/Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/Library/Homebrew/shims/mac/super/clang++   -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG  -Wall -Wno-unknown-Note-option -Wno-pass-failed -stdlib=libc++ -msse4.2  -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/parquet-dump-schema.dir/Unity/unity_0_cxx.cxx.o -o ../../release/parquet-dump-schema  ../../release/libparquet.a ../../release/libarrow.a /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/opt/openssl/lib/libssl.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/opt/openssl/lib/libcrypto.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/liblz4.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/libsnappy.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd ../../jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/libthrift.dylib 
[ 98%] Linking CXX executable ../../release/parquet-reader
cd /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/hbtmp/apache-arrow-20200814-87974-y9m2as/build/tools/parquet && /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/Cellar/cmake/3.18.1/bin/cmake -E cmake_link_script CMakeFiles/parquet-reader.dir/link.txt --verbose=1
[100%] Linking CXX executable ../../release/parquet-scan
cd /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/hbtmp/apache-arrow-20200814-87974-y9m2as/build/tools/parquet && /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/Cellar/cmake/3.18.1/bin/cmake -E cmake_link_script CMakeFiles/parquet-scan.dir/link.txt --verbose=1
/Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/Library/Homebrew/shims/mac/super/clang++   -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG  -Wall -Wno-unknown-Note-option -Wno-pass-failed -stdlib=libc++ -msse4.2  -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/parquet-reader.dir/Unity/unity_0_cxx.cxx.o -o ../../release/parquet-reader  ../../release/libparquet.a ../../release/libarrow.a /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/opt/openssl/lib/libssl.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/opt/openssl/lib/libcrypto.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/liblz4.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/libsnappy.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd ../../jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/libthrift.dylib 
/Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/Library/Homebrew/shims/mac/super/clang++   -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG  -Wall -Wno-unknown-Note-option -Wno-pass-failed -stdlib=libc++ -msse4.2  -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/parquet-scan.dir/Unity/unity_0_cxx.cxx.o -o ../../release/parquet-scan  ../../release/libparquet.a ../../release/libarrow.a /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/opt/openssl/lib/libssl.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/opt/openssl/lib/libcrypto.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/liblz4.dylib /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/libsnappy.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd ../../jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a /Users/enpiar/Documents/ursa/arrow/r/autobrew-dir/build-apache-arrow/lib/libthrift.dylib 
Undefined symbols for architecture x86_64:
Undefined symbols for architecture x86_64:
Undefined symbols for architecture x86_64:
  "Aws::ShutdownAPI(Aws::SDKOptions const&)", referenced from:
  "Aws::ShutdownAPI(Aws::SDKOptions const&)", referenced from:
  "Aws::ShutdownAPI(Aws::SDKOptions const&)", referenced from:
      arrow::fs::FinalizeS3() in libarrow.a(s3fs.cc.o)
      arrow::fs::FinalizeS3() in libarrow.a(s3fs.cc.o)
      arrow::fs::FinalizeS3() in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CompletedPart::CompletedPart()", referenced from:
  "Aws::S3::Model::CompletedPart::CompletedPart()", referenced from:
  "Aws::S3::Model::CompletedPart::CompletedPart()", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::AddCompletedPart(std::__1::shared_ptr<arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadState> const&, int, Aws::S3::Model::UploadPartResult const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::AddCompletedPart(std::__1::shared_ptr<arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadState> const&, int, Aws::S3::Model::UploadPartResult const&) in libarrow.a(s3fs.cc.o)
      std::__1::vector<Aws::S3::Model::CompletedPart, std::__1::allocator<Aws::S3::Model::CompletedPart> >::__append(unsigned long) in libarrow.a(s3fs.cc.o)
      std::__1::vector<Aws::S3::Model::CompletedPart, std::__1::allocator<Aws::S3::Model::CompletedPart> >::__append(unsigned long) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::AddCompletedPart(std::__1::shared_ptr<arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadState> const&, int, Aws::S3::Model::UploadPartResult const&) in libarrow.a(s3fs.cc.o)
      std::__1::vector<Aws::S3::Model::CompletedPart, std::__1::allocator<Aws::S3::Model::CompletedPart> >::__append(unsigned long) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::GetObjectResult::GetObjectResult(Aws::S3::Model::GetObjectResult&&)", referenced from:
  "Aws::S3::Model::GetObjectResult::GetObjectResult(Aws::S3::Model::GetObjectResult&&)", referenced from:
  "Aws::S3::Model::GetObjectResult::GetObjectResult(Aws::S3::Model::GetObjectResult&&)", referenced from:
      arrow::fs::(anonymous namespace)::ObjectInputFile::ReadAt(long long, long long, void*) in libarrow.a(s3fs.cc.o)
      arrow::Result<Aws::S3::Model::GetObjectResult>::Result(Aws::S3::Model::GetObjectResult&&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::ReadAt(long long, long long, void*) in libarrow.a(s3fs.cc.o)
      arrow::Result<Aws::S3::Model::GetObjectResult>::Result<Aws::S3::Model::GetObjectResult, void>(arrow::Result<Aws::S3::Model::GetObjectResult>&&) in libarrow.a(s3fs.cc.o)
      arrow::Result<Aws::S3::Model::GetObjectResult>::Result(Aws::S3::Model::GetObjectResult&&) in libarrow.a(s3fs.cc.o)
      arrow::Result<Aws::S3::Model::GetObjectResult>::Result<Aws::S3::Model::GetObjectResult, void>(arrow::Result<Aws::S3::Model::GetObjectResult>&&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::ReadAt(long long, long long, void*) in libarrow.a(s3fs.cc.o)
      arrow::Result<Aws::S3::Model::GetObjectResult>::Result(Aws::S3::Model::GetObjectResult&&) in libarrow.a(s3fs.cc.o)
      arrow::Result<Aws::S3::Model::GetObjectResult>::Result<Aws::S3::Model::GetObjectResult, void>(arrow::Result<Aws::S3::Model::GetObjectResult>&&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::GetObjectRequest::GetObjectRequest()", referenced from:
  "Aws::S3::Model::GetObjectRequest::GetObjectRequest()", referenced from:
  "Aws::S3::Model::GetObjectRequest::GetObjectRequest()", referenced from:
      arrow::fs::(anonymous namespace)::ObjectInputFile::ReadAt(long long, long long, void*) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::ReadAt(long long, long long, void*) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::ReadAt(long long, long long, void*) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::ObjectIdentifier::ObjectIdentifier()", referenced from:
  "Aws::S3::Model::ObjectIdentifier::ObjectIdentifier()", referenced from:
  "Aws::S3::Model::ObjectIdentifier::ObjectIdentifier()", referenced from:
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::PutObjectRequest::PutObjectRequest()", referenced from:
  "Aws::S3::Model::PutObjectRequest::PutObjectRequest()", referenced from:
  "Aws::S3::Model::PutObjectRequest::PutObjectRequest()", referenced from:
      arrow::fs::S3FileSystem::Impl::CreateEmptyObject(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 libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateEmptyObject(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 libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateEmptyObject(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 libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CopyObjectRequest::CopyObjectRequest()", referenced from:
  "Aws::S3::Model::CopyObjectRequest::CopyObjectRequest()", referenced from:
  "Aws::S3::Model::CopyObjectRequest::CopyObjectRequest()", referenced from:
      arrow::fs::S3FileSystem::Impl::CopyObject(arrow::fs::(anonymous namespace)::S3Path const&, arrow::fs::(anonymous namespace)::S3Path const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CopyObject(arrow::fs::(anonymous namespace)::S3Path const&, arrow::fs::(anonymous namespace)::S3Path const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CopyObject(arrow::fs::(anonymous namespace)::S3Path const&, arrow::fs::(anonymous namespace)::S3Path const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::HeadBucketRequest::HeadBucketRequest()", referenced from:
  "Aws::S3::Model::HeadBucketRequest::HeadBucketRequest()", referenced from:
  "Aws::S3::Model::HeadBucketRequest::HeadBucketRequest()", referenced from:
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::HeadObjectRequest::HeadObjectRequest()", referenced from:
  "Aws::S3::Model::HeadObjectRequest::HeadObjectRequest()", referenced from:
  "Aws::S3::Model::HeadObjectRequest::HeadObjectRequest()", referenced from:
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::Init() in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::IsEmptyDirectory(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&, bool*) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::Init() in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::IsEmptyDirectory(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&, bool*) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectInputFile::Init() in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::IsEmptyDirectory(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&, bool*) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::UploadPartRequest::UploadPartRequest()", referenced from:
  "Aws::S3::Model::UploadPartRequest::UploadPartRequest()", referenced from:
  "Aws::S3::Model::UploadPartRequest::UploadPartRequest()", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadPart(void const*, long long, std::__1::shared_ptr<arrow::Buffer>) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadPart(void const*, long long, std::__1::shared_ptr<arrow::Buffer>) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::UploadPart(void const*, long long, std::__1::shared_ptr<arrow::Buffer>) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CreateBucketRequest::CreateBucketRequest()", referenced from:
  "Aws::S3::Model::CreateBucketRequest::CreateBucketRequest()", referenced from:
  "Aws::S3::Model::CreateBucketRequest::CreateBucketRequest()", referenced from:
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::DeleteBucketRequest::DeleteBucketRequest()", referenced from:
  "Aws::S3::Model::DeleteBucketRequest::DeleteBucketRequest()", referenced from:
  "Aws::S3::Model::DeleteBucketRequest::DeleteBucketRequest()", referenced from:
      arrow::fs::S3FileSystem::DeleteDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::DeleteObjectRequest::DeleteObjectRequest()", referenced from:
  "Aws::S3::Model::DeleteObjectRequest::DeleteObjectRequest()", referenced from:
  "Aws::S3::Model::DeleteObjectRequest::DeleteObjectRequest()", referenced from:
      arrow::fs::S3FileSystem::Impl::DeleteObject(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 libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObject(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 libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObject(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 libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::DeleteObjectsRequest::DeleteObjectsRequest()", referenced from:
  "Aws::S3::Model::DeleteObjectsRequest::DeleteObjectsRequest()", referenced from:
  "Aws::S3::Model::DeleteObjectsRequest::DeleteObjectsRequest()", referenced from:
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::ListObjectsV2Request::ListObjectsV2Request()", referenced from:
  "Aws::S3::Model::ListObjectsV2Request::ListObjectsV2Request()", referenced from:
  "Aws::S3::Model::ListObjectsV2Request::ListObjectsV2Request()", referenced from:
      arrow::fs::S3FileSystem::Impl::IsNonEmptyDirectory(arrow::fs::(anonymous namespace)::S3Path const&, bool*) in libarrow.a(s3fs.cc.o)
      arrow::Status arrow::fs::S3FileSystem::Impl::ListObjectsV2<arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&), arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> 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&, arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)&&, arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> const&)&&) in libarrow.a(s3fs.cc.o)
      arrow::Status arrow::fs::S3FileSystem::Impl::ListObjectsV2<arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&), arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> 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&, arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)&&, arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> const&)&&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::IsNonEmptyDirectory(arrow::fs::(anonymous namespace)::S3Path const&, bool*) in libarrow.a(s3fs.cc.o)
      arrow::Status arrow::fs::S3FileSystem::Impl::ListObjectsV2<arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&), arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> 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&, arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)&&, arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> const&)&&) in libarrow.a(s3fs.cc.o)
      arrow::Status arrow::fs::S3FileSystem::Impl::ListObjectsV2<arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&), arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> 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&, arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)&&, arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> const&)&&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::IsNonEmptyDirectory(arrow::fs::(anonymous namespace)::S3Path const&, bool*) in libarrow.a(s3fs.cc.o)
      arrow::Status arrow::fs::S3FileSystem::Impl::ListObjectsV2<arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&), arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> 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&, arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)&&, arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> const&)&&) in libarrow.a(s3fs.cc.o)
      arrow::Status arrow::fs::S3FileSystem::Impl::ListObjectsV2<arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&), arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> 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&, arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)&&, arrow::fs::S3FileSystem::Impl::WalkForDeleteDir(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&, int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)::'lambda'(Aws::Client::AWSError<Aws::S3::S3Errors> const&)&&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CompletedMultipartUpload::CompletedMultipartUpload()", referenced from:
  "Aws::S3::Model::CompletedMultipartUpload::CompletedMultipartUpload()", referenced from:
  "Aws::S3::Model::CompletedMultipartUpload::CompletedMultipartUpload()", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CreateBucketConfiguration::CreateBucketConfiguration()", referenced from:
  "Aws::S3::Model::CreateBucketConfiguration::CreateBucketConfiguration()", referenced from:
  "Aws::S3::Model::CreateBucketConfiguration::CreateBucketConfiguration()", referenced from:
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::AbortMultipartUploadRequest::AbortMultipartUploadRequest()", referenced from:
  "Aws::S3::Model::AbortMultipartUploadRequest::AbortMultipartUploadRequest()", referenced from:
  "Aws::S3::Model::AbortMultipartUploadRequest::AbortMultipartUploadRequest()", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Abort() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Abort() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Abort() in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CreateMultipartUploadRequest::CreateMultipartUploadRequest()", referenced from:
  "Aws::S3::Model::CreateMultipartUploadRequest::CreateMultipartUploadRequest()", referenced from:
  "Aws::S3::Model::CreateMultipartUploadRequest::CreateMultipartUploadRequest()", referenced from:
      arrow::fs::S3FileSystem::OpenOutputStream(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::OpenOutputStream(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::OpenOutputStream(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
  "Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
  "Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CreateBucket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::CompleteMultipartUploadRequest::CompleteMultipartUploadRequest()", referenced from:
  "Aws::S3::Model::CompleteMultipartUploadRequest::CompleteMultipartUploadRequest()", referenced from:
  "Aws::S3::Model::CompleteMultipartUploadRequest::CompleteMultipartUploadRequest()", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
  "Aws::S3::Model::Delete::Delete()", referenced from:
  "Aws::S3::Model::Delete::Delete()", referenced from:
  "Aws::S3::Model::Delete::Delete()", referenced from:
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
  "Aws::S3::S3Client::S3Client(Aws::Auth::AWSCredentials const&, Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION)", referenced from:
  "Aws::S3::S3Client::S3Client(Aws::Auth::AWSCredentials const&, Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION)", referenced from:
  "Aws::S3::S3Client::S3Client(Aws::Auth::AWSCredentials const&, Aws::Client::ClientConfiguration const&, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy, bool, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION)", referenced from:
      arrow::fs::S3FileSystem::Impl::Init() in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Init() in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Init() in libarrow.a(s3fs.cc.o)
  "Aws::AmazonStreamingWebServiceRequest::~AmazonStreamingWebServiceRequest()", referenced from:
  "Aws::AmazonStreamingWebServiceRequest::~AmazonStreamingWebServiceRequest()", referenced from:
  "Aws::AmazonStreamingWebServiceRequest::~AmazonStreamingWebServiceRequest()", referenced from:
      Aws::S3::Model::PutObjectRequest::~PutObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::UploadPartRequest::~UploadPartRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::PutObjectRequest::~PutObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::UploadPartRequest::~UploadPartRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::PutObjectRequest::~PutObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::UploadPartRequest::~UploadPartRequest() in libarrow.a(s3fs.cc.o)
  "Aws::Auth::AWSCredentialsProvider::IsTimeToRefresh(long)", referenced from:
  "Aws::Auth::AWSCredentialsProvider::IsTimeToRefresh(long)", referenced from:
  "Aws::Auth::AWSCredentialsProvider::IsTimeToRefresh(long)", referenced from:
      vtable for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
  "Aws::Auth::AWSCredentialsProvider::Reload()", referenced from:
  "Aws::Auth::AWSCredentialsProvider::Reload()", referenced from:
  "Aws::Auth::AWSCredentialsProvider::Reload()", referenced from:
      vtable for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      vtable for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
  "Aws::Auth::DefaultAWSCredentialsProviderChain::DefaultAWSCredentialsProviderChain()", referenced from:
  "Aws::Auth::DefaultAWSCredentialsProviderChain::DefaultAWSCredentialsProviderChain()", referenced from:
  "Aws::Auth::DefaultAWSCredentialsProviderChain::DefaultAWSCredentialsProviderChain()", referenced from:
      std::__1::shared_ptr<Aws::Auth::DefaultAWSCredentialsProviderChain> std::__1::shared_ptr<Aws::Auth::DefaultAWSCredentialsProviderChain>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::DefaultAWSCredentialsProviderChain> std::__1::shared_ptr<Aws::Auth::DefaultAWSCredentialsProviderChain>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::DefaultAWSCredentialsProviderChain> std::__1::shared_ptr<Aws::Auth::DefaultAWSCredentialsProviderChain>::make_shared<>() in libarrow.a(s3fs.cc.o)
  "Aws::Utils::StringUtils::URLEncode(char const*)", referenced from:
  "Aws::Utils::StringUtils::URLEncode(char const*)", referenced from:
  "Aws::Utils::StringUtils::URLEncode(char const*)", referenced from:
      arrow::fs::S3FileSystem::Impl::CopyObject(arrow::fs::(anonymous namespace)::S3Path const&, arrow::fs::(anonymous namespace)::S3Path const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CopyObject(arrow::fs::(anonymous namespace)::S3Path const&, arrow::fs::(anonymous namespace)::S3Path const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::CopyObject(arrow::fs::(anonymous namespace)::S3Path const&, arrow::fs::(anonymous namespace)::S3Path const&) in libarrow.a(s3fs.cc.o)
  "Aws::Utils::Stream::ResponseStream::~ResponseStream()", referenced from:
  "Aws::Utils::Stream::ResponseStream::~ResponseStream()", referenced from:
  "Aws::Utils::Stream::ResponseStream::~ResponseStream()", referenced from:
      Aws::S3::Model::GetObjectResult::~GetObjectResult() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::GetObjectResult::~GetObjectResult() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::GetObjectResult::~GetObjectResult() in libarrow.a(s3fs.cc.o)
  "Aws::Utils::Stream::PreallocatedStreamBuf::seekoff(long long, std::__1::ios_base::seekdir, unsigned int)", referenced from:
  "Aws::Utils::Stream::PreallocatedStreamBuf::seekoff(long long, std::__1::ios_base::seekdir, unsigned int)", referenced from:
  "Aws::Utils::Stream::PreallocatedStreamBuf::seekoff(long long, std::__1::ios_base::seekdir, unsigned int)", referenced from:
      vtable for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
      vtable for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
      vtable for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
  "Aws::Utils::Stream::PreallocatedStreamBuf::seekpos(std::__1::fpos<__mbstate_t>, unsigned int)", referenced from:
  "Aws::Utils::Stream::PreallocatedStreamBuf::seekpos(std::__1::fpos<__mbstate_t>, unsigned int)", referenced from:
  "Aws::Utils::Stream::PreallocatedStreamBuf::seekpos(std::__1::fpos<__mbstate_t>, unsigned int)", referenced from:
      vtable for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
      vtable for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
      vtable for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
  "Aws::Utils::Stream::PreallocatedStreamBuf::PreallocatedStreamBuf(unsigned char*, unsigned long)", referenced from:
  "Aws::Utils::Stream::PreallocatedStreamBuf::PreallocatedStreamBuf(unsigned char*, unsigned long)", referenced from:
  "Aws::Utils::Stream::PreallocatedStreamBuf::PreallocatedStreamBuf(unsigned char*, unsigned long)", referenced from:
      arrow::fs::(anonymous namespace)::StringViewStream::StringViewStream(void const*, long long) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::StringViewStream::StringViewStream(void const*, long long) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::StringViewStream::StringViewStream(void const*, long long) in libarrow.a(s3fs.cc.o)
  "Aws::Utils::Logging::FormattedLogSystem::FormattedLogSystem(Aws::Utils::Logging::LogLevel)", referenced from:
  "Aws::Utils::Logging::FormattedLogSystem::FormattedLogSystem(Aws::Utils::Logging::LogLevel)", referenced from:
  "Aws::Utils::Logging::FormattedLogSystem::FormattedLogSystem(Aws::Utils::Logging::LogLevel)", referenced from:
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
  "Aws::Utils::DateTime::DateTime(std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > > const&)", referenced from:
  "Aws::Utils::DateTime::DateTime(std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > > const&)", referenced from:
  "Aws::Utils::DateTime::DateTime(std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > > const&)", referenced from:
      Aws::Auth::AWSCredentials::AWSCredentials() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AWSCredentials::AWSCredentials() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AWSCredentials::AWSCredentials(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 libarrow.a(s3fs.cc.o)
      Aws::Auth::AWSCredentials::AWSCredentials(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 libarrow.a(s3fs.cc.o)
      Aws::Auth::AWSCredentials::AWSCredentials() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AWSCredentials::AWSCredentials(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 libarrow.a(s3fs.cc.o)
  "Aws::Utils::Threading::ReaderWriterLock::ReaderWriterLock()", referenced from:
  "Aws::Utils::Threading::ReaderWriterLock::ReaderWriterLock()", referenced from:
  "Aws::Utils::Threading::ReaderWriterLock::ReaderWriterLock()", referenced from:
      std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::SimpleAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::SimpleAWSCredentialsProvider>::make_shared<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::SimpleAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::SimpleAWSCredentialsProvider>::make_shared<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::SimpleAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::SimpleAWSCredentialsProvider>::make_shared<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) in libarrow.a(s3fs.cc.o)
  "Aws::Client::ClientConfiguration::ClientConfiguration()", referenced from:
  "Aws::Client::ClientConfiguration::ClientConfiguration()", referenced from:
  "Aws::Client::ClientConfiguration::ClientConfiguration()", referenced from:
      arrow::fs::S3FileSystem::Impl::Impl(arrow::fs::S3Options) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Impl(arrow::fs::S3Options) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Impl(arrow::fs::S3Options) in libarrow.a(s3fs.cc.o)
  "Aws::InitAPI(Aws::SDKOptions const&)", referenced from:
  "Aws::InitAPI(Aws::SDKOptions const&)", referenced from:
  "Aws::InitAPI(Aws::SDKOptions const&)", referenced from:
      arrow::fs::(anonymous namespace)::DoInitializeS3(arrow::fs::S3GlobalOptions const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::DoInitializeS3(arrow::fs::S3GlobalOptions const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::DoInitializeS3(arrow::fs::S3GlobalOptions const&) in libarrow.a(s3fs.cc.o)
  "Aws::Utils::DateTime::UnderlyingTimestamp() const", referenced from:
  "Aws::Utils::DateTime::UnderlyingTimestamp() const", referenced from:
  "Aws::Utils::DateTime::UnderlyingTimestamp() const", referenced from:
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)::operator()(Aws::S3::Model::ListObjectsV2Result const&) const in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)::operator()(Aws::S3::Model::ListObjectsV2Result const&) const in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::Walk(arrow::fs::FileSelector 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&, int, std::__1::vector<arrow::fs::FileInfo, std::__1::allocator<arrow::fs::FileInfo> >*)::'lambda'(Aws::S3::Model::ListObjectsV2Result const&)::operator()(Aws::S3::Model::ListObjectsV2Result const&) const in libarrow.a(s3fs.cc.o)
  "typeinfo for Aws::Auth::AWSCredentialsProvider", referenced from:
  "typeinfo for Aws::Auth::AWSCredentialsProvider", referenced from:
  "typeinfo for Aws::Auth::AWSCredentialsProvider", referenced from:
      typeinfo for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      typeinfo for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      typeinfo for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      typeinfo for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      typeinfo for Aws::Auth::AnonymousAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
      typeinfo for Aws::Auth::SimpleAWSCredentialsProvider in libarrow.a(s3fs.cc.o)
  "typeinfo for Aws::Utils::Stream::PreallocatedStreamBuf", referenced from:
  "typeinfo for Aws::Utils::Stream::PreallocatedStreamBuf", referenced from:
  "typeinfo for Aws::Utils::Stream::PreallocatedStreamBuf", referenced from:
      typeinfo for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
      typeinfo for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
      typeinfo for arrow::fs::(anonymous namespace)::StringViewStream in libarrow.a(s3fs.cc.o)
  "vtable for Aws::S3::Model::GetObjectRequest", referenced from:
  "vtable for Aws::S3::Model::GetObjectRequest", referenced from:
  "vtable for Aws::S3::Model::GetObjectRequest", referenced from:
      Aws::S3::Model::GetObjectRequest::~GetObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::GetObjectRequest::~GetObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::GetObjectRequest::~GetObjectRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::PutObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::PutObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::PutObjectRequest", referenced from:
      Aws::S3::Model::PutObjectRequest::~PutObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::PutObjectRequest::~PutObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::PutObjectRequest::~PutObjectRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CopyObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CopyObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CopyObjectRequest", referenced from:
      Aws::S3::Model::CopyObjectRequest::~CopyObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::CopyObjectRequest::~CopyObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::CopyObjectRequest::~CopyObjectRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::HeadBucketRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::HeadBucketRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::HeadBucketRequest", referenced from:
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::GetFileInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::HeadObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::HeadObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::HeadObjectRequest", referenced from:
      Aws::S3::Model::HeadObjectRequest::~HeadObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::HeadObjectRequest::~HeadObjectRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::HeadObjectRequest::~HeadObjectRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::UploadPartRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::UploadPartRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::UploadPartRequest", referenced from:
      Aws::S3::Model::UploadPartRequest::~UploadPartRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::UploadPartRequest::~UploadPartRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::UploadPartRequest::~UploadPartRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CreateBucketRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CreateBucketRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CreateBucketRequest", referenced from:
      Aws::S3::Model::CreateBucketRequest::~CreateBucketRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::CreateBucketRequest::~CreateBucketRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::CreateBucketRequest::~CreateBucketRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteBucketRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteBucketRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteBucketRequest", referenced from:
      arrow::fs::S3FileSystem::DeleteDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::DeleteDir(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteObjectRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteObjectRequest", referenced from:
      arrow::fs::S3FileSystem::Impl::DeleteObject(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 libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObject(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 libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObject(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 libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteObjectsRequest", referenced from:
  "vtable for Aws::S3::Model::DeleteObjectsRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::DeleteObjectsRequest", referenced from:
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
      arrow::fs::S3FileSystem::Impl::DeleteObjects(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::ListObjectsV2Request", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::ListObjectsV2Request", referenced from:
  "vtable for Aws::S3::Model::ListObjectsV2Request", referenced from:
      Aws::S3::Model::ListObjectsV2Request::~ListObjectsV2Request() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::ListObjectsV2Request::~ListObjectsV2Request() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::ListObjectsV2Request::~ListObjectsV2Request() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::AbortMultipartUploadRequest", referenced from:
  "vtable for Aws::S3::Model::AbortMultipartUploadRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::AbortMultipartUploadRequest", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Abort() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Abort() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Abort() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CreateMultipartUploadRequest", referenced from:
  "vtable for Aws::S3::Model::CreateMultipartUploadRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CreateMultipartUploadRequest", referenced from:
      Aws::S3::Model::CreateMultipartUploadRequest::~CreateMultipartUploadRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::CreateMultipartUploadRequest::~CreateMultipartUploadRequest() in libarrow.a(s3fs.cc.o)
      Aws::S3::Model::CreateMultipartUploadRequest::~CreateMultipartUploadRequest() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CompleteMultipartUploadRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CompleteMultipartUploadRequest", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::S3::Model::CompleteMultipartUploadRequest", referenced from:
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
      arrow::fs::(anonymous namespace)::ObjectOutputStream::Close() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Auth::AWSCredentialsProvider", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Auth::AWSCredentialsProvider", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Auth::AWSCredentialsProvider", referenced from:
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::AnonymousAWSCredentialsProvider, std::__1::allocator<Aws::Auth::AnonymousAWSCredentialsProvider> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::AnonymousAWSCredentialsProvider, std::__1::allocator<Aws::Auth::AnonymousAWSCredentialsProvider> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AnonymousAWSCredentialsProvider::~AnonymousAWSCredentialsProvider() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider>::make_shared<>() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AnonymousAWSCredentialsProvider::~AnonymousAWSCredentialsProvider() in libarrow.a(s3fs.cc.o)
      ...
      std::__1::__shared_ptr_emplace<Aws::Auth::AnonymousAWSCredentialsProvider, std::__1::allocator<Aws::Auth::AnonymousAWSCredentialsProvider> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::AnonymousAWSCredentialsProvider, std::__1::allocator<Aws::Auth::AnonymousAWSCredentialsProvider> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AnonymousAWSCredentialsProvider::~AnonymousAWSCredentialsProvider() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AnonymousAWSCredentialsProvider::~AnonymousAWSCredentialsProvider() in libarrow.a(s3fs.cc.o)
      ...
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider> std::__1::shared_ptr<Aws::Auth::AnonymousAWSCredentialsProvider>::make_shared<>() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::AnonymousAWSCredentialsProvider, std::__1::allocator<Aws::Auth::AnonymousAWSCredentialsProvider> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::AnonymousAWSCredentialsProvider, std::__1::allocator<Aws::Auth::AnonymousAWSCredentialsProvider> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AnonymousAWSCredentialsProvider::~AnonymousAWSCredentialsProvider() in libarrow.a(s3fs.cc.o)
      Aws::Auth::AnonymousAWSCredentialsProvider::~AnonymousAWSCredentialsProvider() in libarrow.a(s3fs.cc.o)
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Auth::AWSCredentialsProviderChain", referenced from:
  "vtable for Aws::Auth::AWSCredentialsProviderChain", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Auth::AWSCredentialsProviderChain", referenced from:
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
      std::__1::__shared_ptr_emplace<Aws::Auth::DefaultAWSCredentialsProviderChain, std::__1::allocator<Aws::Auth::DefaultAWSCredentialsProviderChain> >::~__shared_ptr_emplace() in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Utils::Logging::ConsoleLogSystem", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Utils::Logging::ConsoleLogSystem", referenced from:
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for Aws::Utils::Logging::ConsoleLogSystem", referenced from:
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
      std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem> std::__1::shared_ptr<Aws::Utils::Logging::ConsoleLogSystem>::make_shared<Aws::Utils::Logging::LogLevel&>(Aws::Utils::Logging::LogLevel&&&) in libarrow.a(s3fs.cc.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
ld: symbol(s) not found for architecture x86_64
ld: symbol(s) not found for architecture x86_64
clangclang: : error: error: linker command failed with exit code 1 (use -v to see invocation)
linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [release/parquet-scan] Error 1
make[2]: *** [release/parquet-reader] Error 1
make[2]: *** [release/parquet-dump-schema] Error 1
make[1]: *** [tools/parquet/CMakeFiles/parquet-scan.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [tools/parquet/CMakeFiles/parquet-dump-schema.dir/all] Error 2
make[1]: *** [tools/parquet/CMakeFiles/parquet-reader.dir/all] Error 2
make: *** [all] Error 2

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-r-autobrew

@github-actions
Copy link

Revision: f990f73a94a392306fdbdb5ce7735c3b4387193d

Submitted crossbow builds: ursa-labs/crossbow @ actions-483

Task Status
homebrew-r-autobrew TravisCI

@jeroen
Copy link
Contributor

jeroen commented Aug 14, 2020

@nealrichardson this works for me: autobrew/homebrew-core#17

@nealrichardson
Copy link
Member Author

If the choice is between jemalloc and S3 support, I think we have to go with jemalloc. But hopefully we don't have to choose. I got something working locally, just trying now to see if it works on Travis.

@nealrichardson
Copy link
Member Author

Hey this seemed to work: turning off the unity build (but jemalloc is still on), plus a few tweaks to the autobrew script, got a passing R build. Will re-run to triple-check that the -DARROW_R_WITH_S3 flag is set.

@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-r-autobrew

@github-actions
Copy link

Revision: f4afc43981c2cdae9f1758d521ec0ac0e28921fc

Submitted crossbow builds: ursa-labs/crossbow @ actions-484

Task Status
homebrew-r-autobrew TravisCI

@jeroen
Copy link
Contributor

jeroen commented Aug 14, 2020

For me that didn't work on at least one version of macos. Can you try to submit a draft pr to autobrew-core to confirm ?

@nealrichardson
Copy link
Member Author

So on retry that failed like:

[ 11%] Performing install step for 'jemalloc_ep'
cd /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep && /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/build-apache-arrow/Library/Homebrew/shims/mac/super/make install
/usr/bin/install -c -d /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist/bin
/usr/bin/install -c -d /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist/include/jemalloc
install: mkdir /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist: File exists
make[3]: *** [install_include] Error 71
make[3]: *** Waiting for unfinished jobs....
/usr/bin/install -c -m 755 bin/jemalloc-config /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist/bin
/usr/bin/install -c -m 755 bin/jemalloc.sh /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist/bin
/usr/bin/install -c -m 755 bin/jeprof /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist/bin
make[2]: *** [jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-install] Error 2
make[1]: *** [CMakeFiles/jemalloc_ep.dir/all] Error 2
make: *** [all] Error 2

Which I also saw once locally but not subsequently. I don't understand what would cause mkdir /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/hbtmp/apache-arrow-20200814-85444-1nl05qr/build/jemalloc_ep-prefix/src/jemalloc_ep/dist: File exists, let alone cause it sporadically. Nor how adding aws-sdk-cpp as a dependency would affect that, nor how the unity build flag would affect that (because jemalloc isn't part of the unity build, it's an externalproject).

@pitrou
Copy link
Member

pitrou commented Aug 17, 2020

Just retry the build? This could be a sporadic issue.

@pitrou
Copy link
Member

pitrou commented Aug 18, 2020

No idea. Perhaps you can find someone with CMake and macOS expertise... :-S

@nealrichardson
Copy link
Member Author

nealrichardson commented Aug 18, 2020

Googling the error pointed me back to our own JIRA. Looks like #456 fixed this issue previously, but #2779 undid the fix. Unclear why we're seeing this race condition only here, but I'll re-fix it (in a separate PR, to help with the next time we do git blame on this line).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jeroen have you updated the CRAN repo with aws-sdk-cpp yet?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No not yet. Will do soon if we confirm that it works (and you are sure you don't want to add more modules again :))

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the macOS jemalloc install issue has been fixed now but I don't think I can easily confirm that on autobrew/homebrew-core#19 because you'd need to brew install --HEAD to pull the fix, and the brew test-bot command doesn't support head.

From the arrow perspective, builds are passing, so if you're satisfied that this is working, we can merge. And once we merge, no modules can get added to the cmake config without breaking the build, so there shouldn't be any more surprises.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok @jeroen, LMK when the CRAN rtools-packages is updated and I'll switch off of the bintray. No problem if that can't be done easily/quickly, I can merge this and swap the repos later.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have uploaded it to my server, it should sync to the mirrors in a few hours.

kou pushed a commit that referenced this pull request Aug 19, 2020
On ARROW-6437 (#7928) we saw occasional "File exists" errors on `jemalloc_ep` on macOS. Googling the error message led back to ARROW-739 (#456), which fixed this before by forcing install with `-j1`. ARROW-3492 later made it so jemalloc would build (but not install) in parallel. Then ARROW-3539 (#2779) was addressing a problem with that change and, along with fixing the build parallelization issue, unfortunately reverted the original `make -j1 install` fix.

This patch restores the fix from ARROW-739.

Closes #7995 from nealrichardson/jemalloc-install

Authored-by: Neal Richardson <neal.p.richardson@gmail.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
@nealrichardson
Copy link
Member Author

@github-actions crossbow submit homebrew-r-autobrew

@github-actions
Copy link

Revision: 97517a9

Submitted crossbow builds: ursa-labs/crossbow @ actions-494

Task Status
homebrew-r-autobrew TravisCI

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants