[ 
https://issues.apache.org/jira/browse/ARROW-17491?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17582836#comment-17582836
 ] 

chendan edited comment on ARROW-17491 at 8/22/22 9:42 AM:
----------------------------------------------------------

[~yibocai] 

I follow your instruction and this error disappeared.

Now the error is in linking:

setup start!
– System processor: x86_64
– System processor: arm
set ARROW_CPU_FLAG
– Arrow build warning level: PRODUCTION
Using ld linker
Configured for RELEASE build (set with cmake 
-DCMAKE_BUILD_TYPE=\{release,debug,...})
– Build Type: RELEASE
ARROW_ARMV8_ARCH:
ARROW_ARMV8_ARCH
– Build output directory: 
/root/build/tmp/arrow/python/build/temp.linux-x86_64-3.6/release
CMake Warning (dev) at 
/home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:438
 (message):
  The package name passed to `find_package_handle_standard_args` (PkgConfig)
  does not match the name of the calling package (Arrow).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  
/home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPkgConfig.cmake:99
 (find_package_handle_standard_args)
  cmake_modules/FindArrow.cmake:39 (include)
  cmake_modules/FindArrowPython.cmake:46 (find_package)
  CMakeLists.txt:219 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

– Arrow version: 2.0.0 (HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow)
– Arrow SO and ABI version: 200
– Arrow full SO version: 200.0.0
– Found the Arrow core shared library: ARROW_shared_lib-NOTFOUND
– Found the Arrow core import library: 
– Found the Arrow core static library: ARROW_static_lib-NOTFOUND
– Found the Arrow Python by HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow
– Found the Arrow Python shared library: ARROW_PYTHON_shared_lib-NOTFOUND
– Found the Arrow Python import library: 
– Found the Arrow Python static library: ARROW_PYTHON_static_lib-NOTFOUND
– Parquet version: 1.5.1 (HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow)
– Found the Parquet shared library: PARQUET_shared_lib-NOTFOUND
– Found the Parquet import library: 
– Found the Parquet static library: PARQUET_static_lib-NOTFOUND
– Found ArrowDataset: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow/include 
(found version "2.0.0") 
– Found the Arrow Dataset by HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow
– Found the Arrow Dataset shared library: ARROW_DATASET_shared_lib-NOTFOUND
– Found the Arrow Dataset import library: 
– Found the Arrow Dataset static library: ARROW_DATASET_static_lib-NOTFOUND
– Configuring done
– Generating done
– Build files have been written to: 
/root/build/tmp/arrow/python/build/temp.linux-x86_64-3.6
– Finished cmake for pyarrow
– Running cmake --build for pyarrow
cmake --build . --config release – -j4
[  4%] Compiling Cython CXX source for lib...
[  9%] Compiling Cython CXX source for _fs...
[ 14%] Compiling Cython CXX source for _compute...
[ 19%] Compiling Cython CXX source for _csv...
[ 19%] Built target _csv_pyx
[ 23%] Compiling Cython CXX source for _json...
[ 23%] Built target _compute_pyx
[ 28%] Compiling Cython CXX source for _dataset...
[ 28%] Built target _fs_pyx
[ 33%] Compiling Cython CXX source for _parquet...
[ 33%] Built target _json_pyx
[ 38%] Building CXX object CMakeFiles/_fs.dir/_fs.cpp.o
[ 38%] Built target _parquet_pyx
[ 42%] Building CXX object CMakeFiles/_compute.dir/_compute.cpp.o
[ 42%] Built target _dataset_pyx
[ 47%] Building CXX object CMakeFiles/_csv.dir/_csv.cpp.o
[ 47%] Built target lib_pyx
[ 52%] Building CXX object CMakeFiles/_json.dir/_json.cpp.o
[ 57%] Linking CXX shared module release/_json.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_json.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_json.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 61%] Linking CXX shared module release/_csv.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_csv.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_csv.dir/all] Error 2
[ 66%] Linking CXX shared module 
release/_compute.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_compute.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_compute.dir/all] Error 2
[ 71%] Linking CXX shared module release/_fs.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_fs.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_fs.dir/all] Error 2
gmake: *** [all] Error 2
error: command 'cmake' failed with exit status 2

 

When I pip install pyarrow, of course the _json.cpython-36m-x86_64-linux-gnu.so 
and other so files are x86_64 architecture. So must I compile these shared libs 
by my arm cross-compiler? How to compile them?

But it seems that _json.cpython-36m-x86_64-linux-gnu.so is the aim lib I need 
to build out but not the linked lib. If I have 
_json.cpython-36m-armv8a-linux-gnu.so my job is finished. All I need to do is 
to make all the lib files in site-packages/pyarrow to be arm format. Did I 
understand "building pyarrow" wrongly?


was (Author: JIRAUSER283005):
[~yibocai] 

I follow your instruction and this error disappeared.

Now the error is in linking:

setup start!
-- System processor: x86_64
-- System processor: arm
set ARROW_CPU_FLAG
-- Arrow build warning level: PRODUCTION
Using ld linker
Configured for RELEASE build (set with cmake 
-DCMAKE_BUILD_TYPE=\{release,debug,...})
-- Build Type: RELEASE
ARROW_ARMV8_ARCH:
ARROW_ARMV8_ARCH
-- Build output directory: 
/root/build/tmp/arrow/python/build/temp.linux-x86_64-3.6/release
CMake Warning (dev) at 
/home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:438
 (message):
  The package name passed to `find_package_handle_standard_args` (PkgConfig)
  does not match the name of the calling package (Arrow).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  
/home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPkgConfig.cmake:99
 (find_package_handle_standard_args)
  cmake_modules/FindArrow.cmake:39 (include)
  cmake_modules/FindArrowPython.cmake:46 (find_package)
  CMakeLists.txt:219 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Arrow version: 2.0.0 (HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow)
-- Arrow SO and ABI version: 200
-- Arrow full SO version: 200.0.0
-- Found the Arrow core shared library: ARROW_shared_lib-NOTFOUND
-- Found the Arrow core import library: 
-- Found the Arrow core static library: ARROW_static_lib-NOTFOUND
-- Found the Arrow Python by HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow
-- Found the Arrow Python shared library: ARROW_PYTHON_shared_lib-NOTFOUND
-- Found the Arrow Python import library: 
-- Found the Arrow Python static library: ARROW_PYTHON_static_lib-NOTFOUND
-- Parquet version: 1.5.1 (HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow)
-- Found the Parquet shared library: PARQUET_shared_lib-NOTFOUND
-- Found the Parquet import library: 
-- Found the Parquet static library: PARQUET_static_lib-NOTFOUND
-- Found ArrowDataset: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow/include 
(found version "2.0.0") 
-- Found the Arrow Dataset by HOME: 
/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pyarrow
-- Found the Arrow Dataset shared library: ARROW_DATASET_shared_lib-NOTFOUND
-- Found the Arrow Dataset import library: 
-- Found the Arrow Dataset static library: ARROW_DATASET_static_lib-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: 
/root/build/tmp/arrow/python/build/temp.linux-x86_64-3.6
-- Finished cmake for pyarrow
-- Running cmake --build for pyarrow
cmake --build . --config release -- -j4
[  4%] Compiling Cython CXX source for lib...
[  9%] Compiling Cython CXX source for _fs...
[ 14%] Compiling Cython CXX source for _compute...
[ 19%] Compiling Cython CXX source for _csv...
[ 19%] Built target _csv_pyx
[ 23%] Compiling Cython CXX source for _json...
[ 23%] Built target _compute_pyx
[ 28%] Compiling Cython CXX source for _dataset...
[ 28%] Built target _fs_pyx
[ 33%] Compiling Cython CXX source for _parquet...
[ 33%] Built target _json_pyx
[ 38%] Building CXX object CMakeFiles/_fs.dir/_fs.cpp.o
[ 38%] Built target _parquet_pyx
[ 42%] Building CXX object CMakeFiles/_compute.dir/_compute.cpp.o
[ 42%] Built target _dataset_pyx
[ 47%] Building CXX object CMakeFiles/_csv.dir/_csv.cpp.o
[ 47%] Built target lib_pyx
[ 52%] Building CXX object CMakeFiles/_json.dir/_json.cpp.o
[ 57%] Linking CXX shared module release/_json.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_json.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_json.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 61%] Linking CXX shared module release/_csv.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_csv.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_csv.dir/all] Error 2
[ 66%] Linking CXX shared module 
release/_compute.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_compute.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_compute.dir/all] Error 2
[ 71%] Linking CXX shared module release/_fs.cpython-36m-x86_64-linux-gnu.so
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_shared
/opt/aarch64-kedacom-linux/lib/gcc/aarch64-kedacom-linux-gnu/8.3.0/../../../../aarch64-kedacom-linux-gnu/bin/ld:
 cannot find -larrow_python_shared
collect2: error: ld returned 1 exit status
gmake[2]: *** [release/_fs.cpython-36m-x86_64-linux-gnu.so] Error 1
gmake[1]: *** [CMakeFiles/_fs.dir/all] Error 2
gmake: *** [all] Error 2
error: command 'cmake' failed with exit status 2

 

When I pip install pyarrow, of course the _json.cpython-36m-x86_64-linux-gnu.so 
and other so files are x86_64 architecture. So must I compile these shared libs 
by my arm cross-compiler? How to compile them?

 

> Build python lib failed for ARMv8
> ---------------------------------
>
>                 Key: ARROW-17491
>                 URL: https://issues.apache.org/jira/browse/ARROW-17491
>             Project: Apache Arrow
>          Issue Type: Task
>          Components: Python
>    Affects Versions: 2.0.0
>            Reporter: chendan
>            Priority: Major
>
> I want to build pyarrow lib for my armv8-a with my own arm v8 cross-compiler. 
> Althrough arror=2.0.0 is old I need to build it for pyflink and I confirmed 
> that 2.0.0 does support armv8 building.
> I follow the steps described in 
> [https://arrow.apache.org/docs/developers/python.html#using-conda|https://arrow.apache.org/docs/developers/python.html#using-conda:]
> Firstly , I have build out arrow c++ libs of arm:
> libarrow.a                       libarrow_python.a       
> libarrow_python.so.200.0.0  libarrow.so.200.0.0
> libarrow_bundled_dependencies.a  libarrow_python.so      libarrow.so          
>        libparquet.a
> libarrow_dataset.a               libarrow_python.so.200  libarrow.so.200
> The make -4j command failed due to some third party arm lib has not been 
> built out for linking. But It did not affect the building out of the upper 
> libs.
> Then I perform building pyarrow step:
> pushd arrow/python
> export PYARROW_WITH_PARQUET=1
> export PYARROW_WITH_DATASET=1
> export PYARROW_PARALLEL=4 python setup.py build_ext --inplace
> Then an error occured:
> -- System processor: arm
> set ARROW_CPU_FLAG
> -- Arrow build warning level: PRODUCTION
> Using ld linker
> Configured for RELEASE build (set with cmake 
> -DCMAKE_BUILD_TYPE=\{release,debug,...})
> -- Build Type: RELEASE
> ARROW_ARMV8_ARCH:
> ARROW_ARMV8_ARCH
> -- Build output directory: 
> /root/build/tmp/arrow/python/build/temp.linux-x86_64-3.6/release
> CMake Warning (dev) at 
> /home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:438
>  (message):
>   The package name passed to `find_package_handle_standard_args` (PkgConfig)
>   does not match the name of the calling package (Arrow).  This can lead to
>   problems in calling code that expects `find_package` result variables
>   (e.g., `_FOUND`) to follow a certain pattern.
> Call Stack (most recent call first):
>   
> /home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPkgConfig.cmake:99
>  (find_package_handle_standard_args)
>   cmake_modules/FindArrow.cmake:39 (include)
>   cmake_modules/FindArrowPython.cmake:46 (find_package)
>   CMakeLists.txt:219 (find_package)
> This warning is for project developers.  Use -Wno-dev to suppress it.
> -- Could NOT find Arrow (missing: Arrow_DIR)
> -- Checking for module 'arrow'
> --   No package 'arrow' found
> CMake Error at 
> /home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230
>  (message):
>   Could NOT find Arrow (missing: ARROW_INCLUDE_DIR ARROW_LIB_DIR
>   ARROW_FULL_SO_VERSION ARROW_SO_VERSION)
> Call Stack (most recent call first):
>   
> /home/anaconda3/envs/pyarrow-dev/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594
>  (_FPHSA_FAILURE_MESSAGE)
>   cmake_modules/FindArrow.cmake:418 (find_package_handle_standard_args)
>   cmake_modules/FindArrowPython.cmake:46 (find_package)
>   CMakeLists.txt:219 (find_package)
> -- Configuring incomplete, errors occurred!
> error: command 'cmake' failed with exit status 1
> What's it? It seems that I need to pip install arrow and pyarrow. After the 
> installation, the error still occured. How to solve it?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to