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

chendan commented on ARROW-17291:
---------------------------------

[~kou] 

You said:

Do you mean that "do I need to rebuild PyArrow"? If so, you don't need to 
rebuild PyArrow. You can reuse existing PyArrow binaries even when you rebuild 
your Apache Arrow C++ with {{{}-DARROW_JEMALLOC=OFF{}}}.

I do not understand the meaning of "rebuild". So the answer of this question is 
no. I took long time to solve the JEMALLOC problem, now it passed. 

But now other errors occured.

I want to build pyarrow following by the two steps in 
[https://arrow.apache.org/docs/developers/python.html#build-and-test:]

First, follow the "Now build the Arrow C++ libraries and install them into the 
directory we created above (stored in {{{}$ARROW_HOME{}}}):" in this web page, 
to build arrow C++ lib.

In this step,  the "make -4j" command running in arrow/cpp/build folder did not 
complete due to some third party lib built failed in linking. But I found that 
some libs were built out in  arrow/cpp/build/debug:

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

Are these files enough to build pyarrow? This is the first question.

 

Second, follow the "Now, build pyarrow:" in ths web page, to build pyarrow.

In conda python3.6 env, it was failed:

(pyarrow-dev) [root@localhost python]# python setup.py build_ext --inplace
Traceback (most recent call last):
  File "setup.py", line 635, in <module>
    url='https://arrow.apache.org/'
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/setuptools/__init__.py",
 line 153, in setup
    return distutils.core.setup(**attrs)
  File "/root/anaconda3/envs/pyarrow-dev/lib/python3.6/distutils/core.py", line 
108, in setup
    _setup_distribution = dist = klass(attrs)
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/setuptools/dist.py",
 line 457, in __init__
    for k, v in attrs.items()
  File "/root/anaconda3/envs/pyarrow-dev/lib/python3.6/distutils/dist.py", line 
281, in __init__
    self.finalize_options()
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/setuptools/dist.py",
 line 830, in finalize_options
    for ep in sorted(loaded, key=by_order):
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/setuptools/dist.py",
 line 829, in <lambda>
    loaded = map(lambda e: e.load(), filtered)
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pkg_resources/__init__.py",
 line 2450, in load
    return self.resolve()
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/pkg_resources/__init__.py",
 line 2456, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File 
"/root/anaconda3/envs/pyarrow-dev/lib/python3.6/site-packages/setuptools_scm/__init__.py",
 line 5
    from __future__ import annotations
    ^
SyntaxError: future feature annotations is not defined

 

It seems that I must run it in python3.7. But requirements-build.txt shows that 
python3.6 is acceptable:
cython>=0.29
numpy>=1.14,<1.19; python_version < "3.6"
numpy>=1.14; python_version >= "3.6"
setuptools; python_version >= "3.6"
setuptools_scm

How to solve this problem in python3.6?

> [C++] Build jemalloc_ep source code failed with Apache Arrow 2.0.0 on aarch64 
> CentOS 7
> --------------------------------------------------------------------------------------
>
>                 Key: ARROW-17291
>                 URL: https://issues.apache.org/jira/browse/ARROW-17291
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 2.0.0
>         Environment: CentOS Linux release 7.9.2009 (Core)
> cross-complier: ARMv8 aarch64
>            Reporter: chendan
>            Priority: Major
>
> I want to build pyarrow for arm platform.  I follow the steps in 
> [https://arrow.apache.org/docs/developers/python.html#build-and-test]. When I 
> finished cmake step and performed make -j4 step there was an error occured:
> {noformat}
> (pyarrow-dev) [root@localhost build]# make -j4
> [  0%] Built target toolchain
> [  0%] Performing configure step for 'jemalloc_ep'
> [  4%] Built target arrow_dataset_objlib
> CMake Error at 
> /root/build/arrow/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-DEBUG.cmake:37
>  (message):
>   Command failed: 77
>    './configure' 
> 'AR=/opt/aarch64-kedacom-linux/bin/aarch64-kedacom-linux-gnu-ar' 
> 'CC=/opt/aarch64-kedacom-linux/bin/aarch64-kedacom-linux-gnu-gcc' 
> '{-}{{-}}prefix=/root/build/arrow/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep/dist/'
>  '{-}{{-}}with-jemalloc-prefix=je_arrow_' 
> '{-}{{-}}with-private-namespace=je_arrow_private_' '{-}{{-}}without-export' 
> '{-}{{-}}disable-shared' '{-}{{-}}disable-cxx' '{-}{{-}}disable-libdl' 
> '\{-}-disable-initial-exec-tls'
>   See also
>     
> /root/build/arrow/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-*.log
> {noformat}
> – stdout output is:
> {noformat}
> checking for xsltproc... /usr/bin/xsltproc
> 1
> checking for x86_64-conda-linux-gnu-gcc... 2
> /opt/aarch64-kedacom-linux/bin/aarch64-kedacom-linux-gnu-gcc
> write conftest
> checking whether the C compiler works... no
> {noformat}
> – stderr output is:
> {noformat}
> configure: error: in 
> `/root/build/arrow/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep':
> configure: error: C compiler cannot create executables
> See `config.log' for more details
> CMake Error at 
> /root/build/arrow/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-DEBUG.cmake:47
>  (message):
>   Stopping after outputting logs.
> make[2]: *** [CMakeFiles/jemalloc_ep.dir/build.make:92: 
> jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure] Error 1
> make[1]: *** [CMakeFiles/Makefile2:725: CMakeFiles/jemalloc_ep.dir/all] Error 
> 2
> make: *** [Makefile:146: all] Error 2
> {noformat}
>  
> I add "echo $CFLAGS" into the jemalloc_ep configure file. The printed CFLAS 
> is wrong:
> {{-march=nocona -mtune=haswell -ftree-vectorize -fPIC 
> -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem 
> /root/anaconda3/envs/pyarrow-dev/include}}
> Nocona is not applicable for armv8 CPU. How to solve it?



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

Reply via email to