Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[arrow] Linker errors with arrow[parquet] #22552

Closed
diehard2 opened this issue Jan 16, 2022 · 16 comments · Fixed by #26187
Closed

[arrow] Linker errors with arrow[parquet] #22552

diehard2 opened this issue Jan 16, 2022 · 16 comments · Fixed by #26187
Assignees
Labels
category:port-bug The issue is with a library, which is something the port should already support

Comments

@diehard2
Copy link

diehard2 commented Jan 16, 2022

Parquet libraries are not linking correctly.

Environment

  • OS: CentOS 8
  • Compiler: GCC 10/12

To Reproduce
The following Docker image will replicate the issue. Just cd into parque_test/build and run scl enable gcc-toolset-10 bash && cmake --build. It appears to not be linking to thrift, lz4, and brotli. The gcc 10 toolset is required due to an error build boost math with the base install. I see the same behavior on a more complicated docker image that uses gcc 12. Sorry, the code blocks on here don't seem to be working

FROM centos:latest

RUN yum update -y && yum install -y initscripts;

RUN yum group install -y "Development Tools"

RUN yum install -y git cmake gcc-toolset-10 emacs


RUN mkdir parquet_test && cd parquet_test && git config --global http.sslverify "false" && git clone https://github.com/microsoft/vcpkg && ./vcpkg/bootstrap-vcpkg.sh

RUN cd parquet_test && SNIPPET="{\"name\": \"versions-test\",\"version\": \"1.0.0\",\"dependencies\": [\"arrow\"], \"builtin-baseline\": \"39b17cf84c8b389d5800775eaa61e279610c3f33\"}" && echo $SNIPPET > "vcpkg.json"
RUN cd parquet_test && SNIPPET="#include \"arrow/api.h\" \n #include \"parquet/metadata.h\" \n \
    int main(){auto pool = arrow::default_memory_pool(); parquet::FileMetaData* foo; foo->num_columns(); return 0;} \n " && echo -e $SNIPPET > "main.cxx" && mkdir build

RUN cd parquet_test && SNIPPET="cmake_minimum_required(VERSION 3.20) \n \
            set(CMAKE_TOOLCHAIN_FILE \${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING \"Vcpkg toolchain file\")  \n \
            project(test) \n \
            find_package(Arrow CONFIG REQUIRED) \n \
            find_package(Parquet CONFIG REQUIRED) \n \
            include_directories(\${ARROW_INCLUDE_DIR}) \n \
            add_executable(test main.cxx) \n \
            target_link_libraries(test PRIVATE \${PARQUET_LIBRARIES} \${ARROW_LIBRARIES}) \n " && echo -e $SNIPPET > "CMakeLists.txt" \
            && scl enable gcc-toolset-10 "cd build && cmake .."

Failure logs

opt/rh/gcc-toolset-10/root/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libparquet.a(metadata.cc.o): in function `apache::thrift::transport::TMemoryBuffer::TMemoryBuffer(unsigned char*, unsigned int, apache::thrift::transport::TMemoryBuffer::MemoryPolicy)':
/parquet_test/build/vcpkg_installed/x64-linux/include/thrift/transport/TBufferTransports.h:526: undefined reference to `vtable for apache::thrift::transport::TMemoryBuffer'
/opt/rh/gcc-toolset-10/root/usr/bin/ld: /parquet_test/build/vcpkg_installed/x64-linux/include/thrift/transport/TBufferTransports.h:529: undefined reference to `typeinfo for apache::thrift::transport::TTransportException'
/opt/rh/gcc-toolset-10/root/usr/bin/ld: /parquet_test/build/vcpkg_installed/x64-linux/include/thrift/transport/TBufferTransports.h:543: undefined reference to `typeinfo for apache::thrift::transport::TTransportException'
/opt/rh/gcc-toolset-10/root/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libparquet.a(metadata.cc.o): in function `unsigned int apache::thrift::transport::readAll<apache::thrift::transport::TTransport>(apache::thrift::transport::TTransport&, unsigned char*, unsigned int)':   
/parquet_test/build/vcpkg_installed/x64-linux/include/thrift/transport/TTransport.h:43: undefined reference to `typeinfo for apache::thrift::transport::TTransportException'
/opt/rh/gcc-toolset-10/root/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libparquet.a(metadata.cc.o): in function `unsigned int apache::thrift::transport::readAll<apache::thrift::transport::TBufferBase>(apache::thrift::transport::TBufferBase&, unsigned char*, unsigned int)': 
/parquet_test/build/vcpkg_installed/x64-linux/include/thrift/transport/TTransport.h:43: undefined reference to `typeinfo for apache::thrift::transport::TTransportException'
/opt/rh/gcc-toolset-10/root/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libparquet.a(metadata.cc.o): in function `apache::thrift::protocol::TProtocolFactory::TProtocolFactory()':
/parquet_test/build/vcpkg_installed/x64-linux/include/thrift/protocol/TProtocol.h:600: undefined reference to `vtable for apache::thrift::protocol::TProtocolFactory'
/opt/rh/gcc-toolset-10/root/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libparquet.a(metadata.cc.o): in function `std::shared_ptr<apache::thrift::transport::TMemoryBuffer> std::dynamic_pointer_cast<apache::thrift::transport::TMemoryBuffer, apache::thrift::transport::TTransport>(std::shared_ptr<apache::thrift::transport::TTransport> const&)':
/opt/rh/gcc-toolset-10/root/usr/include/c++/10/bits/shared_ptr.h:602: undefined reference to `typeinfo for apache::thrift::transport::TMemoryBuffer'

etc
Additional context
Add any other context about the problem here.

@JackBoosY JackBoosY self-assigned this Jan 17, 2022
@JackBoosY
Copy link
Contributor

Is port arrow[parquet] instead of Parquet [Arrow]?

@JackBoosY JackBoosY changed the title Linker errors with Parquet [Arrow] Linker errors with arrow[parquet] Jan 18, 2022
@JackBoosY JackBoosY changed the title Linker errors with arrow[parquet] [arrow] Linker errors with arrow[parquet] Jan 18, 2022
@JackBoosY
Copy link
Contributor

JackBoosY commented Jan 18, 2022

Confirmed, this issue exists in the latest master branch with the following code:

#include "arrow/api.h"
#include "parquet/metadata.h"

int main(){
    auto pool = arrow::default_memory_pool();
    parquet::FileMetaData* foo;
    foo->num_columns();
    return 0;
}
find_package(Arrow CONFIG REQUIRED)
find_package(Parquet CONFIG REQUIRED)
include_directories(${ARROW_INCLUDE_DIR})
add_executable(test main.cxx)
target_link_libraries(test PRIVATE ${PARQUET_LIBRARIES} ${ARROW_LIBRARIES})
root@usr:/home/usr/work/test# nm ../vcpkg/packages/arrow_x64-linux/lib/libparquet.a | grep TTransportException
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD0Ev
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD1Ev
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD2Ev
0000000000000000 n _ZN6apache6thrift9transport19TTransportExceptionD5Ev
                 U _ZTIN6apache6thrift9transport19TTransportExceptionE
                 U _ZTVN6apache6thrift9transport19TTransportExceptionE
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD0Ev
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD1Ev
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD2Ev
0000000000000000 n _ZN6apache6thrift9transport19TTransportExceptionD5Ev
                 U _ZTIN6apache6thrift9transport19TTransportExceptionE
                 U _ZTVN6apache6thrift9transport19TTransportExceptionE
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD0Ev
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD1Ev
0000000000000000 W _ZN6apache6thrift9transport19TTransportExceptionD2Ev
0000000000000000 n _ZN6apache6thrift9transport19TTransportExceptionD5Ev
                 U _ZTIN6apache6thrift9transport19TTransportExceptionE
                 U _ZTVN6apache6thrift9transport19TTransportExceptionE

@JackBoosY JackBoosY added the category:port-bug The issue is with a library, which is something the port should already support label Jan 18, 2022
@JackBoosY
Copy link
Contributor

cc @ianmcook @philjdf @@isaacbrodsky

@diehard2
Copy link
Author

diehard2 commented Mar 4, 2022

I'm still seeing this issue with the new 7.0 Arrow port and port-version 1. Its unusable in it's current state. I tried linking in Thrift directly using vcpkg, but there's no information how to do that anywhere online that I can find and nothing in the port provides a helpful hint.

@LilyWangLL @ianmcook (sorry for the tags, but wanted to get this some visibility)

@Thomas1664
Copy link
Contributor

@diehard2 @JackBoosY PR #23423 should have fixed the issue

@JackBoosY
Copy link
Contributor

@diehard2 Can you double confirm that?

@JackBoosY JackBoosY added the requires:more-information This Issue requires more information to solve label Apr 7, 2022
@diehard2
Copy link
Author

diehard2 commented Apr 8, 2022

Hi @JackBoosY @Thomas1664 thanks for the follow-up! Same errors as before. I can't figure anyway to make this useable. New docker setup showing the issues is below. Similar to the one above, but its using almalinux since CentOS 8 went to a stream. Any help here would be greatly appreciated. (sorry, I can't get the code block to render correctly)

FROM almalinux:latest

RUN yum update -y && yum install -y initscripts;

RUN yum group install -y "Development Tools"

RUN yum install -y git cmake gcc-toolset-10 emacs perl-IPC-Cmd kernel-devel


RUN mkdir parquet_test && cd parquet_test && git config --global http.sslverify "false" && git clone https://github.com/microsoft/vcpkg && ./vcpkg/bootstrap-vcpkg.sh

RUN cd parquet_test && SNIPPET="{\"name\": \"versions-test\",\"version\": \"1.0.0\",\"dependencies\": [\"arrow\"], \"builtin-baseline\": \"d72783cb3aeddfd667861caef1060e54ca6fa7a9\"}" && echo $SNIPPET > "vcpkg.json"
RUN cd parquet_test && SNIPPET="#include \"arrow/api.h\" \n #include \"parquet/metadata.h\" \n \
    int main(){auto pool = arrow::default_memory_pool(); parquet::FileMetaData* foo; foo->num_columns(); return 0;} \n " && echo -e $SNIPPET > "main.cxx" && mkdir build

RUN cd parquet_test && SNIPPET="cmake_minimum_required(VERSION 3.20) \n \
            set(CMAKE_TOOLCHAIN_FILE \${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING \"Vcpkg toolchain file\")  \n \
            project(test) \n \
            find_package(Arrow CONFIG REQUIRED) \n \
            find_package(Parquet CONFIG REQUIRED) \n \
            include_directories(\${ARROW_INCLUDE_DIR}) \n \
            add_executable(test main.cxx) \n \
            target_link_libraries(test PRIVATE \${PARQUET_LIBRARIES} \${ARROW_LIBRARIES}) \n " && echo -e $SNIPPET > "CMakeLists.txt" 

WORKDIR /parquet_test/buiild

RUN source scl_source enable gcc-toolset-10 && cmake .. 
RUN source scl_source enable gcc-toolset-10 && make 

@diehard2
Copy link
Author

diehard2 commented Apr 9, 2022

@JackBoosY @Thomas1664 here's a docker build that shows I can successfully use a manually built version of the libraries (granted, they're dynamic). Hope this helps

FROM almalinux:latest

RUN yum update -y && yum install -y initscripts;

RUN yum group install -y "Development Tools"

RUN yum install -y git gcc-toolset-10 emacs perl-IPC-Cmd kernel-devel
RUN dnf install -y wget yum-utils && dnf config-manager --set-enabled powertools && yum install -y openssl-devel ninja-build

RUN wget https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz && tar xf cmake-3.22.1.tar.gz && cd cmake-3.22.1 && \
        ./configure && make -j 12 && make install

RUN git clone https://github.com/apache/arrow.git && cd arrow && git checkout e90472e35b40f58b17d408438bb8de1641bfe6ef && \
     git submodule update --init && cd cpp/ && mkdir build && cd build && cmake .. --preset ninja-release-flight -DARROW_WITH_RE2=ON -DARROW_PARQUET=ON && ninja && ninja install


RUN mkdir parquet_test && cd parquet_test && git config --global http.sslverify "false" && git clone https://github.com/microsoft/vcpkg && ./vcpkg/bootstrap-vcpkg.sh

RUN cd parquet_test && SNIPPET="{\"name\": \"versions-test\",\"version\": \"1.0.0\",\"dependencies\": [\"arrow\"], \"builtin-baseline\": \"d72783cb3aeddfd667861caef1060e54ca6fa7a9\"}" && echo $SNIPPET > "vcpkg.json"
RUN cd parquet_test && SNIPPET="#include \"arrow/api.h\" \n #include \"parquet/metadata.h\" \n \
    int main(){auto pool = arrow::default_memory_pool(); parquet::FileMetaData* foo; foo->num_columns(); return 0;} \n " && echo -e $SNIPPET > "main.cxx" && mkdir build


RUN cd parquet_test && SNIPPET="cmake_minimum_required(VERSION 3.20) \n \
            set(CMAKE_TOOLCHAIN_FILE \${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING \"Vcpkg toolchain file\")  \n \
            set(CMAKE_SKIP_BUILD_RPATH FALSE) \n \
            set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) \n \
            set(CMAKE_BUILD_RPATH "/usr/local/lib64") \n \
            project(test) \n \
            find_package(Arrow PATHS /usr/local CONFIG REQUIRED) \n \
            find_package(Parquet PATHS /usr/local CONFIG REQUIRED) \n \
            include_directories(\${ARROW_INCLUDE_DIR}) \n \
            add_executable(test main.cxx) \n \
            target_link_libraries(test PRIVATE arrow parquet) \n " && echo -e $SNIPPET > "CMakeLists.txt" 


WORKDIR /parquet_test/build

RUN source scl_source enable gcc-toolset-10 && cmake ..
RUN source scl_source enable gcc-toolset-10 && make


RUN cd /parquet_test && rm -rf build && SNIPPET="cmake_minimum_required(VERSION 3.20) \n \
            set(CMAKE_TOOLCHAIN_FILE \${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING \"Vcpkg toolchain file\")  \n \
            project(test) \n \
            find_package(Arrow CONFIG REQUIRED) \n \
            find_package(Parquet CONFIG REQUIRED) \n \
            include_directories(\${ARROW_INCLUDE_DIR}) \n \
            add_executable(test main.cxx) \n \
            target_link_libraries(test PRIVATE \${PARQUET_LIBRARIES} \${ARROW_LIBRARIES}) \n " && echo -e $SNIPPET > "CMakeLists.txt" 

WORKDIR /parquet_test/build

RUN source scl_source enable gcc-toolset-10 && cmake ..

RUN source scl_source enable gcc-toolset-10 && make

@JackBoosY JackBoosY removed the requires:more-information This Issue requires more information to solve label Apr 11, 2022
@moria97
Copy link

moria97 commented Jul 17, 2022

Still facing link errors with vcpkg installed arrow. Error disappears when I use a self built arrow.

@assignUser
Copy link
Contributor

I was still able to reproduce this issue with 9.0.0, it is caused by PARQUET_REQUIRE_ENCRYPTION enabled by the parquet feature (missing from your manual build)

@kou
Copy link
Contributor

kou commented Aug 10, 2022

I tried #22552 (comment) (that is based on Apache Arrow 7.0.0).

The following dependencies are missed from link command line:

  • vcpkg_installed/x64-linux/debug/lib/libthriftd.a
  • vcpkg_installed/x64-linux/debug/lib/liblz4d.a
  • vcpkg_installed/x64-linux/debug/lib/libbrotli{enc,dec,common}-static.a

It seems that thrift::thrift, lz4::lz4 and unofficial::brotli::brotli{enc,dec,common}-static are missed in arrow_static dependencies:

$ grep INTERFACE_LINK_LIBRARIES vcpkg_installed/x64-linux/share/arrow/ArrowTargets.cmake 
  INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto;OpenSSL::SSL;BZip2::BZip2;Snappy::snappy;ZLIB::ZLIB;zstd::libzstd_static;re2::re2;Threads::Threads;rt;\$<LINK_ONLY:>"

I'm not sure that this is a problem in Apache Arrow's CMake configuration or patches in vcpkg.

@kou
Copy link
Contributor

kou commented Aug 10, 2022

The following patch for Apache Arrow may fix the vcpkg_installed/x64-linux/debug/lib/libthriftd.a (PARQUET_REQUIRE_ENCRYPTION) case:

diff --git a/cpp/src/parquet/CMakeLists.txt b/cpp/src/parquet/CMakeLists.txt
index 542fa5bc08..88f270b6b1 100644
--- a/cpp/src/parquet/CMakeLists.txt
+++ b/cpp/src/parquet/CMakeLists.txt
@@ -221,6 +221,8 @@ if(NOT PARQUET_MINIMAL_DEPENDENCY)
   set(PARQUET_STATIC_LINK_LIBS ${PARQUET_STATIC_LINK_LIBS} thrift::thrift)
 endif(NOT PARQUET_MINIMAL_DEPENDENCY)
 
+set(PARQUET_STATIC_INTERFACE_INSTALL_LIBS ${PARQUET_STATIC_LINK_LIBS})
+
 if(CXX_LINKER_SUPPORTS_VERSION_SCRIPT)
   set(PARQUET_SHARED_LINK_FLAGS
       "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map")
@@ -244,7 +246,9 @@ add_arrow_lib(parquet
               SHARED_PRIVATE_LINK_LIBS
               ${PARQUET_SHARED_PRIVATE_LINK_LIBS}
               STATIC_LINK_LIBS
-              ${PARQUET_STATIC_LINK_LIBS})
+              ${PARQUET_STATIC_LINK_LIBS}
+              STATIC_INSTALL_INTERFACE_LIBS
+              ${PARQUET_STATIC_INSTALL_INTERFACE_LIBS})
 
 if(WIN32 AND NOT (ARROW_TEST_LINKAGE STREQUAL "static"))
   add_library(parquet_test_support STATIC

@JackBoosY
Copy link
Contributor

@kou Can you please provide the related official patch / PR link?

@assignUser
Copy link
Contributor

@kou with your patch and 9.0.0 it looks like only thirf::thrift is still missing? thrift::thrift is added to PARQUET_STATIC_LINK_LIB though...

"OpenSSL::Crypto;OpenSSL::SSL;unofficial::brotli::brotlienc;unofficial::brotli::brotlidec;unofficial::brotli::brotlicommon;BZip2::BZip2;lz4::lz4;Snappy::snappy;ZLIB::ZLIB;zstd::libzstd_static;re2::re2;Threads::Threads;rt;\$<LINK_ONLY:>"

The linking issue also still exists :( I don't understand why this only happens with PARQUET_REQUIRE_ENCRYPTION as this only adds some sources (which don't use thrift according to grep).

kou added a commit to kou/arrow that referenced this issue Aug 12, 2022
parquet_static needs Thrift because cpp/src/parquet/thrift_internal.h
uses Thrift.

See also:
microsoft/vcpkg#22552 (comment)

We can test this by the following command lines:

    $ cd cpp/examples/parquet/parquet_arrow
    $ export Arrow_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ export Parquet_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ cmake -S . -B build -DPARQUET_LINK_SHARED=OFF
    $ cmake --build build --verbose

I also noticed that OpenTelemetry related dependencies are also missed
because I usually use -DARROW_WITH_OPENTELEMETRY=ON option for Apache
Arrow development. The problem is also fixed in this.
@kou
Copy link
Contributor

kou commented Aug 12, 2022

@JackBoosY I've created it: apache/arrow#13863

@kou
Copy link
Contributor

kou commented Aug 12, 2022

@assignUser Sorry. My patch had a typo: PARQUET_STATIC_INTERFACE_INSTALL_LIBS should have been PARQUET_STATIC_INSTALL_INTERFACE_LIBS.

This may not be related to PARQUET_REQUIRE_ENCRYPTION. I can reproduce the missing libthrift.a with my local build without PARQUET_REQUIRE_ENCRYPTION. (Note that I'm not using vcpkg on my local build environment.)

@JackBoosY JackBoosY added the depends:upstream-changes Waiting on a change to the upstream project label Aug 12, 2022
kou added a commit to kou/arrow that referenced this issue Aug 12, 2022
parquet_static needs Thrift because cpp/src/parquet/thrift_internal.h
uses Thrift.

See also:
microsoft/vcpkg#22552 (comment)

We can test this by the following command lines:

    $ cd cpp/examples/parquet/parquet_arrow
    $ export Arrow_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ export Parquet_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ cmake -S . -B build -DPARQUET_LINK_SHARED=OFF
    $ cmake --build build --verbose

I also noticed that OpenTelemetry related dependencies are also missed
because I usually use -DARROW_WITH_OPENTELEMETRY=ON option for Apache
Arrow development. The problem is also fixed in this.
kou added a commit to apache/arrow that referenced this issue Aug 15, 2022
parquet_static needs Thrift because cpp/src/parquet/thrift_internal.h
uses Thrift.

See also:
microsoft/vcpkg#22552 (comment)

We can test this by the following command lines:

    $ cd cpp/examples/parquet/parquet_arrow
    $ export Arrow_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ export Parquet_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ cmake -S . -B build -DPARQUET_LINK_SHARED=OFF
    $ cmake --build build --verbose

I also noticed that OpenTelemetry related dependencies are also missed
because I usually use -DARROW_WITH_OPENTELEMETRY=ON option for Apache
Arrow development. The problem is also fixed in this.

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
@JackBoosY JackBoosY removed the depends:upstream-changes Waiting on a change to the upstream project label Aug 15, 2022
@JackBoosY JackBoosY removed their assignment Aug 15, 2022
ksuarez1423 pushed a commit to ksuarez1423/arrow that referenced this issue Aug 15, 2022
…3863)

parquet_static needs Thrift because cpp/src/parquet/thrift_internal.h
uses Thrift.

See also:
microsoft/vcpkg#22552 (comment)

We can test this by the following command lines:

    $ cd cpp/examples/parquet/parquet_arrow
    $ export Arrow_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ export Parquet_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ cmake -S . -B build -DPARQUET_LINK_SHARED=OFF
    $ cmake --build build --verbose

I also noticed that OpenTelemetry related dependencies are also missed
because I usually use -DARROW_WITH_OPENTELEMETRY=ON option for Apache
Arrow development. The problem is also fixed in this.

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
ksuarez1423 pushed a commit to ksuarez1423/arrow that referenced this issue Aug 15, 2022
…3863)

parquet_static needs Thrift because cpp/src/parquet/thrift_internal.h
uses Thrift.

See also:
microsoft/vcpkg#22552 (comment)

We can test this by the following command lines:

    $ cd cpp/examples/parquet/parquet_arrow
    $ export Arrow_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ export Parquet_DIR=${ARROW_INSTALL_PREFIX}/lib/cmake/arrow
    $ cmake -S . -B build -DPARQUET_LINK_SHARED=OFF
    $ cmake --build build --verbose

I also noticed that OpenTelemetry related dependencies are also missed
because I usually use -DARROW_WITH_OPENTELEMETRY=ON option for Apache
Arrow development. The problem is also fixed in this.

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants