--- pango/pangocoretext-private.h	2026-03-23 09:54:26.000000000 +0800
+++ pango/pangocoretext-private.h	2026-05-06 20:59:17.000000000 +0800
@@ -136,8 +136,6 @@
 _PANGO_EXTERN
 int                   pango_core_text_font_key_get_size             (const PangoCoreTextFontKey *key);
 _PANGO_EXTERN
-int                   pango_core_text_font_key_get_size    (const PangoCoreTextFontKey *key);
-_PANGO_EXTERN
 double                pango_core_text_font_key_get_resolution       (const PangoCoreTextFontKey *key);
 _PANGO_EXTERN
 gboolean              pango_core_text_font_key_get_synthetic_italic (const PangoCoreTextFontKey *key);

--- pango/pangocoretext.h	2026-03-23 09:54:26.000000000 +0800
+++ pango/pangocoretext.h	2026-05-06 21:06:13.000000000 +0800
@@ -24,6 +24,7 @@
 #define __PANGOCORETEXT_H__
 
 #include <pango/pango.h>
+#include <strings.h> /* bzero */
 #include <Carbon/Carbon.h>
 
 G_BEGIN_DECLS


pangocoretext.c:263:17: error: assignment to 'PangoFontMap *' {aka 'struct _PangoFontMap *'} from incompatible pointer type 'PangoCoreTextFontMap *' {aka 'struct _PangoCoreTextFontMap *'}
--- pango/pangocoretext.c	2026-03-23 09:54:26.000000000 +0800
+++ pango/pangocoretext.c	2026-05-06 21:14:05.000000000 +0800
@@ -260,7 +260,7 @@
 
   g_return_if_fail (priv->fontmap == NULL);
 
-  priv->fontmap = fontmap;
+  priv->fontmap = PANGO_FONT_MAP (fontmap);
   if (fontmap)
     g_object_add_weak_pointer (G_OBJECT (fontmap), (gpointer *) &priv->fontmap);
 }


Carbon/Carbon.h is already included via pango headers, but including it before them results in undeclared bzero error.
--- pango/pangocairo-coretextfont.c.orig	2026-03-23 09:54:26.000000000 +0800
+++ pango/pangocairo-coretextfont.c	2026-05-06 21:35:09.000000000 +0800
@@ -23,8 +23,6 @@
 
 #include "config.h"
 
-#include <Carbon/Carbon.h>
-
 #include "pango-impl-utils.h"
 #include "pangocoretext-private.h"
 #include "pangocairo.h"

--- pango/pangocoretext-fontmap.c	2026-03-23 09:54:26.000000000 +0800
+++ pango/pangocoretext-fontmap.c	2026-05-06 21:35:17.000000000 +0800
@@ -28,7 +28,7 @@
 #include "pangocoretext-private.h"
 #include "pango-impl-utils.h"
 
-#include <Carbon/Carbon.h>
+#include <AvailabilityMacros.h>
 
 typedef struct _FontHashKey      FontHashKey;
 
@@ -809,11 +809,6 @@
 }
 
 
-
-static void pango_core_text_font_map_class_init (PangoCoreTextFontMapClass *class);
-static void pango_core_text_font_map_init (PangoCoreTextFontMap *ctfontmap);
-
-
 G_DEFINE_TYPE (PangoCoreTextFontMap, pango_core_text_font_map, PANGO_TYPE_FONT_MAP);
 
 static void
@@ -1591,7 +1586,7 @@
 
   /* Insert aliases */
   /* Keep in sync with get_real_family() */
-  gchar* aliases[] = {
+  const gchar* aliases[] = {
     "Sans", "Serif", "system-ui", "cursive", "fantasy", "Monospace"
   };
 
@@ -1683,7 +1678,6 @@
  */
 
 static void              pango_core_text_fontset_finalize     (GObject                   *object);
-static void              pango_core_text_fontset_init         (PangoCoreTextFontset      *fontset);
 static PangoLanguage *   pango_core_text_fontset_get_language (PangoFontset              *fontset);
 static  PangoFont *      pango_core_text_fontset_get_font     (PangoFontset              *fontset,
                                                                guint                      wc);
@@ -1793,7 +1787,17 @@
                                           &kCFTypeArrayCallBacks);
     }
 
+  /* CTFontCopyDefaultCascadeListForLanguages was introduced in macOS 10.8.
+   * On older systems fall back to the font's built-in cascade list attribute,
+   * which is language-agnostic but available since macOS 10.5. */
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
   fontset->cascade_list = CTFontCopyDefaultCascadeListForLanguages (pango_core_text_font_get_ctfont (best_font), language_pref_list);
+#else
+  fontset->cascade_list = (CFArrayRef) CTFontCopyAttribute (pango_core_text_font_get_ctfont (best_font),
+                                                            kCTFontCascadeListAttribute);
+  if (!fontset->cascade_list)
+    fontset->cascade_list = CFArrayCreate (kCFAllocatorDefault, NULL, 0, &kCFTypeArrayCallBacks);
+#endif
 
   if (language_pref_list)
     {
