apache / arrow

Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
https://arrow.apache.org/
Apache License 2.0
14.36k stars 3.49k forks source link

[C++] Installation failed on AIX7.2 #26979

Open asfimport opened 3 years ago

asfimport commented 3 years ago

My installation of pyarrow on AIX7.2 failed due to missing ARROW and I was told I have to install ARROW C++ first.  I downloaded ARROW 2.0.0 tar ball and tried to install its "cpp" component according to the instruction.  However, I got the following error after cd release to run cmake ..

 


Login=root: Line=602 > cmake ..
-- Building using CMake version: 3.16.0
-- Arrow version: 2.0.0 (full: '2.0.0')
-- Arrow SO version: 200 (full: 200.0.0)
-- clang-tidy not found
-- clang-format not found
-- Could NOT find ClangTools (missing: CLANG_FORMAT_BIN CLANG_TIDY_BIN)
-- infer not found
-- Found cpplint executable at /software/thirdparty/apache-arrow-2.0.0/cpp/build-support/cpplint.py
-- System processor: powerpc
-- Arrow build warning level: PRODUCTION
CMake Error at cmake_modules/SetupCxxFlags.cmake:365 (message):
  SSE4.2 required but compiler doesn't support it.
Call Stack (most recent call first):
  CMakeLists.txt:437 (include)

-- Configuring incomplete, errors occurred!
See also "/software/thirdparty/apache-arrow-2.0.0/cpp/release/CMakeFiles/CMakeOutput.log".
See also "/software/thirdparty/apache-arrow-2.0.0/cpp/release/CMakeFiles/CMakeError.log".

Attached are 2 CMake output/error files.  Sutou Kouhei suggested me to submit an issue here.  Can someone please help me to fix the issue?  What do I have to do with required SSE4.2?

Thanks.

 

Environment: AIX7.2 Reporter: Xiaobo Zhang

Related issues:

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

asfimport commented 3 years ago

Xiaobo Zhang: According to https://en.wikipedia.org/wiki/SSE4, SSE4 is available for Intel and AMD based CPU only so we should disable SSE4 option for Arrow CPP installation on AIX.  Is there an instruction to disable it?

Thanks.

asfimport commented 3 years ago

Neal Richardson / @nealrichardson: Does it work if you set -DARROW_SIMD_LEVEL=NONE?

cf. https://issues.apache.org/jira/browse/ARROW-9923?focusedCommentId=17226396&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17226396

asfimport commented 3 years ago

Xiaobo Zhang: I issued the following "export" statement and checked EXTRA_CMAKE_FLAGS with "set" to make sure it is defined.  However, I still have the same error caused by SSE4.  See attached error log.  CMakeError.log

Login=root: Line=661 > history 646     export EXTRA_CMAKE_FLAGS="-DARROW_SIMD_LEVEL=NONE" Login=root: Line=662 >

 

 

asfimport commented 3 years ago

Neal Richardson / @nealrichardson: EXTRA_CMAKE_FLAGS is only picked up in a build script that R uses. Just add the ARROW_SIMD_LEVEL flag to your cmake invocation.

asfimport commented 3 years ago

Xiaobo Zhang: I am a little puzzled now.  I issued "cmake -DARROW_SIMD_LEVEL=NONE .. >cmake.log 2>&1 &",  In cmake.log file, ARROW_SIMD_LEVEL=NONE at line 112.  However, I still can see SSE error at line 8 in CMakeError.log.  Besides, there are additional unrecognized options/symbols as shown below.

c++: error: unrecognized command line option '-march=haswell' c++: error: unrecognized command line option '-mavx2'; did you mean '-maix32'?

c++: error: unrecognized command line option '-march=skylake-avx512' c++: error: unrecognized command line option '-mbmi2' c++: error: unrecognized command line option '-mavx512f'; did you mean '-maix32'? c++: error: unrecognized command line option '-mavx512cd' c++: error: unrecognized command line option '-mavx512vl' c++: error: unrecognized command line option '-mavx512dq' c++: error: unrecognized command line option '-mavx512bw'

ld: 0711-317 ERROR: Undefined symbol: .pthread_create ld: 0711-317 ERROR: Undefined symbol: .pthread_detach ld: 0711-317 ERROR: Undefined symbol: .pthread_join ld: 0711-317 ERROR: Undefined symbol: .pthread_atfork ld: 0711-317 ERROR: Undefined symbol: .pthread_exit 

 

At line 102, there is a fatal error with missing  execinfo.h file.  The bad new is that CMakeTmp subdirectory is empty at the end so I can't check CheckSymbolExists.c. 

/software/thirdparty/apache-arrow-2.0.0/cpp/release/CMakeFiles/CMakeTmp/CheckSymbolExists.c:2:10: fatal error: execinfo.h: No such file or directory  #include           ^~~~ compilation terminated.

 

Looks like there are lots of works to be finished in order to install Apache C++ on AIX.

Thanks.

cmake.logCMakeError.log

asfimport commented 3 years ago

Xiaobo Zhang: Can someone help me on this issue?

Thanks.