[GNC] Fail to build gnucash on MINGW32, gwenhywfar compile error
Hai Liang Wang
hailiang.hl.wang at gmail.com
Mon Aug 12 02:27:14 EDT 2024
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