[GNC] Fail to build gnucash on MINGW32, gwenhywfar compile error

Hai Liang Wang hailiang.hl.wang at gmail.com
Mon Aug 12 06:42:22 EDT 2024


Still no luck, I believe this is related with gcc on MINGW i686 arch.
Some mistery about `__attribute__((stdcall))` -
https://github.com/msys2/MINGW-packages/issues/6481

Hope more help, thanks.

Cheers.
Hai Liang W.


On Mon, Aug 12, 2024 at 2:27 PM Hai Liang Wang <hailiang.hl.wang at gmail.com>
wrote:

>
> The compiler fails, due to the type of the second argument, which here
> attached `__attribute__((stdcall))`.
> Where does this prefix come from? Is it only for building on i686 machine?
>
> *I wonder which msys2 arch is used for the nightly build  job of windows?*
> i686 or x86_64, is the CI Job script available?
> https://code.gnucash.org/builds/win32/stable/
>
>
> Cheers.
> Hai Liang W.
>
>
> On Mon, Aug 12, 2024 at 2:09 PM Hai Liang Wang <hailiang.hl.wang at gmail.com>
> wrote:
>
>> John,
>>
>> Thanks for your quick response, it's not the same root cause.
>> I can not find the *cardsdialog.c,* *provider_request.c* as you
>> mentioned.
>>
>> The problem also exist on a previous version of gnucash modules, which
>> references gwenhywfar-5.10.2.tar.gz.
>>
>> https://github.com/Gnucash/gnucash-on-windows/blob/e9edf33a2dcd4cb03c6dc49730595d0e07c294d2/gnucash.modules
>>
>> As I rollback gnucash module as running build against it.
>> Same error happens on my machine.
>>
>> C:/gcdev64/gnucash/stable/src/gwenhywfar-5.10.2/tools/gcttool/main.c: In
>> function 'main':
>> C:/gcdev64/gnucash/stable/src/
>> *gwenhywfar-5.10.2/tools/gcttool/main.c:182:45*: error: passing argument
>> 2 of 'GWEN_Gui_SetKeyDataFromTextOpen
>> SslFn' from incompatible pointer type [-Wincompatible-pointer-types]
>>   182 |   GWEN_Gui_SetKeyDataFromTextOpenSslFn(gui,
>> getKeyDataFromTextOpenSSL);
>>       |
>>  ^~~~~~~~~~~~~~~~~~~~~~~~~
>>       |                                             |
>>       |                                             int (*)(GWEN_GUI *,
>> const char *, unsigned char *, unsigned int)
>> In file included from
>> C:/gcdev64/gnucash/stable/src/gwenhywfar-5.10.2/tools/gcttool/main.c:37:
>> ../../gwenhywfar5/gwenhywfar/gui_be.h:297:110: note: expected
>> 'GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN' {aka 'int (__attribute__((stdcall)) *)
>> (GWEN_GUI *, const char *, unsigned char *, unsigned int)'} but argument
>> is of type 'int (*)(GWEN_GUI *, const char *, unsigned char *, un
>> signed int)'
>>   297 |
>>         GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN f);
>>       |
>>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
>> make[3]: *** [Makefile:653: main.o] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>>
>> Note, this time, I switch to mingw64.exe,  my mingw64 is based
>> on msys2-base-i686,
>>
>> Cheers.
>> Hai Liang W.
>>
>>
>> On Mon, Aug 12, 2024 at 12:57 PM John Ralls <jralls at ceridwen.us> wrote:
>>
>>> That’s https://aquamaniac.de/rdm/issues/306. Apply this patch:
>>>
>>>
>>> --- a/src/libs/plugins/backends/aqgivve/cardsdialog.c 2024-04-28
>>> 06:54:15.000000000 -0700
>>> +++ b/src/libs/plugins/backends/aqgivve/cardsdialog.c 2024-06-22
>>> 14:32:30.624058500 -0700
>>> @ -57,7 +57,7 @
>>>
>>> -void _freeData(void *bp, void *p)
>>> +void GWENHYWFAR_CB _freeData(void *bp, void *p) {
>>> AG_CARDS_DIALOG *xdlg;
>>>
>>> @ -88,7 +88,7 @
>>>
>>> -int _dlgSignalHandler(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const
>>> char *sender)
>>> +int GWENHYWFAR_CB _dlgSignalHandler(GWEN_DIALOG *dlg,
>>> GWEN_DIALOG_EVENTTYPE t, const char *sender) {
>>> switch (t) {
>>> case GWEN_DialogEvent_TypeInit :
>>>
>>> --- a/src/libs/plugins/backends/aqgivve/provider_request.c 2024-03-19
>>> 14:48:38.000000000 -0700
>>> +++ b/src/libs/plugins/backends/aqgivve/provider_request.c 2024-06-22
>>> 14:34:01.041737100 -0700
>>> @ -48,14 +48,14 @
>>>
>>> -void _freeData(void *bp, void *p)
>>> +void GWENHYWFAR_CB _freeData(void *bp, void *p) {
>>> free(p);
>>> }
>>>
>>> -int _cbInitSyncIo(GWEN_HTTP_SESSION *sess, GWEN_SYNCIO *sio)
>>> +int GWENHYWFAR_CB _cbInitSyncIo(GWEN_HTTP_SESSION *sess, GWEN_SYNCIO
>>> *sio) {
>>> AG_HTTP_SESSION_HEADER *xsess;
>>>
>>> --- a/src/libs/plugins/backends/aqgivve/userdialog.c 2024-01-07
>>> 11:29:43.000000000 -0800
>>> +++ b/src/libs/plugins/backends/aqgivve/userdialog.c 2024-06-22
>>> 14:35:30.632390300 -0700
>>> @ -42,7 +42,7 @
>>>
>>> -void _freeData(void *bp, void *p)
>>> +void GWENHYWFAR_CB _freeData(void *bp, void *p) {
>>> }
>>>
>>> @ -98,7 +98,7 @
>>>
>>> -int _dlgSignalHandler(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const
>>> char *sender)
>>> +int GWENHYWFAR_CB _dlgSignalHandler(GWEN_DIALOG *dlg,
>>> GWEN_DIALOG_EVENTTYPE t, const char *sender) {
>>> switch (t) {
>>> case GWEN_DialogEvent_TypeInit :
>>>
>>> Regards,
>>>
>>> John Ralls
>>>
>>>
>>>
>>> On Aug 11, 2024, at 20:04, Hai Liang Wang <hailiang.hl.wang at gmail.com>
>>> wrote:
>>>
>>> Hi, folks
>>>
>>> After reading guide with
>>> https://wiki.gnucash.org/wiki/Building_on_Windows,
>>> I setup MINGW32 on my windows to build gnuash from sourcecodes.
>>>
>>> *Command I use to build binary installer.*
>>>
>>> cd /c/gcdev64/src/gnucash-on-windows.git
>>>
>>> TARGET=gnucash-stable jhbuild -f jhbuildrc build --nodeps
>>>
>>> *Come to below error:*
>>>
>>> C:/gcdev64/gnucash/stable/src/gwenhywfar-5.11.2beta/tools/gcttool/main.c:
>>> In function 'main':
>>>
>>> *C:/gcdev64/gnucash/stable/src/gwenhywfar-5.11.2beta/tools/gcttool/main.c:182:45:
>>> error: passing argument 2 of 'GWEN_Gui_SetKeyDataFromTextOpenSslFn' from
>>> incompatible pointer type [-Wincompatible-pointer-types]*
>>> *  182 |   GWEN_Gui_SetKeyDataFromTextOpenSslFn(gui,
>>> getKeyDataFromTextOpenSSL);*
>>> *      |
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~*
>>> *      |                                             |*
>>> *      |                                             int (*)(GWEN_GUI *,
>>> const char *, unsigned char *, unsigned int)*
>>> *In file included from
>>>
>>> C:/gcdev64/gnucash/stable/src/gwenhywfar-5.11.2beta/tools/gcttool/main.c:37:*
>>> *../../gwenhywfar5/gwenhywfar/gui_be.h:297:110: note: expected
>>> 'GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN' {aka 'int (__attribute__((stdcall))
>>> *)(GWEN_GUI *, const char *, unsigned char *, unsigned int)'} but
>>> argument
>>> is of type 'int (*)(GWEN_GUI *, const char *, unsigned char *, unsigned
>>> int)'*
>>> *  297 |
>>>      GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN f);*
>>> *      |
>>>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*
>>> *make[3]: *** [Makefile:653: main.o] Error 1*
>>> make[3]: *** Waiting for unfinished jobs....
>>> libtool: link: gcc -g -O2 -Wall -Wall -Wall -o .libs/cttest.exe cttest.o
>>> -L/c/gcdev64/gnucash/stable/inst/lib -L/c/gcdev64/msys2/mingw32/lib
>>> -L/usr/lib ../../src/.libs/libgwenhywfar.dll.a -L/mingw32/lib -lgpg-error
>>> -lgcrypt -lgnutls -lwsock32 -lintl -liconv -pthread
>>> -L/c/gcdev64/gnucash/stable/inst/lib
>>> make[3]: Leaving directory
>>> '/c/gcdev64/gnucash/stable/build/gwenhywfar-5.11.2beta/tools/gcttool'
>>> make[2]: *** [Makefile:524: all-recursive] Error 1
>>> make[2]: Leaving directory
>>> '/c/gcdev64/gnucash/stable/build/gwenhywfar-5.11.2beta/tools'
>>> make[1]: *** [Makefile:793: all-recursive] Error 1
>>> make[1]: Leaving directory
>>> '/c/gcdev64/gnucash/stable/build/gwenhywfar-5.11.2beta'
>>> make: *** [Makefile:613: all] Error 2
>>> *** Error during phase build of gwenhywfar: ########## Error running make
>>> -j 17  *** [3/14]
>>>
>>>  [1] Rerun phase build
>>>  [2] Ignore error and continue to install
>>>  [3] Give up on module
>>>
>>> *Environtment,* check out mingw32.package-installed.txt
>>>
>>> Pls help, thanks.
>>>
>>>
>>> Cheers.
>>> Hai Liang W.
>>> <mingw32.package-installed.txt>
>>> _______________________________________________
>>> gnucash-user mailing list
>>> gnucash-user at gnucash.org
>>> To update your subscription preferences or to unsubscribe:
>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>> -----
>>> Please remember to CC this list on all your replies.
>>> You can do this by using Reply-To-List or Reply-All.
>>>
>>>
>>>


More information about the gnucash-user mailing list