Answers to your questions are inline below. But I also have a question for you: in your LibreOffice build’s ./config_host.mk file, what is MESON= set to? In my build it is set to the following:
MESON=$(call gb_ExternalExecutable_get_command,python)
/Volumes/LOBuilds/lode/opt/bin/meson
When I did a clean build with Homebrew’s meson 1.9.1 yesterday, it was set to
the following:
MESON=/opt/homebrew/opt/bin/meson
Whatever MESON is set to in the ./config_host.mk file is what the Harfbuzz
build scripts will use.
> On Sep 28, 2025, at 1:29 PM, Chris Sherlock <[email protected]>
> wrote:
>
> It’s not meson, in fact for this it was never a problem with meson. It’s the
> latest version of the standard c++ library of llvm that is being used by
> macOS Tahoe. They changed their warning to an error now - if you use
> -D_LIBCPP_ENABLE_ASSERTIONS you’ll get the error and it will tell you to use
> -D_LIBCPP_HARDENING_MODE. Are you using Tahoe to build on macOS? And are you
> using gcc or clang?
I build on macOS Tahoe 26.0 with Xcode 26.0. I use Xcode’s built-in clang and
my laptop has an ARM chip.
Also, I use LibreOffice LODE
(https://wiki.documentfoundation.org/Development/lode) instead of Homebrew to
get all of the external build tools. I have had problems building with Homebrew
in my $PATH since macOS Sonoma so I exclude Homebrew from my $PATH when
building LibreOffice.
I am no meson expert but I ran into this same issue when I upgraded my laptop
to macOS Tahoe Public Beta this last summer. The Harfbuzz build broke due to
some undefined _LIBCPP macro like you see (i.e. the macOS Tahoe change) so I
just upgraded the LibreOffice LODE repo to the old version of meson (i.e.
1.8.3) which handled this macOS Tahoe change and I haven’t had any problems
building Harfbuzz since then.
>
> When you look at the compile_commands.json does it show the new
> _LIBCPP_HARDENING_MODE or does it use _LIBCPP_ENABLE_ASSERTIONS?
Yes, it shows the new _LIBCPP_HARDENING_MODE define. In
./workdir/UnpackedTarball/harfbuzz/builddir/compile_commands.json I see
_LIBCPP_HARDENING_MODE. Below is a snippet from that Harfbuzz build file.
{
"directory":
"/Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/harfbuzz/builddir",
"command": "/Volumes/LOBuilds/lode/opt/bin/ccache
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-target arm64-apple-macos -stdlib=libc++ -mmacosx-version-min.0 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk
-Isrc/libharfbuzz.a.p -Isrc -I../src -I. -I..
-I/Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/graphite/include
-I/Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/icu/source/i18n
-I/Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/icu/source/common
-fvisibility=hidden -fdiagnostics-color=always
-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -Wall -Winvalid-pch
-fno-exceptions -std=c++20 -O3 -fno-exceptions -fno-rtti
-fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H
-DGRAPHITE2_STATIC -MD -MQ src/libharfbuzz.a.p/hb-aat-layout.cc.o -MF
src/libharfbuzz.a.p/hb-aat-layout.cc.o.d -o
src/libharfbuzz.a.p/hb-aat-layout.cc.o -c ../src/hb-aat-layout.cc",
"file": "../src/hb-aat-layout.cc",
"output": "src/libharfbuzz.a.p/hb-aat-layout.cc.o"
},
> And do we have any buildbots using macOS Tahoe yet?
Last I heard, the nightly and release builds are built on macOS Sonoma. AFAICT,
I’ve been the only one building on macOS Tahoe and now you are likely now the
second person. :)
Patrick
smime.p7s
Description: S/MIME cryptographic signature
