pkg/60299: cross/avr-gcc: build on Darwin
| Newsgroups | gmane.os.netbsd.devel.pkgsrc.bugs |
|---|---|
| Message-ID | <[email protected]> |
>Number: 60299 >Category: pkg >Synopsis: avr-gcc does not build with latest xcode tools (v15) >Confidential: no >Severity: non-critical >Priority: low >Responsible: pkg-manager >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu May 28 09:00:00 +0000 2026 >Originator: Diogo >Release: Darwin 24.6.0 >Organization: >Environment: System: Darwin 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:34 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T8103 arm64 xcrun --show-sdk-version: 15.5 >Description: avr-gcc does not build with latest xcode tools (v15). >How-To-Repeat: bmake -C /path/to/pkgsrc/cross/avr-gcc build >Fix: Here is a simple patch to include Apple's libc++ headers before safe-ctype.h. That is sufficient to ensure the package gets built. --- diff --git a/cross/avr-gcc/patches/patch-gcc_system.h b/cross/avr-gcc/patches/patch-gcc_system.h new file mode 100644 index 000000000000..4ddfd6afc8cf --- /dev/null +++ b/cross/avr-gcc/patches/patch-gcc_system.h @@ -0,0 +1,34 @@ +$NetBSD$ + +Include Apple libc++ headers before GCC poisons ctype macros through +safe-ctype.h. Newer libc++ pulls locale formatting declarations into headers +such as <map> and <vector>, which exposes overloads like islower(char, locale) +that collide with GCC's one-argument islower poison macro. + +--- gcc/system.h.orig 2023-07-27 08:13:03.000000000 +0000 ++++ gcc/system.h +@@ -194,13 +194,22 @@ extern int fprintf_unlocked (FILE *, con + #undef fread_unlocked + #undef fwrite_unlocked + +-/* Include <string> before "safe-ctype.h" to avoid GCC poisoning +- the ctype macros through safe-ctype.h */ ++/* Include C++ standard library headers before "safe-ctype.h" to avoid GCC ++ poisoning the ctype macros through safe-ctype.h. */ + + #ifdef __cplusplus + #ifdef INCLUDE_STRING + # include <string> + #endif ++#ifdef INCLUDE_MAP ++# include <map> ++#endif ++#ifdef INCLUDE_VECTOR ++# include <vector> ++#endif ++#ifdef INCLUDE_MEMORY ++# include <memory> ++#endif + #endif + + /* There are an extraordinary number of issues with <ctype.h>.