Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-85763

Build failure with Xcode 15

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 7.0.5
    • Component/s: None
    • None
    • Build
    • ALL
    • Hide
      % tar xzf mongodb-src-r7.0.5.tar.gz
      % cd mongodb-src-r7.0.5
      % python3.11 -m venv venv
      % venv/bin/python3.11 -m pip install -r etc/pip/compile-requirements.txt
      ...
      % venv/bin/python3.11 buildscripts/scons.py install-mongod
      Checking required python packages...
      Requirements list:
      ...
      Resolved to these distributions:
      ...
      scons: Reading SConscript files ...
      scons: running with args /Users/me/mongodb-src-r7.0.5/venv/bin/python3.11 buildscripts/scons.py install-mongod
      WARNING: The build_metrics tool might not work as intended due to a failed import:
      No module named 'jsonschema'
      Mkdir("build/scons")
      scons version: 3.1.2
      python version: 3 11 7 'final' 0
      Mkdir("build/tmp_test_data")
      CC is gcc
      gcc found in $PATH at /usr/bin/gcc
      CXX is g++
      g++ found in $PATH at /usr/bin/g++
      Checking if dev env is valid... skipped
      Checking if C++ compiler "g++" is GCC... no
      Checking if C++ compiler "g++" is clang... yes
      Checking if C compiler "gcc" is clang... yes
      Detected a aarch64 processor
      Checking if target OS macOS is supported by the toolchain... yes
      Checking if C compiler is clang 12.0 (or Apple XCode 13.0) or newer...yes
      Checking if C++ compiler is clang 12.0 (or Apple XCode 13.0) or newer...yes
      Checking for sufficient macOS target version minimum... yes
      Checking whether the C compiler works... yes
      Checking whether the C++ compiler works... yes
      Checking that the C++ compiler can link a C++ program... no
      C++ compiler g++ can't link C++ programs
      See /Users/me/mongodb-src-r7.0.5/build/scons/config.log for details
      % tail -n18 build/scons/config.log
      scons: Configure: Checking that the C++ compiler can link a C++ program... 
      build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.cpp <-
        |
        |#include <iostream>
        |#include <cstdlib>
        |
        |int main() {
        |    std::cout << "Hello, World" << std::endl;
        |    return EXIT_SUCCESS;
        |}
        |
      g++ -o build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.o -c -Werror=unused-result -Woverloaded-virtual -Werror -ffp-contract=off -fasynchronous-unwind-tables -g2 -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -fno-omit-frame-pointer -fno-strict-aliasing -O2 -DNDEBUG build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.cpp
      g++ -o build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0_427bedf0569bb40c3d25829f0e6a3199 -Wl,-fatal_warnings -Wl,-bind_at_load build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.o -lresolv
      ld: warning: -bind_at_load is deprecated on macOS
      ld: fatal warning(s) induced error (-fatal_warnings)
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      scons: Configure: no

      docs/building.md mentioned that I could instead run:

      % venv/bin/python3.11 buildscripts/scons.py install-mongod --disable-warnings-as-errors

      but that doesn't change the situation (and you should not be enabling warnings as errors by default).

      Show
      % tar xzf mongodb-src-r7.0.5.tar.gz % cd mongodb-src-r7.0.5 % python3.11 -m venv venv % venv/bin/python3.11 -m pip install -r etc/pip/compile-requirements.txt ... % venv/bin/python3.11 buildscripts/scons.py install-mongod Checking required python packages... Requirements list: ... Resolved to these distributions: ... scons: Reading SConscript files ... scons: running with args /Users/me/mongodb-src-r7.0.5/venv/bin/python3.11 buildscripts/scons.py install-mongod WARNING: The build_metrics tool might not work as intended due to a failed import: No module named 'jsonschema' Mkdir("build/scons") scons version: 3.1.2 python version: 3 11 7 'final' 0 Mkdir("build/tmp_test_data") CC is gcc gcc found in $PATH at /usr/bin/gcc CXX is g++ g++ found in $PATH at /usr/bin/g++ Checking if dev env is valid... skipped Checking if C++ compiler "g++" is GCC... no Checking if C++ compiler "g++" is clang... yes Checking if C compiler "gcc" is clang... yes Detected a aarch64 processor Checking if target OS macOS is supported by the toolchain... yes Checking if C compiler is clang 12.0 (or Apple XCode 13.0) or newer...yes Checking if C++ compiler is clang 12.0 (or Apple XCode 13.0) or newer...yes Checking for sufficient macOS target version minimum... yes Checking whether the C compiler works... yes Checking whether the C++ compiler works... yes Checking that the C++ compiler can link a C++ program... no C++ compiler g++ can't link C++ programs See /Users/me/mongodb-src-r7.0.5/build/scons/config.log for details % tail -n18 build/scons/config.log scons: Configure: Checking that the C++ compiler can link a C++ program...  build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.cpp <-   |   |#include <iostream>   |#include <cstdlib>   |   |int main() {   |    std::cout << "Hello, World" << std::endl;   |    return EXIT_SUCCESS;   |}   | g++ -o build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.o -c -Werror=unused-result -Woverloaded-virtual -Werror -ffp-contract=off -fasynchronous-unwind-tables -g2 -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -fno-omit-frame-pointer -fno-strict-aliasing -O2 -DNDEBUG build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.cpp g++ -o build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0_427bedf0569bb40c3d25829f0e6a3199 -Wl,-fatal_warnings -Wl,-bind_at_load build/scons/opt/sconf_temp/conftest_ac30bfea77045c1c67c4f51773b51414_0.o -lresolv ld: warning: -bind_at_load is deprecated on macOS ld: fatal warning(s) induced error (-fatal_warnings) clang: error: linker command failed with exit code 1 (use -v to see invocation) scons: Configure: no docs/building.md mentioned that I could instead run: % venv/bin/python3.11 buildscripts/scons.py install-mongod --disable-warnings-as-errors but that doesn't change the situation (and you should not be enabling warnings as errors by default).

      mongodb 7.0.5 does not build with the toolchain included with Xcode 15.2 on macOS 14.2.1. This is due to the new linker included in Xcode 15 and later.

      This problem was originally reported to MacPorts: https://trac.macports.org/ticket/69186

            Assignee:
            Unassigned Unassigned
            Reporter:
            ryandesign Ryan Schmidt
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: