apache / incubator-gluten

Gluten is a middle layer responsible for offloading JVM-based SQL engines' execution to native engines.
https://gluten.apache.org/
Apache License 2.0
1.15k stars 416 forks source link

build release jar in docker centos7 error #6096

Open lihao712 opened 3 months ago

lihao712 commented 3 months ago

Problem description

docker pull centos:7 docker run -itd --name gluten centos:7 /bin/bash docker attach gluten

yum -y install epel-release centos-release-scl yum -y install \ git \ dnf \ cmake3 \ devtoolset-9 \ java-1.8.0-openjdk \ java-1.8.0-openjdk-devel \ ninja-build \ wget \ sudo

wget https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz tar -xvf apache-maven-3.8.8-bin.tar.gz mv apache-maven-3.8.8 /usr/lib/maven export MAVEN_HOME=/usr/lib/maven export PATH=${PATH}:${MAVEN_HOME}/bin

ln -s /usr/bin/cmake3 /usr/local/bin/cmake

. /opt/rh/devtoolset-9/enable || exit 1

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$JAVA_HOME/bin:$PATH

git clone https://github.com/oap-project/gluten.git cd gluten ./dev/buildbundle-veloxbe.sh

in compile.sh

[132/659] Building CXX object velox/type/parser/CMakeFiles/velox_type_parser.dir/Scanner.cpp.o FAILED: velox/type/parser/CMakeFiles/velox_type_parser.dir/Scanner.cpp.o /opt/rh/devtoolset-9/root/usr/bin/c++ -DFOLLY_HAVE_INT128_T=1 -DGFLAGS_IS_A_DLL=0 -DVELOX_DISABLE_GOOGLETEST -DVELOX_ENABLE_HDFS3 -DVELOX_ENABLE_PARQUET -I/gluten/ep/build-velox/build/velox_ep/. -I/gluten/ep/build-velox/build/velox_ep/velox/external/xxhash -I/gluten/ep/build-velox/build/velox_ep/_build/release -isystem /gluten/dev/vcpkg/vcpkg_installed/x64-linux-avx/include -isystem /gluten/ep/build-velox/build/velox_ep/velox -isystem /gluten/ep/build-velox/build/velox_ep/velox/external -Wno-missing-field-initializers -march=native -std=c++17 -mno-avx512f -mbmi2 -D USE_VELOX_COMMON_BASE -D HAS_UNCAUGHT_EXCEPTIONS -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-sign-compare -Wno-ignored-qualifiers -Wnon-virtual-dtor -Wno-implicit-fallthrough -Wno-class-memaccess -Wno-comment -Wno-int-in-bool-context -Wno-redundant-move -Wno-array-bounds -Wno-maybe-uninitialized -Wno-unused-result -Wno-format-overflow -Wno-strict-aliasing -Werror -O2 -g -DNDEBUG -std=gnu++17 -fPIC -fdiagnostics-color=always -MD -MT velox/type/parser/CMakeFiles/velox_type_parser.dir/Scanner.cpp.o -MF velox/type/parser/CMakeFiles/velox_type_parser.dir/Scanner.cpp.o.d -o velox/type/parser/CMakeFiles/velox_type_parser.dir/Scanner.cpp.o -c /gluten/ep/build-velox/build/velox_ep/_build/release/velox/type/parser/Scanner.cpp /gluten/ep/build-velox/build/velox_ep/_build/release/velox/type/parser/Scanner.cpp: In member function 'int facebook::velox::type::Scanner::lex(facebook::velox::type::Parser::semantic_type)': /gluten/ep/build-velox/build/velox_ep/_build/release/velox/type/parser/Scanner.cpp:1422:25: error: ISO C++17 does not allow 'register' storage class specifier [-Werror=register] 1422 | register yy_state_type yy_current_state; | ^~~~ /gluten/ep/build-velox/build/velox_ep/_build/release/velox/type/parser/Scanner.cpp:1423:17: error: ISO C++17 does not allow 'register' storage class specifier [-Werror=register] 1423 | register char yy_cp, yy_bp; | ^~~~~ /gluten/ep/build-velox/build/velox_ep/_build/release/velox/type/parser/Scanner.cpp:1423:25: error: ISO C++17 does not allow 'register' storage class specifier [-Werror=register] 1423 | register char yy_cp, *yy_bp; | ^~~~~ /gluten/ep/build-velox/build/velox_ep/_build/release/velox/type/parser/Scanner.cpp:1424:15: error: ISO C++17 does not allow 'register' storage class specifier [-Werror=register] 1424 | register int yy_act;

how can I solve this problem?

System information

Velox System Info v0.0.2 Commit: 8f214843ae09ae5d72f150470b03f7e1113e0234 CMake Version: 3.17.5 System: Linux-5.15.49-linuxkit Arch: x86_64 CPU Name: Model name: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz C++ Compiler: /opt/rh/devtoolset-9/root/usr/bin/c++ C++ Compiler Version: 9.3.1 C Compiler: /opt/rh/devtoolset-9/root/usr/bin/cc C Compiler Version: 9.3.1 CMake Prefix Path: /usr/local;/usr;/;/usr;/usr/local;/usr/X11R6;/usr/pkg;/opt

\nThe results will be copied to your clipboard if xclip is installed.

CMake log

No response

jasonneverstop commented 3 months ago

I encountered the exact same issue as you.

zhztheplayer commented 2 months ago

We are going to provide an alternative simplified build tool. See https://github.com/apache/incubator-gluten/issues/6265. Which may help improve development experience.

lifulong commented 1 week ago

c++ standerd 17 not support register key word, this key word has no effect in new c++ standerd temp solution we use is edit ep/build-velox/src/build_velox.sh and add -Wno-error=register compile option, this works in our case

CXX_FLAGS='-Wno-missing-field-initializers' => CXX_FLAGS='-Wno-missing-field-initializers -Wno-error=register'