RESULT! (was: Re: Building on Windows from scratch - follow up)

John Ralls jralls at ceridwen.us
Fri May 2 17:55:42 EDT 2014


On May 2, 2014, at 1:28 PM, Geert Janssens <janssens-geert at telenet.be> wrote:

> On Friday 02 May 2014 11:06:14 John Ralls wrote:
> > The HH installation check is still failing for me, as is the
> > installation. I ran it by hand and got it to install in c:\gcdev, but
> > the check fails anyway:
> > 
> I suspect it will fail because the html help install step runs pexports and dlltool on the htmlhelp dlls to export the library's symbols.
>  
> > ############################################################
> > ###  HTML Help Workshop
> > ############################################################
> > !!! Attention !!!
> > !!! This is the only installation step that requires your direct input
> > !!! !!! When asked for an installation path, specify c:\gcdev\hh !!!
> > ./install-impl.sh: line 1142: /c/gcdev/downloads/htmlhelp.exe: Bad
> > file number
> This is odd. 'What does Bad file number' mean exactly ?
>  
> At this point install.sh has determined htmlhelp is not installed properly and tries to install it. In order to do so it attempts to download the hh installer file from the net and then simply run that file. An attempt to run that file results in the error "Bad file number".
>  
> Is htmlhelp.exe really available in /c/gcdev/downloads ? Or is this a corrupt download perhaps ?

It’s there, and it runs fine from cmd.exe. It errors out only in the MSys shell.

>  
> > 
> > Doing this
> > --- a/install-impl.sh
> > +++ b/install-impl.sh
> > @@ -1131,7 +1131,7 @@ function inst_hh() {
> >      add_to_env -I$_HH_UDIR/include HH_CPPFLAGS
> >      add_to_env -L$_HH_UDIR/lib HH_LDFLAGS
> >      add_to_env $_HH_UDIR PATH
> > -    if quiet test_for_hh
> > +    if test_for_hh
> >      then
> >          echo "html help workshop already installed in $_HH_UDIR. 
> > skipping.”
> > 
> > So that the test errors show up produces this result:
> > 
> > Warning: .drectve `-defaultlib:uuid.lib ' unrecognized
> > Warning: .drectve `-defaultlib:uuid.lib ' unrecognized
> > Cannot export ??_C at _00A@?$AA@: symbol not found
> > Cannot export ?pHtmlHelpA@@3P6GPAUHWND__@@PAU1 at PBDIK@ZA: symbol not
> > found Cannot export ?pHtmlHelpW@@3P6GPAUHWND__@@PAU1 at PBGIK@ZA: symbol
> > not found collect2.exe: error: ld returned 1 exit status
> > !
> > 
> If htmlhelp is not installed het HH_DIR and pexports/dlltool hasn't run on it, this is normal IMO. The linker can't link the test because libhtmlhelp is not found. That's a valid test to check if htmlhelp is installed correctly.

OK. Hand-applying pexports and dlltool seems to have fixed the problem.

>  
> > If I change that “test_for_hh” to [ -z “" ]
> > 
> This bypasses the htmlhelp installation altogether.

Yes, that’s the point.

>  
> > then I get the dreaded unrecognized “l” format error,
> What is the dreaded unrecognized "l" format error ? I have never seen it on my WinXP test system. In which step do you get this ?

It’s that the ancient msvcrt.dll used by MinGW doesn’t know about %lld for printing or scanning int64s. Back before Microsoft accepted the c99 standard (around 2006, IIRC) their printf() required using %I64d instead, and threw a "unknown conversion type character 'l' in format [-Wformat]” warning. The msvcrt.dll in MinGW is that old. There are a couple of workarounds, and -D__USE_MINGW_ANSI_STDIO is one of them.

>  
> > but copying
> > EXTRA_CFLAGS=" -Wall -Werror -fno-builtin-dgettext
> > -fno-builtin-towupper -fno-builtin-iswlower -ggdb3
> > -D__USE_MINGW_ANSI_STDIO” from my c:\soft custom.sh fixes that and
> > everything builds.
>  
> At this point the "Bad file number" error seems to be the core of the whole issue. I'm not seeing this on my system.
>  
> I won't have time to look at the details this weekend but will revisit this somewhere next week.

OK. I’m on travel next week. 
It may be significant that I’m using Win7 Pro 64 in a VMWare Fusion VM on OSX 10.9.

Regards,
John Ralls




More information about the gnucash-devel mailing list