On Jan 9, 2014, at 11:13 PM, Gary Bilkus <m...@gary.bilkus.com> wrote:

> Well, interestingly enough, the problem is not directly with the compiler 
> optimizer. It's with the configure test for strncasecmp. This test fails on 
> mingw in its current incarnation because guile uses a standard test for the 
> function, but on mingw strncasecmp is actually a cpp definition. As a result, 
> guile is compiled with #HAVE_STRNCASECMP unset, and so guile tries to create 
> its own version in read.c
> Now if you compile with no optimization, the compiler notices that read.c is 
> attempting to create this with a different signature and bombs out. However, 
> with optimisation on, the code compiles for some reason, and then fails to 
> run properly.
> 
> So there seem to be two problems: one in configure for guile and/or the 
> standard configure macros on mingw, the other in the compiler.
> Fortunately, there's a very easy although ugly workaround, which is to add an
> echo "#define HAVE_STRNCASECMP" >>config.h

Would adding -DHAVE_STRNCASECMP to $CFLAGS work? It's a bit cleaner than 
echoing a #define into the config header.
Better yet, sometimes there's a variable that can be defined on the configure 
command line -- perhaps $ac_have_strncasecmp -- to force configure to do the 
right thing.

> in install-impl.sh
> just after the guile configure and before the make
> 
> I've incorporated this fix into my downloadable file of fixes as referred to 
> on the wiki page I updated.
> More as and when I find any further issues. As always, feedback or other 
> experiences welcome.

Regards,
John Ralls


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to