velox: Build failures after upgrade to MacOS 14.4

Problem description

Seeing build failures in CLion after upgrading to MacOS 14.4.

Already tried: (1) run setup-macos.sh; (2) delete cmake-builde-debug directory.

[ 19%] Built target velox_type_signature
[ 19%] [BISON][SignatureParser] Building parser with bison 3.8.2
xcode-select: Failed to locate 'm4', requesting installation of command line developer tools.
[ 19%] [BISON][SignatureParser] Building parser with bison 3.8.2
xcode-select: Failed to locate 'm4', requesting installation of command line developer tools.
[ 19%] Building CXX object velox/expression/signature_parser/CMakeFiles/velox_signature_parser.dir/SignatureParser.yy.cc.o
clang: error: no such file or directory: '/Users/mbasmanova/cpp/velox-1/cmake-build-debug/velox/expression/signature_parser/SignatureParser.yy.cc'
clang: error: no input files
make[3]: *** [velox/expression/signature_parser/CMakeFiles/velox_signature_parser.dir/SignatureParser.yy.cc.o] Error 1
make[2]: *** [velox/expression/signature_parser/CMakeFiles/velox_signature_parser.dir/all] Error 2
make[1]: *** [velox/expression/tests/CMakeFiles/velox_expression_test.dir/rule] Error 2
make: *** [velox_expression_test] Error 2

CC: @assignUser @majetideepak @kgpai

System information

Velox System Info v0.0.2 Commit: 7e8105a0b4d762edb91c7c0853fbfcf0c6a9ffbc CMake Version: 3.28.3 System: Darwin-23.4.0 Arch: x86_64 C++ Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ C++ Compiler Version: 15.0.0.15000309 C Compiler: /Library/Developer/CommandLineTools/usr/bin/cc C Compiler Version: 15.0.0.15000309 CMake Prefix Path: /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr;/usr/local;/usr;/;/usr/local/Cellar/cmake/3.28.3;/usr/local;/usr/X11R6;/usr/pkg;/opt;/sw;/opt/local

Conda Env

# packages in environment at /usr/local/Caskroom/miniconda/base:
#
# Name                    Version                   Build  Channel
brotlipy                  0.7.0           py310hca72f7f_1002  
bzip2                     1.0.8                h1de35cc_0  
ca-certificates           2023.01.10           hecd8cb5_0  
certifi                   2022.12.7       py310hecd8cb5_0  
cffi                      1.15.1          py310h6c40b1e_3  
charset-normalizer        2.0.4              pyhd3eb1b0_0  
chevron                   0.14.0                   pypi_0    pypi
conda                     23.1.0          py310hecd8cb5_0  
conda-content-trust       0.1.3           py310hecd8cb5_0  
conda-package-handling    2.0.2           py310hecd8cb5_0  
conda-package-streaming   0.7.0           py310hecd8cb5_0  
cryptography              38.0.4          py310hf6deb26_0  
idna                      3.4             py310hecd8cb5_0  
libffi                    3.4.2                hecd8cb5_6  
ncurses                   6.4                  hcec6c5f_0  
openssl                   1.1.1s               hca72f7f_0  
pip                       22.3.1          py310hecd8cb5_0  
pluggy                    1.0.0           py310hecd8cb5_1  
pycosat                   0.6.4           py310hca72f7f_0  
pycparser                 2.21               pyhd3eb1b0_0  
pyopenssl                 22.0.0             pyhd3eb1b0_0  
pysocks                   1.7.1           py310hecd8cb5_0  
python                    3.10.9               h218abb5_0  
python.app                3               py310hca72f7f_0  
pyyaml                    6.0                      pypi_0    pypi
readline                  8.2                  hca72f7f_0  
regex                     2022.10.31               pypi_0    pypi
requests                  2.28.1          py310hecd8cb5_0  
ruamel.yaml               0.17.21         py310hca72f7f_0  
ruamel.yaml.clib          0.2.6           py310hca72f7f_1  
setuptools                65.6.3          py310hecd8cb5_0  
six                       1.16.0             pyhd3eb1b0_1  
sqlite                    3.40.1               h880c91c_0  
tk                        8.6.12               h5d9f67b_0  
toolz                     0.12.0          py310hecd8cb5_0  
tqdm                      4.64.1          py310hecd8cb5_0  
tzdata                    2022g                h04d1e81_0  
urllib3                   1.26.14         py310hecd8cb5_0  
wheel                     0.37.1             pyhd3eb1b0_0  
xz                        5.2.10               h6c40b1e_1  
zlib                      1.2.13               h4dc903c_0  
zstandard                 0.18.0          py310hca72f7f_0  

CMake log

/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DTREAT_WARNINGS_AS_ERRORS=1 -DENABLE_ALL_WARNINGS=1 -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" -S /Users/mbasmanova/cpp/velox-1 -B /Users/mbasmanova/cpp/velox-1/cmake-build-debug
-- Building using CMake version: 3.24.2
-- Using Conda environment: /usr/local/Caskroom/miniconda/base
-- Build type: Debug
-- Building cpr from source
-- CXX standard: 17
-- C++ Requests CMake Options
-- =======================================================
--   CPR_GENERATE_COVERAGE: OFF
--   CPR_CURL_NOSIGNAL: OFF
--   CURL_VERBOSE_LOGGING: OFF
--   CPR_USE_SYSTEM_GTEST: OFF
--   CPR_USE_SYSTEM_CURL: OFF
--   CPR_ENABLE_CURL_HTTP_ONLY: ON
--   CPR_ENABLE_SSL: ON
--   CPR_FORCE_OPENSSL_BACKEND: OFF
--   CPR_FORCE_WINSSL_BACKEND: OFF
--   CPR_FORCE_DARWINSSL_BACKEND: OFF
--   CPR_FORCE_MBEDTLS_BACKEND: OFF
--   CPR_ENABLE_LINTING: OFF
--   CPR_ENABLE_CPPCHECK: OFF
--   CPR_BUILD_TESTS: OFF
--   CPR_BUILD_TESTS_SSL: OFF
--   CPR_BUILD_TESTS_PROXY: OFF
--   CPR_SKIP_CA_BUNDLE_SEARCH: OFF
--   CPR_USE_BOOST_FILESYSTEM: OFF
--   CPR_DEBUG_SANITIZER_FLAG_THREAD: OFF
--   CPR_DEBUG_SANITIZER_FLAG_ADDR: OFF
--   CPR_DEBUG_SANITIZER_FLAG_LEAK: OFF
--   CPR_DEBUG_SANITIZER_FLAG_UB: OFF
--   CPR_DEBUG_SANITIZER_FLAG_ALL: OFF
-- =======================================================
-- Automatically detecting SSL backend.
-- Detecting SSL backend...
-- SSL auto detect: Using DarwinSSL.
-- Configuring built-in curl...
-- Enabled curl SSL
-- curl version=[8.4.0]
-- Picky compiler options: -Wextra -Wall -pedantic -Wbad-function-cast -Wconversion -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-long-long -Wno-multichar -Wpointer-arith -Wshadow -Wsign-compare -Wundef -Wunused -Wwrite-strings -Wcast-align -Wdeclaration-after-statement -Wempty-body -Wendif-labels -Wfloat-equal -Wignored-qualifiers -Wno-format-nonliteral -Wno-sign-conversion -Wno-system-headers -Wstrict-prototypes -Wtype-limits -Wvla -Wshift-sign-overflow -Wshorten-64-to-32 -Wdouble-promotion -Wenum-conversion -Wunused-const-variable -Wcomma -Wmissing-variable-declarations -Wassign-enum -Wextra-semi-stmt
-- Could NOT find LibPSL (missing: LIBPSL_LIBRARY LIBPSL_INCLUDE_DIR) 
-- Could NOT find LibSSH2 (missing: LIBSSH2_LIBRARY LIBSSH2_INCLUDE_DIR) 
-- CA path only supported by OpenSSL, wolfSSL, GnuTLS or mbedTLS. Set CURL_CA_PATH=none or enable one of those TLS backends.
-- Enabled features: SSL IPv6 unixsockets AsynchDNS Largefile alt-svc HSTS HTTPS-proxy threadsafe
-- Enabled protocols: HTTP HTTPS
-- Enabled SSL backends: Secure Transport
-- Using ccache: /usr/local/bin/ccache
Setting CMAKE_CXX_FLAGS=-mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden
FINAL CMAKE_CXX_FLAGS= -mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden -D USE_VELOX_COMMON_BASE -D HAS_UNCAUGHT_EXCEPTIONS -Wall -Wextra -Wno-unused        -Wno-unused-parameter        -Wno-sign-compare        -Wno-ignored-qualifiers        -Wno-range-loop-analysis          -Wno-mismatched-tags          -Wno-nullability-completeness
-- Setting Boost source to AUTO
-- Found Boost: /usr/local/lib/cmake/Boost-1.84.0/BoostConfig.cmake (found suitable version "1.84.0", minimum required is "1.66.0") found components: atomic context date_time filesystem program_options regex system thread 
-- Using SYSTEM Boost
-- Setting gflags source to AUTO
-- Using SYSTEM gflags
-- Setting DuckDB source to SYSTEM
-- Setting fmt source to AUTO
-- Using SYSTEM fmt
-- Setting re2 source to AUTO
-- Using SYSTEM re2
-- Setting simdjson source to AUTO
CMake Warning at CMake/ResolveDependency.cmake:70 (find_package):
  By not providing "Findsimdjson.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "simdjson",
  but CMake did not find one.

  Could not find a package configuration file provided by "simdjson"
  (requested version 3.2.0) with any of the following names:

    simdjsonConfig.cmake
    simdjson-config.cmake

  Add the installation prefix of "simdjson" to CMAKE_PREFIX_PATH or set
  "simdjson_DIR" to a directory containing one of the above files.  If
  "simdjson" provides a separate development package or SDK, be sure it has
  been installed.
Call Stack (most recent call first):
  CMakeLists.txt:459 (resolve_dependency)


-- Building simdjson from source
-- Adding -Og to compile flag
-- Using BUNDLED simdjson
-- Setting folly source to SYSTEM
-- Found Boost: /usr/local/lib/cmake/Boost-1.84.0/BoostConfig.cmake (found suitable version "1.84.0", minimum required is "1.51.0") found components: context filesystem program_options regex system thread 
-- Found folly: /usr/local
-- Setting Protobuf source to AUTO
-- Using SYSTEM Protobuf
-- Found Bison keg installed by Homebrew at /usr/local/opt/bison
-- Found Flex keg installed by Homebrew at /usr/local/opt/flex
CMake Warning (dev) at /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (GTest) does
  not match the name of the calling package (gtest).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Findgtest.cmake:199 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMake/ResolveDependency.cmake:70 (find_package)
  CMakeLists.txt:555 (resolve_dependency)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building gtest from source
-- Using BUNDLED gtest
CMake Warning (dev) at CMakeLists.txt:556 (set):
  Cannot set "VELOX_GTEST_INCUDE_DIR": current scope has no parent.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Setting xsimd source to AUTO
CMake Warning at CMake/ResolveDependency.cmake:70 (find_package):
  By not providing "Findxsimd.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "xsimd", but
  CMake did not find one.

  Could not find a package configuration file provided by "xsimd" (requested
  version 10.0.0) with any of the following names:

    xsimdConfig.cmake
    xsimd-config.cmake

  Add the installation prefix of "xsimd" to CMAKE_PREFIX_PATH or set
  "xsimd_DIR" to a directory containing one of the above files.  If "xsimd"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  CMakeLists.txt:562 (resolve_dependency)


-- Building xsimd from source
-- xsimd v10.0.0
-- Using BUNDLED xsimd
-- Configuring done
-- Generating done

About this issue

  • Original URL
  • State: closed
  • Created 3 months ago
  • Comments: 16 (5 by maintainers)

Most upvoted comments

I hit this after upgrading my OS version to 14.4. The issue seems to be from using /usr/bin/m4. We must use the homebrew version /opt/homebrew/opt/m4/bin/m4. You must add /opt/homebrew/opt/m4/bin/ as a prefix to $PATH so that the homebrew version gets picked up CLion change: Screenshot 2024-03-21 at 4 58 07 PM

https://schmonz.com/2024/04/02/pkgsrc-on-macos-still-works/ notes that the missing M4 is only a problem for the Command Line Tools 15.3.0.0.1.1708646388, and that m4 is shipped in full XCode 15.3 installations. So another workaround might be to install and xcode-select a full copy of XCode.

Again, thank you @majetideepak for providing a fix.

I found the same problom on M1. Maybe you can run “brew install m4”, and “ln -sf /opt/homebrew/Cellar/m4/1.4.19/bin/m4 /opt/homebrew/bin/m4” if soft link not be created.