Eric Sunshine wrote: > And, compilation warnings are not limited to old compilers. Even my > fully up-to-date FreeBSD 11.2 installation is not warning-free[1]. > > [1]: For instance: > utf8.c:486:28: warning: passing 'iconv_ibp *' (aka 'const char **') to parameter > of type 'char **' discards qualifiers in nested pointer types > [-Wincompatible-pointer-types-discards-qualifiers] Oh, good catch! POSIX documents iconv has having signature size_t iconv(iconv_t cd, char **restrict inbuf, size_t *restrict inbytesleft, char **restrict outbuf, size_t *restrict outbytesleft); The Makefile explains # Define OLD_ICONV if your library has an old iconv(), where the second # (input buffer pointer) parameter is declared with type (const char **). which is implemented as #if defined(OLD_ICONV) || (defined(__sun__) && !defined(_XPG6)) typedef const char * iconv_ibp; #else typedef char * iconv_ibp; #endif config.mak.uname contains ifeq ($(uname_S),FreeBSD) NEEDS_LIBICONV = YesPlease OLD_ICONV = YesPlease So it looks like FreeBSD has modernized and we need to make that conditional in config.mak.uname on $(uname_R). Do you know which version of FreeBSD changed the signature? Care to write a patch? Thanks, Jonathan