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 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 -#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) +#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__CYGWIN__) #include #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)))