Looks like this dependency requirement is already fixed on arrow master

https://github.com/apache/arrow/blob/master/cpp/src/arrow/io/file.cc#L125


On Tue, Jan 9, 2018 at 4:04 PM, ALeX Wang <[email protected]> wrote:
> So, I ran `c++ -E` and confirmed that the `<boost/filesystem.hpp>` is
> indeed included here in arrow:
>
> https://github.com/apache/arrow/blob/97f9029ce835dfc2655ca91b9820a2e6aed89107/cpp/src/arrow/io/file.cc#L110-L111
>
> And it subsequently include `<boost/filesystem/path.hpp>` which refers to
> the `codecvt`... ... ...
>
> SO, seems to me that there is a missing dependency to the
> `libboost_filesystem.a`,
>
> Thanks,
>
> On 7 January 2018 at 20:58, Deepak Majeti <[email protected]> wrote:
>
>> For static linking, certain boost libraries are transitively needed by
>> parquet-cpp due to its dependency on Arrow.
>>
>> Below is a link to the arrow version your parquet-cpp branch is linking
>> against
>> https://github.com/apache/arrow/blob/97f9029ce835dfc2655ca91b9820a2
>> e6aed89107/cpp/src/arrow/io/file.cc
>>
>> I see that "codecvt" header and symbols are included only if "_MSC_VER" is
>> defined.
>>
>> You should not be seeing the "undefined reference to
>> `boost::filesystem::path::codecvt()" on Centos7 with GNU compiler.
>>
>> On Sun, Jan 7, 2018 at 4:26 PM, ALeX Wang <[email protected]> wrote:
>>
>> > My environment is Centos7,
>> >
>> > I do not follow the question, since when i run `cmake` it says the
>> version
>> > arrow to use,,, e.g.
>> >
>> > ```
>> > -- Building Apache Arrow from commit:
>> > 97f9029ce835dfc2655ca91b9820a2e6aed89107
>> > -- Build Type: RELEASE
>> > -- Compiler id: GNU
>> > Selected compiler gcc 4.8.5
>> > -- Found cpplint executable at /opt/parquet-cpp/build-support/cpplint.py
>> > ```
>> >
>> > Again, I was referring to the environment variables setting in the
>> > `ci/travis_script_static.sh`, and set my env vars like below:
>> >
>> > ```
>> >   190  export ARROW_EP=/opt/parquet-cpp/arrow_ep-prefix/src/arrow_ep-
>> build
>> >   191  export BROTLI_EP=$ARROW_EP/brotli_ep/src/brotli_ep-install/lib
>> >   193  export
>> > SNAPPY_STATIC_LIB=$ARROW_EP/snappy_ep/src/snappy_ep-
>> > install/lib/libsnappy.a
>> >   194  export BROTLI_STATIC_LIB_ENC=$BROTLI_EP/libbrotlienc.a
>> >   195  export BROTLI_STATIC_LIB_DEC=$BROTLI_EP/libbrotlidec.a
>> >   196  export BROTLI_STATIC_LIB_COMMON=$BROTLI_EP/libbrotlicommon.a
>> >   197  export
>> > ZLIB_STATIC_LIB=$ARROW_EP/zlib_ep/src/zlib_ep-install/lib/libz.a
>> > ```
>> >
>> > And then i ran `cmake`...
>> >
>> >
>> > Thanks,
>> >
>> > On 7 January 2018 at 03:56, Deepak Majeti <[email protected]>
>> wrote:
>> >
>> > > What is the Arrow version of your setup? Can you verify if you see the
>> > same
>> > > issue on parquet-cpp master?
>> > > It is possible we are missing the boost filesystem library dependency
>> for
>> > > the static build with MSVC.
>> > >
>> > > On Sat, Jan 6, 2018 at 10:33 AM, ALeX Wang <[email protected]> wrote:
>> > >
>> > > > Okay, my following change makes it working,,, could anyone please
>> help
>> > > > confirm,
>> > > >
>> > > > ```
>> > > > diff --git a/CMakeLists.txt b/CMakeLists.txt
>> > > > index fef0cab..25defd6 100644
>> > > > --- a/CMakeLists.txt
>> > > > +++ b/CMakeLists.txt
>> > > > @@ -500,7 +500,8 @@ if (PARQUET_BOOST_USE_SHARED)
>> > > >  else()
>> > > >    set(BOOST_LINK_LIBS
>> > > >      boost_static_regex
>> > > > -    boost_static_system)
>> > > > +    boost_static_system
>> > > > +    boost_static_filesystem)
>> > > >  endif()
>> > > >
>> > > >  #############################################################
>> > > > diff --git a/cmake_modules/ThirdpartyToolchain.cmake
>> > > > b/cmake_modules/ThirdpartyToolchain.cmake
>> > > > index 1221765..d19c4eb 100644
>> > > > --- a/cmake_modules/ThirdpartyToolchain.cmake
>> > > > +++ b/cmake_modules/ThirdpartyToolchain.cmake
>> > > > @@ -81,13 +81,15 @@ if (PARQUET_BOOST_USE_SHARED)
>> > > >  else()
>> > > >    # Find static Boost libraries.
>> > > >    set(Boost_USE_STATIC_LIBS ON)
>> > > > -  find_package(Boost COMPONENTS regex system REQUIRED)
>> > > > +  find_package(Boost COMPONENTS regex system filesystem REQUIRED)
>> > > >    if ("${UPPERCASE_BUILD_TYPE}" STREQUAL "DEBUG")
>> > > >      set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_DEBUG})
>> > > >      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
>> > > > +    set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_
>> > > > DEBUG})
>> > > >    else()
>> > > >      set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_RELEASE})
>> > > >      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_
>> RELEASE})
>> > > > +    set(BOOST_STATIC_FILESYSTEM_LIBRARY
>> > > > ${Boost_FILESYSTEM_LIBRARY_RELEASE})
>> > > >    endif()
>> > > >  endif()
>> > > >
>> > > > @@ -115,6 +117,8 @@ else()
>> > > >    set_target_properties(boost_static_regex PROPERTIES
>> > IMPORTED_LOCATION
>> > > > ${BOOST_STATIC_REGEX_LIBRARY})
>> > > >    add_library(boost_static_system STATIC IMPORTED)
>> > > >    set_target_properties(boost_static_system PROPERTIES
>> > > IMPORTED_LOCATION
>> > > > ${BOOST_STATIC_SYSTEM_LIBRARY})
>> > > > +  add_library(boost_static_filesystem STATIC IMPORTED)
>> > > > +  set_target_properties(boost_static_filesystem PROPERTIES
>> > > > IMPORTED_LOCATION ${BOOST_STATIC_FILESYSTEM_LIBRARY})
>> > > >  endif()
>> > > >
>> > > >  include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
>> > > > ```
>> > > >
>> > > > On 5 January 2018 at 20:29, ALeX Wang <[email protected]> wrote:
>> > > >
>> > > > > Also, i'm building from
>> > > > >
>> > > > > ```
>> > > > > commit 18ca3922e688a3a730d693ff8f2cfbfd65da8c46
>> > > > > Author: Uwe L. Korn <[email protected]>
>> > > > > Date:   Sun Sep 17 13:55:43 2017 -0400
>> > > > >
>> > > > >     PARQUET-1094: Add benchmark for boolean Arrow column I/O
>> > > > >
>> > > > >     Author: Uwe L. Korn <[email protected]>
>> > > > >
>> > > > >     Closes #391 from xhochy/PARQUET-1094 and squashes the following
>> > > > > commits:
>> > > > >
>> > > > >     089bb3c [Uwe L. Korn] PARQUET-1094: Add benchmark for boolean
>> > Arrow
>> > > > > column I/O
>> > > > > ```
>> > > > >
>> > > > > On 5 January 2018 at 20:27, ALeX Wang <[email protected]> wrote:
>> > > > >
>> > > > >> Hi,
>> > > > >>
>> > > > >> I'm referring to the https://github.com/apache/
>> > > > >> parquet-cpp/blob/master/ci/travis_script_static.sh
>> > > > >> and try to build static library,
>> > > > >>
>> > > > >> My cmake cmdline looks like:
>> > > > >> ```
>> > > > >> cmake3 -DCMAKE_BUILD_TYPE=Release -DPARQUET_BUILD_EXAMPLES=OFF
>> > > > >> -DPARQUET_BUILD_TESTS=OFF  -DPARQUET_ARROW_LINKAGE="static"
>> > > > >>  -DPARQUET_BUILD_SHARED=OFF -DPARQUET_BOOST_USE_SHARED=OFF  .
>> > > > >> ```
>> > > > >>
>> > > > >> However, the compilation failed with:
>> > > > >> ```
>> > > > >> [ 90%] Linking CXX executable ../build/release/parquet-scan
>> > > > >> ../build/release/libarrow.a(file.cc.o): In function
>> > > > >> `arrow::io::FileOutputStream::Open(std::string const&, bool,
>> > > > >> std::shared_ptr<arrow::io::FileOutputStream>*)':
>> > > > >> file.cc:(.text+0x2f1f): undefined reference to
>> > > > >> `boost::filesystem::path::codecvt()'
>> > > > >> ../build/release/libarrow.a(file.cc.o): In function
>> > > > >> `arrow::io::ReadableFile::Open(std::string const&,
>> > > arrow::MemoryPool*,
>> > > > >> std::shared_ptr<arrow::io::ReadableFile>*)':
>> > > > >> file.cc:(.text+0x33d0): undefined reference to
>> > > > >> `boost::filesystem::path::codecvt()'
>> > > > >> ../build/release/libarrow.a(file.cc.o): In function
>> > > > >> `arrow::io::ReadableFile::Open(std::string const&,
>> > > > >> std::shared_ptr<arrow::io::ReadableFile>*)':
>> > > > >> file.cc:(.text+0x3865): undefined reference to
>> > > > >> `boost::filesystem::path::codecvt()'
>> > > > >> ../build/release/libarrow.a(file.cc.o): In function
>> > > > >> `arrow::io::MemoryMappedFile::MemoryMap::Open(std::string const&,
>> > > > >> arrow::io::FileMode::type)':
>> > > > >> file.cc:(.text._ZN5arrow2io16MemoryMappedFile9MemoryMap4Open
>> > > > >> ERKSsNS0_8FileMode4typeE[_ZN5arrow2io16MemoryMappedFile9Memo
>> > > > >> ryMap4OpenERKSsNS0_8FileMode4typeE]+0xba): undefined reference to
>> > > > >> `boost::filesystem::path::codecvt()'
>> > > > >> file.cc:(.text._ZN5arrow2io16MemoryMappedFile9MemoryMap4Open
>> > > > >> ERKSsNS0_8FileMode4typeE[_ZN5arrow2io16MemoryMappedFile9Memo
>> > > > >> ryMap4OpenERKSsNS0_8FileMode4typeE]+0x186): undefined reference
>> to
>> > > > >> `boost::filesystem::path::codecvt()'
>> > > > >> collect2: error: ld returned 1 exit status
>> > > > >> ```
>> > > > >>
>> > > > >> Any idea where I did wrong?
>> > > > >>
>> > > > >> Thanks,
>> > > > >> --
>> > > > >> Alex Wang,
>> > > > >> Open vSwitch developer
>> > > > >>
>> > > > >
>> > > > >
>> > > > >
>> > > > > --
>> > > > > Alex Wang,
>> > > > > Open vSwitch developer
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > > Alex Wang,
>> > > > Open vSwitch developer
>> > > >
>> > >
>> > >
>> > >
>> > > --
>> > > regards,
>> > > Deepak Majeti
>> > >
>> >
>> >
>> >
>> > --
>> > Alex Wang,
>> > Open vSwitch developer
>> >
>>
>>
>>
>> --
>> regards,
>> Deepak Majeti
>>
>
>
>
> --
> Alex Wang,
> Open vSwitch developer



-- 
regards,
Deepak Majeti

Reply via email to