Vincent Lefevre <[email protected]> writes: > Under Debian/unstable, I've configured GMP with: > > ./configure --host=i686-w64-mingw32 --disable-shared --enable-assert > > but "make check LOG_COMPILER=wine" gives: > > FAIL: t-printf > ============== > > snprntffuns.c:79: GNU MP assertion failed: strlen (d->buf) == avail-1 > FAIL t-printf.exe (exit status: 3) > > The failing code is > > ret = vsnprintf (d->buf, avail, fmt, ap); > if (ret == -1) > { > ASSERT (strlen (d->buf) == avail-1); > ret = avail-1; > }
Does it make a difference if you add CPPFLAGS=-D__USE_MINGW_ANSI_STDIO to the configuration? > I don't understand the ASSERT. A return value of -1 means an output > error, so that you cannnot deduce anything about the contents stored > in d->buf. Non-standard versions of snprintf returned -1 for truncation (including old glibc, and likely windows libc too). And the way I read the ASSERT, it says that truncation is the only expected reason for vsnprintf to return -1. What was fmt? It would be helpful to understand the reason for the -1 return in the failing case. > /* Define to 1 if you have the `vsnprintf' function and it works properly. */ > #define HAVE_VSNPRINTF 1 I guess it's hard for configure to check for proper return value when cross compiling. Regards, /Niels -- Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677. Internet email is subject to wholesale government surveillance. _______________________________________________ gmp-bugs mailing list [email protected] https://gmplib.org/mailman/listinfo/gmp-bugs
