diff -up a/src/chartype.h b/src/chartype.h
--- a/src/chartype.h	2022-06-11 09:57:59.000000000 +0200
+++ b/src/chartype.h	2023-01-20 21:42:39.530718100 +0100
@@ -51,7 +51,7 @@
 /* Oh for a <uchar.h> with char32_t and __STDC_UTF_32__ in it...
  * ref: ISO/IEC DTR 19769
  */
-#if WCHAR_MAX < INT32_MAX
+#if WCHAR_MAX < INT32_MAX && !defined(__CYGWIN__)
 #warning Build environment does not support non-BMP characters
 #endif
 
diff -up a/src/editline/readline.h b/src/editline/readline.h
--- a/src/editline/readline.h	2022-06-11 09:57:59.000000000 +0200
+++ b/src/editline/readline.h	2023-01-20 21:42:50.567947600 +0100
@@ -77,7 +77,7 @@ typedef KEYMAP_ENTRY *Keymap;
 
 #ifndef CTRL
 #include <sys/ioctl.h>
-#if !defined(__sun) && !defined(__hpux) && !defined(_AIX)
+#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__CYGWIN__)
 #include <sys/ttydefaults.h>
 #endif
 #ifndef CTRL
diff -up a/src/sys.h b/src/sys.h
--- a/src/sys.h	2022-10-30 06:35:40.000000000 +0100
+++ b/src/sys.h	2023-01-20 21:43:19.440199500 +0100
@@ -63,7 +63,11 @@
 #endif
 
 /* If your compiler does not support this, define it to be empty. */
+#ifdef __CYGWIN__
+#define libedit_private
+#else
 #define libedit_private __attribute__((__visibility__("hidden")))
+#endif
 
 #ifndef __arraycount
 # define __arraycount(a) (sizeof(a) / sizeof(*(a)))
