} // extern "C"
+// Special hack for Cygwin: its headers reference this variable which is
+// normally defined in Cygwin-specific gdiplus.lib but as we don't link with it
+// and load gdiplus.dll dynamically, it's not defined in our case resulting in
+// linking errors -- so just provide it ourselves, it doesn't matter where it
+// is and if Cygwin headers are modified to not use it in the future, it's not
+// a big deal neither, we'll just have an unused pointer.
+#ifdef __CYGWIN__
+extern "C" void *_GdipStringFormatCachedGenericTypographic = NULL;
+#endif // __CYGWIN__
+
// ============================================================================
// wxGdiPlus helper class
// ============================================================================