toddfarmer / arrow-migration

0 stars 1 forks source link

[C++] Do not transitively depend on libboost_system #1464

Closed toddfarmer closed 7 years ago

toddfarmer commented 7 years ago

Note: This issue was originally created as ARROW-1536. Please see the migration documentation for further details.

Original Issue Description:

We picked up this dependency recently. I don't think this is a blocker for 0.7.0, but it impacts static linkers (e.g. linkers of parquet-cpp)

This was introduced in ARROW-1339 https://github.com/apache/arrow/commit/94b7cfafae0bda8f68ee3e5e9702c954b0116203

cc [~mdeepak]

toddfarmer commented 7 years ago

Note: Comment by Wes McKinney (wesm): [~mdeepak] I took a quick look at this. boost::system symbols are getting pulled in as a transitive dependency to boost::filesystem. We need boost::filesystem for handling unicode file paths on Windows. Trying to conditionally use boost::filesystem only on Windows would be a lot of work without a great deal of benefit.

One solution to this problem would be to add an option to vendor the requisite Boost bits in parquet-cpp, like we've done in Arrow

https://github.com/apache/arrow/blob/master/cpp/CMakeLists.txt#L129

https://github.com/apache/arrow/blob/master/cpp/cmake_modules/ThirdpartyToolchain.cmake#L139

toddfarmer commented 7 years ago

Note: Comment by Deepak Majeti (mdeepak): [~wesmckinn] I made an attempt here https://github.com/apache/arrow/pull/1105. Please let me know what you think. Thanks!

toddfarmer commented 7 years ago

Note: Comment by Wes McKinney (wesm): Issue resolved by pull request 1105 https://github.com/apache/arrow/pull/1105