[
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)