> 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

Reply via email to