mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
IMPALA-12240: Put gcc on the PATH when building the impala-python venv
On some systems, we have seen the build for the impala-python virtualenv refer to system gcc directly, even though we have specified Impala toolchain's gcc via CC. When the system gcc is newer than Impala's gcc, it fails to execute because it needs symbols that are not present in Impala's libstdc++: gcc: /home/joe/impala/toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by gcc) This adds the toolchain gcc to the PATH when building the impala-python virtualenv. This means that any direct reference to gcc will use our compiler rather than system gcc. We continue to have CC pointed to our compiler. Testing: - Ran a build on Redhat 9 where the issue presented Change-Id: Ia5ddd6a88b41a3f8ba04d13538b3de2d9499cbf5 Reviewed-on: http://gerrit.cloudera.org:8080/20114 Reviewed-by: Michael Smith <michael.smith@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
This commit is contained in:
committed by
Impala Public Jenkins
parent
7a94adbc30
commit
7b502f7c96
@@ -177,6 +177,13 @@ def exec_pip_install(venv_dir, is_py3, args, cc="no-cc-available", env=None):
|
||||
toolchain_binutils_dir = toolchain_pkg_dir("binutils")
|
||||
binutils_bin_dir = os.path.join(toolchain_binutils_dir, "bin")
|
||||
env["PATH"] = "{0}:{1}".format(binutils_bin_dir, env["PATH"])
|
||||
# Sometimes pip install invokes gcc directly without using the CC environment
|
||||
# variable. If system GCC is too new, then it will fail, because it needs symbols
|
||||
# that are not in Impala's libstdc++. To avoid this, we add GCC to the PATH,
|
||||
# so any direct reference will use our GCC rather than the system GCC.
|
||||
toolchain_gcc_dir = toolchain_pkg_dir("gcc")
|
||||
gcc_bin_dir = os.path.join(toolchain_gcc_dir, "bin")
|
||||
env["PATH"] = "{0}:{1}".format(gcc_bin_dir, env["PATH"])
|
||||
|
||||
# Parallelize the slow numpy build.
|
||||
# Use getconf instead of nproc because it is supported more widely, e.g. on older
|
||||
|
||||
Reference in New Issue
Block a user