> On 28 Sep 2025, at 11:51 pm, Patrick Luby <[email protected]> wrote: > >> >> On Sep 28, 2025, at 5:31 AM, Chris Sherlock <[email protected]> >> wrote: >> So I have done a bit of digging, and the meson.build needs to detect the >> version of macOS being used. >> >> So after a bit of research, I worked out the following code snippet that you >> add after the project() directive in the root meson.build file in harfbuzz: >> >> if host_machine.system() == 'darwin' >> if host_machine.cpu_family() == 'aarch64' or host_machine.cpu_family() == >> 'x86_64' >> # Set the hardening mode for C and C++ compilers >> >> add_project_arguments('-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE', >> language: ['c', 'cpp']) >> # Undefine the old macro to ensure it's not used >> add_project_arguments('-U_LIBCPP_ENABLE_ASSERTIONS', language: ['c', >> 'cpp']) >> endif >> endif >> >> The problem is… how on earth is that generated? It does seem like a Harfbuzz >> issue… but I don’t know how we propose a change like this… >> >> Chris > > I don’t run into any of what you describe. I use LibreOffice LODE for all the > build tools and LODE includes a locally compiled meson 1.8.3. I then rebuilt > with meson 1.9.1 from Homebrew using the "MESON=/opt/homebrew/bin/meson > ./autogen.sh” that I described in my previous e-mail. > > So what is different in your build environment (other than not using LODE)? I > am building on macOS Tahoe 26.0 on my Mac Silicon laptop with Xcode 26.0. The > only special step is I remove both "/opt/homebrew/bin” and > “/opt/homebrew/sbin" from my $PATH in order for ./autogen.sh to complete > without error. > > Since I am not seeing any errors when building Harfbuzz, I assume that meson > is generating the right C++ defines for Harfbuzz. But then I did a “make > distclean && ./autogen.sh” when changing which meson to use. Have you tried > cleaning your build like that? > > Or, at least try cleaning LibreOffice's harfbuzz build using “cd > external/harfbuzz && make clean && make”. That will delete LibreOffice's > Harfbuzz in build folder in workdir/UnpackedTarball/harfbuzz. > > Hope that helps, > > Patrick
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? When you look at the compile_commands.json does it show the new _LIBCPP_HARDENING_MODE or does it use _LIBCPP_ENABLE_ASSERTIONS? And do we have any buildbots using macOS Tahoe yet? Chris
