Using macOS 26.3(25D125) on Apple Silicon (M2), with updated XCode.
Are there build requirements I could be missing or how to inspect the particular clang dependencies, header files, etc.?
Pip tarball install and spin build both fail with various header include errors, on versions 2.2.3 and 2.4.2 (building against python 3.14 as these are particular project requirements).
All builds succeed on linux 6.17.8-arch1-1, python 3.14, etc.
$ mkvirtualenv numpy -p 3.14
$ pip install numpy==2.2.3 --no-binary numpy
...
$ git clone git@github.com:numpy/numpy.git
$ cd numpy
$ git checkout v2.2.3
$ git submodule update –init
$ mkvirtualenv numpybuild -p 3.14
$ pip install .
...
$ git checkout v2.4.2
$ git submodule update
$ pip install .
...
$ pip install -r requirements/build_requirements.txt
$ spin build
...
Getting errors like:
../numpy/_core/src/common/utils.hpp:10:10: fatal error: 'type_traits' file not found
10 | #include <type_traits>
| ^~~~~~~~~~~~~
../numpy/_core/src/highway/hwy/abort.cc:12:10: fatal error: 'atomic' file not found
12 | #include <atomic>
| ^~~~~~~~
../numpy/_core/src/common/npstd.hpp:6:10: fatal error: 'cstddef' file not found
6 | #include <cstddef>
| ^~~~~~~~~
Here’s the full build environment:
The Meson build system
Version: 1.9.2
Source dir: /Users/aren/git/numpy
Build dir: /Users/aren/git/numpy/build
Build type: native build
Project name: NumPy
Project version: 2.4.2
C compiler for the host machine: cc (clang 17.0.0 "Apple clang version 17.0.0 (clang-1700.6.3.2)")
C linker for the host machine: cc ld64 1230.1
C++ compiler for the host machine: c++ (clang 17.0.0 "Apple clang version 17.0.0 (clang-1700.6.3.2)")
C++ linker for the host machine: c++ ld64 1230.1
Cython compiler for the host machine: cython (cython 3.2.4)
Host machine cpu family: aarch64
Host machine cpu: aarch64
Program python3 found: YES (/Users/aren/git/venvs/numpybuild/bin/python)
Found pkg-config: YES (/opt/homebrew/bin/pkg-config) 2.5.1
Run-time dependency python found: YES 3.14
Has header "Python.h" with dependency python-3.14: YES
Compiler for C supports arguments -fno-strict-aliasing: YES
Compiler for C supports arguments -ftrapping-math: YES
Test features "NEON NEON_FP16 NEON_VFPV4 ASIMD" : Supported
Test features "ASIMDHP" : Supported
Test features "ASIMDDP" : Supported
Test features "ASIMDFHM" : Supported
Test features "SVE" : Supported
Configuring npy_cpu_dispatch_config.h using configuration
Message:
CPU Optimization Options
baseline:
Requested : min
Enabled : NEON NEON_FP16 NEON_VFPV4 ASIMD
dispatch:
Requested : max
Enabled : ASIMDHP ASIMDDP ASIMDFHM SVE
Library m found: YES
Run-time dependency scipy-openblas found: NO (tried pkgconfig)
Run-time dependency accelerate found: YES
Message: BLAS symbol suffix: $NEWLAPACK
Checking if "Check atomic builtins without -latomic" links: YES
Program _build_utils/process_src_template.py found: YES (/Users/aren/git/venvs/numpybuild/bin/python /Users/aren/git/numpy/numpy/_build_utils/process_src_template.py)
Program _build_utils/tempita.py found: YES (/Users/aren/git/venvs/numpybuild/bin/python /Users/aren/git/numpy/numpy/_build_utils/tempita.py)
I can install the prebuilt wheels from PyPI just fine, but these are not always available for particular versions/platforms, and I’m beginning to think my MacOS build environment has not worked for some time, but not sure how to investigate..
Same results with latest update to XCode, clang-1700.6.4.2
Looking around, sounds like XCode updates can cause problems.
opened 07:34AM - 20 Sep 24 UTC
closed 10:29PM - 20 Sep 24 UTC
build
macos
### Version
main
### Platform
```text
OS: macOS 14.6.1
CPU: (8) arm64 Apple … M1 Pro
Memory: 326.86 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
```
### Subsystem
_No response_
### What steps will reproduce the bug?
1. `git pull upstream main`
2. `./configure --node-builtin-modules-path "$(pwd)" --ninja`
3. `make`
### How often does it reproduce? Is there a required condition?
Frequency: Always. It happened to me after my macOS was upgraded from 14.5.0 to 14.6.1.
Required condition: No sure.
### What is the expected behavior? Why is that the expected behavior?
`node` is built.
### What do you see instead?
```
ninja -C out/Release
ninja: Entering directory `out/Release'
[1/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.filestrm.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.filestrm.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.filestrm.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/filestrm.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.filestrm.o
In file included from ../../deps/icu-small/source/tools/toolutil/filestrm.cpp:28:
In file included from ../../deps/icu-small/source/common/cmemory.h:33:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[2/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.flagparser.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.flagparser.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.flagparser.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/flagparser.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.flagparser.o
In file included from ../../deps/icu-small/source/tools/toolutil/flagparser.cpp:11:
In file included from ../../deps/icu-small/source/common/cstring.h:31:
In file included from ../../deps/icu-small/source/common/cmemory.h:33:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[3/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.collationinfo.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.collationinfo.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.collationinfo.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/collationinfo.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.collationinfo.o
In file included from ../../deps/icu-small/source/tools/toolutil/collationinfo.cpp:21:
In file included from ../../deps/icu-small/source/i18n/collationdata.h:21:
In file included from ../../deps/icu-small/source/i18n/unicode/ucol.h:17:
In file included from ../../deps/icu-small/source/common/unicode/unorm.h:25:
In file included from ../../deps/icu-small/source/common/unicode/unorm2.h:35:
In file included from ../../deps/icu-small/source/common/unicode/uset.h:36:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[4/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.uoptions.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.uoptions.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.uoptions.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/uoptions.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.uoptions.o
In file included from ../../deps/icu-small/source/tools/toolutil/uoptions.cpp:22:
In file included from ../../deps/icu-small/source/common/cstring.h:31:
In file included from ../../deps/icu-small/source/common/cmemory.h:33:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[5/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.ucbuf.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.ucbuf.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.ucbuf.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/ucbuf.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.ucbuf.o
In file included from ../../deps/icu-small/source/tools/toolutil/ucbuf.cpp:23:
In file included from ../../deps/icu-small/source/common/unicode/ucnv.h:52:
In file included from ../../deps/icu-small/source/common/unicode/uenum.h:25:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[6/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.ppucd.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.ppucd.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.ppucd.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/ppucd.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.ppucd.o
In file included from ../../deps/icu-small/source/tools/toolutil/ppucd.cpp:19:
In file included from ../../deps/icu-small/source/common/charstr.h:18:
../../deps/icu-small/source/common/unicode/unistr.h:35:10: fatal error: 'cstddef' file not found
35 | #include <cstddef>
| ^~~~~~~~~
1 error generated.
[7/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.pkg_icu.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.pkg_icu.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.pkg_icu.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/pkg_icu.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.pkg_icu.o
In file included from ../../deps/icu-small/source/tools/toolutil/pkg_icu.cpp:9:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[8/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.writesrc.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.writesrc.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.writesrc.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/writesrc.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.writesrc.o
../../deps/icu-small/source/tools/toolutil/writesrc.cpp:31:10: fatal error: 'cinttypes' file not found
31 | #include <cinttypes>
| ^~~~~~~~~~~
1 error generated.
[9/4210] CXX obj/tools/icu/patches/75/source/tools/toolutil/icutools.pkg_genc.o
FAILED: obj/tools/icu/patches/75/source/tools/toolutil/icutools.pkg_genc.o
c++ -MMD -MF obj/tools/icu/patches/75/source/tools/toolutil/icutools.pkg_genc.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../tools/icu/patches/75/source/tools/toolutil/pkg_genc.cpp -o obj/tools/icu/patches/75/source/tools/toolutil/icutools.pkg_genc.o
In file included from ../../tools/icu/patches/75/source/tools/toolutil/pkg_genc.cpp:46:
In file included from ../../deps/icu-small/source/common/cmemory.h:33:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
[10/4210] CXX obj/deps/icu-small/source/tools/toolutil/icutools.swapimpl.o
FAILED: obj/deps/icu-small/source/tools/toolutil/icutools.swapimpl.o
c++ -MMD -MF obj/deps/icu-small/source/tools/toolutil/icutools.swapimpl.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_HAS_QUIC -DICU_NO_USER_DATA_OVERRIDE -D_DARWIN_USE_64_BIT_INODE=1 -DOPENSSL_NO_PINSHARED -DOPENSSL_THREADS -DU_COMMON_IMPLEMENTATION=1 -DU_I18N_IMPLEMENTATION=1 -DU_IO_IMPLEMENTATION=1 -DU_TOOLUTIL_IMPLEMENTATION=1 -DU_ATTRIBUTE_DEPRECATED= -DU_STATIC_IMPLEMENTATION=1 -DUCONFIG_NO_SERVICE=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_STD_STRING=1 -DUCONFIG_NO_BREAK_ITERATION=0 -I../../deps/icu-small/source/common -I../../deps/icu-small/source/i18n -I../../deps/icu-small/source/tools/toolutil -O3 -gdwarf-2 -fno-strict-aliasing -mmacosx-version-min=11.0 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-exceptions -c ../../deps/icu-small/source/tools/toolutil/swapimpl.cpp -o obj/deps/icu-small/source/tools/toolutil/icutools.swapimpl.o
In file included from ../../deps/icu-small/source/tools/toolutil/swapimpl.cpp:30:
In file included from ../../deps/icu-small/source/common/unicode/udata.h:25:
../../deps/icu-small/source/common/unicode/localpointer.h:45:10: fatal error: 'memory' file not found
45 | #include <memory>
| ^~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.
make: *** [node] Error 1
```
### Additional information
- I was able to build last week.
- My maOS was upgraded from 14.5.0 to 14.6.1 yesterday.
- My clang version
```
Apple clang version 16.0.0 (clang-1600.0.26.3)
Target: arm64-apple-darwin23.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
```
Fixed by removing and reinstalling XCode from scratch.
$ sudo rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
This may have been broken on my system for a long time already, so I couldn’t say exactly which XCode update in the last few years introduced this.