Building on Windows from scratch - guile problem SOLVED

Gary Bilkus mail at gary.bilkus.com
Fri Jan 10 02:13:53 EST 2014


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
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.
Gary

On 09/01/2014 16:49, Gary Bilkus wrote:
> Hmm,
>
> The problem appears to be with the compiler optimiser doing something too aggressive, If I manually recompile guile with -O0 instead of -O2 the problem seems to go away. This could be caused by one of the new optimisations in the more recent versions of gcc in which case it could start to matter on *nix at some point. Anyone know much about this?
>
>   
>   
> Gary
>   
> -----Original message-----
> From:Gary Bilkus <mail at gary.bilkus.com>
> Sent:Thu 09-01-2014 13:37
> Subject:Building on Windows from scratch - guile problem
> To:gnucash-devel at gnucash.org;
> I have done some testing of my build, and it appears there is some kind
> of problem with guile
>
> The symptom is that whenever I try to run a report, even hello world, it
> fails.
>
> Digging into things, it turns out that there is at least one problem
> with the guile build, whcih is that
> character constants like #\space are not being initialized correctly.
>
> Just running guile standalone shows the problem.
>
> guile> #\space
> \#nul
>
> So there's obviously some problem with the guile build over and above
> the library naming one I found earlier. Not sure if it's the version,
> the compiler version or what.
>
> Will investigate further, but any suggestions or experience from other
> would be welcome....
> Gary
>
>
>
>
> On 08/01/2014 15:07, Gary Bilkus wrote:
>> I have written up the procedure which as of today is working to build
>> gnucash 2.6 from scratch on windows and updated
>> http://wiki.gnucash.org/wiki/Windows/Development
>>
>> It would be really nice if the patch file I have created along with my
>> modified version of geert's vbs file could find their way into the
>> official repo.
>> It should be safe enough as all the changes are to the win32 directory
>> except for two, which I'm reasonably confident won't break anything else:
>> - configure.ac now deals with the -no-undefined flag more cleverly
>> - gnc-split-reg.h has a couple of #undef statements added to avoid
>> DELETE and DUPLICATE being defined in windows headers.
>>
>> It probably also makes sense for the page to be split up again, and
>> some of the older information moved away, but it would be good to get
>> some feedback from people who try following the instructions.
>>
>> I've done my best to ensure that there are no ambiguities or
>> misprints, and the entire process has worked for me, but feel free to
>> fix any errors, or tell me of any changes I can/should make to the zip
>> file I've published.
>>
>> Please note that I haven't extensively tested all the features of the
>> program. There could be some issues with the build which don't
>> immediately manifest themselves......but at least it runs.
>>
>> Also, I haven't yet tried packaging the app into an msi or installable
>> exe
>>
>> Gary
>> _______________________________________________
>> gnucash-devel mailing list
>> gnucash-devel at gnucash.org
>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel



More information about the gnucash-devel mailing list