Patches for blake3_dispatch.c to support old macOS toolchains. 1. Remove #include from the GCC path. Nothing in the dispatch code uses intrinsics from that header, and it fails to compile on old Xcode/GCC versions that ship with OS X 10.5-10.6. 2. Encode the xgetbv instruction as raw bytes (.byte 0x0f, 0x01, 0xd0) instead of using the "xgetbv" mnemonic. Assemblers bundled with Xcode 3.x do not recognize the mnemonic. --- src/blake3_dispatch.c 2026-04-04 21:39:16 +++ blake3_dispatch.c.patched 2026-04-04 21:39:44 @@ -11,9 +11,7 @@ #if defined(IS_X86) #if defined(_MSC_VER) #include -#elif defined(__GNUC__) -#include -#else +#elif !defined(__GNUC__) #undef IS_X86 /* Unimplemented! */ #endif #endif @@ -52,7 +50,7 @@ return _xgetbv(0); #else uint32_t eax = 0, edx = 0; - __asm__ __volatile__("xgetbv\n" : "=a"(eax), "=d"(edx) : "c"(0)); + __asm__ __volatile__(".byte 0x0f, 0x01, 0xd0" : "=a"(eax), "=d"(edx) : "c"(0)); return ((uint64_t)edx << 32) | eax; #endif }