From 4077e8e38d9ca9316797e9a12a21bfa292dcb7e6 Mon Sep 17 00:00:00 2001 From: Michael Cho Date: Mon, 8 Sep 2025 19:22:17 -0400 Subject: [PATCH] Improve superenv mixing newer LLVM headers with Apple libc++ To avoid missing symbols when mixing newer LLVM headers with older Apple libc++, inject a __config_site that sets vendor availability annotations to match system library. --- .../Homebrew/shims/mac/super/include/llvm/__config_site | 7 +++++++ Library/Homebrew/shims/super/cc | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 Library/Homebrew/shims/mac/super/include/llvm/__config_site diff --git a/Library/Homebrew/shims/mac/super/include/llvm/__config_site b/Library/Homebrew/shims/mac/super/include/llvm/__config_site new file mode 100644 index 0000000000..8991dc948a --- /dev/null +++ b/Library/Homebrew/shims/mac/super/include/llvm/__config_site @@ -0,0 +1,7 @@ +#ifndef _HOMEBREW_LIBCPP___CONFIG_SITE +#define _HOMEBREW_LIBCPP___CONFIG_SITE + +#include_next <__config_site> +#define _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS 1 + +#endif // _HOMEBREW_LIBCPP___CONFIG_SITE diff --git a/Library/Homebrew/shims/super/cc b/Library/Homebrew/shims/super/cc index b5424f4d22..5401bdb85f 100755 --- a/Library/Homebrew/shims/super/cc +++ b/Library/Homebrew/shims/super/cc @@ -324,6 +324,9 @@ class Cmd args << "-std=c++11" if cxx11? args << "-stdlib=libc++" if libcxx? args << "-stdlib=libstdc++" if libstdcxx? + if ENV["HOMEBREW_CC"] == "llvm_clang" && mac? + args << "-I#{ENV["HOMEBREW_LIBRARY"]}/Homebrew/shims/mac/super/include/llvm" + end args end