With format string strictness, High Sierra also enforces that %n isn't used in dynamic format strings, but we should just disable its use on darwin in general. --- lib/vasnprintf.c.orig 2017-06-22 15:19:15.000000000 -0700 +++ lib/vasnprintf.c 2017-06-22 15:20:20.000000000 -0700 @@ -4869,7 +4869,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * #endif *fbp = dp->conversion; #if USE_SNPRINTF -# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) +# if !defined(__APPLE__) && !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) fbp[1] = '%'; fbp[2] = 'n'; fbp[3] = '\0';