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.16k stars 419 forks source link

Build folly error 'scm_timestamping' does not name a type #6662

Open PengleiShi opened 2 months ago

PengleiShi commented 2 months ago

Problem description

centos7 log:

/tmp/velox-deps/folly/folly/io/async/AsyncSocket.cpp:216:7: error: 'scm_timestamping' does not name a type; did you mean 'SN_ad_timeStamping'?
  216 | const scm_timestamping* FOLLY_NULLABLE
      |       ^~~~~~~~~~~~~~~~
      |       SN_ad_timeStamping
/tmp/velox-deps/folly/folly/io/async/AsyncSocket.cpp: In member function 'folly::Optional<folly::AsyncSocketObserverInterface::ByteEvent> folly::AsyncSocket::ByteEventHelper::processCmsg(const cmsghdr&, size_t)':
/tmp/velox-deps/folly/folly/io/async/AsyncSocket.cpp:515:27: error: 'cmsgToScmTimestamping' was not declared in this scope
  515 |   } else if (auto scmTs = cmsgToScmTimestamping(cmsg)) {
      |                           ^~~~~~~~~~~~~~~~~~~~~
[235/330] Building CXX object CMakeFiles/folly_base.dir/folly/json/JSONSchema.cpp.o
ninja: build stopped: subcommand failed.
+ echo 'build failed'
build failed
+ exit 1

There is a similar issue https://github.com/facebookincubator/velox/issues/7714 . And i edited ep/build-velox/src/setup-centos7.sh

cmake_install folly -DBUILD_TESTS=OFF -DFOLLY_HAVE_INT128_T=ON -DCMAKE_CXX_FLAGS='FOLLY_HAVE_SO_TIMESTAMPING'

But it did not work.

System information

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CMake log

No response

PHILO-HE commented 1 month ago

@PengleiShi, which gluten version are you using? We have a weekly job to build main branch on centos-7 docker. At least this week's job doesn't report any issue. https://github.com/apache/incubator-gluten/blob/main/.github/workflows/velox_weekly.yml

PengleiShi commented 1 month ago

@PHILO-HE I use main branch . I added -DFOLLY_HAVE_SO_TIMESTAMPING=0 in make command, the problem above has been solved but occured another failure

[320/330] Building CXX object folly/CMakeFiles/follybenchmark.dir/Benchmark.cpp.o
FAILED: folly/CMakeFiles/follybenchmark.dir/Benchmark.cpp.o
/opt/rh/devtoolset-9/root/usr/bin/c++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_CONTEXT_DYN_LINK -DBOOST_CONTEXT_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB -DFOLLY_XLOG_STRIP_PREFIXES=\"/tmp/velox-deps/folly:/tmp/velox-deps/folly/_build\" -DGFLAGS_IS_A_DLL=0 -D_GNU_SOURCE -D_REENTRANT -I/tmp/velox-deps/folly -I/tmp/velox-deps/folly/_build -march=native -std=c++17 -mno-avx512f -mbmi2 -DFOLLY_HAVE_SO_TIMESTAMPING=0 -std=gnu++17 -fPIC -g -finput-charset=UTF-8 -fsigned-char -Wall -Wno-deprecated -Wno-deprecated-declarations -Wno-sign-compare -Wno-unused -Wuninitialized -Wunused-label -Wunused-result -Wshadow-compatible-local -Wno-noexcept-type -faligned-new -fopenmp -pthread -MD -MT folly/CMakeFiles/follybenchmark.dir/Benchmark.cpp.o -MF folly/CMakeFiles/follybenchmark.dir/Benchmark.cpp.o.d -o folly/CMakeFiles/follybenchmark.dir/Benchmark.cpp.o -c /tmp/velox-deps/folly/folly/Benchmark.cpp
/tmp/velox-deps/folly/folly/Benchmark.cpp: In member function 'void folly::{anonymous}::BenchmarkResultsPrinter::print(const std::vector<folly::detail::BenchmarkResult>&)':
/tmp/velox-deps/folly/folly/Benchmark.cpp:511:28: error: expected ')' before 'PRId64'
  511 |               printf("  %*" PRId64, int(name.length()), ptr->value);
      |                     ~      ^~~~~~~
      |                            )
/tmp/velox-deps/folly/folly/Benchmark.cpp:511:26: warning: conversion lacks type at end of format [-Wformat=]
  511 |               printf("  %*" PRId64, int(name.length()), ptr->value);
      |                          ^
/tmp/velox-deps/folly/folly/Benchmark.cpp:511:22: warning: too many arguments for format [-Wformat-extra-args]
  511 |               printf("  %*" PRId64, int(name.length()), ptr->value);
      |                      ^~~~~~

Alos when build fooly. I will re-setup a clean docker env to build.