swami / libinstpatch

Instrument file software library.
Other
20 stars 6 forks source link

g_list_free_full unresolved extern symbol #15

Closed MaKiPL closed 5 years ago

MaKiPL commented 5 years ago

Whilst trying to build the libinstpatch for x64 a LNK2019 error happens. symbol g_list_free_full called in function ipatch_glist_unref_free I'm having GLIB 2.26 AMD64- those are the latest available on GTK+ ftp for x64 windows What should I do?

derselbst commented 5 years ago

Yes, I just came over this issue when setting up CI builds yesterday:

https://dev.azure.com/tommbrt/tommbrt/_build/results?buildId=78&view=logs

Looking into it again, it seems that g_list_free_full() was introduced in 2.28, so your version of glib is too old. Unfortunately there don't seem to be any newer prebuilt win64 binaries out there.

@jjceresa I guess you used glib 2.28 for x86 when building libinstpatch?

derselbst commented 5 years ago

... should be fixed now. Feel free to close if so.

MaKiPL commented 5 years ago

Confirmed- compiles successfully. Thank you!

jjceresa commented 5 years ago

@jjceresa I guess you used glib 2.28 for x86 when building libinstpatch?

Yes, 2.28.8 (which is also the version used by fluidsynth ).

Looking into it again, it seems that g_list_free_full() was introduced in 2.28

It seems this is true, that means that libinstpatch/CMakeLists doesn't check properly the version ? Actually it checks only glib-2.0>=2.12: pkg_check_modules ( GOBJECT REQUIRED gobject-2.0>=2.12 glib-2.0>=2.12 gthread-2.0>=2.12 ) If needed. I suggest to fix this >=2.28 for all three ?. Please, confirm, than i will do that in next PR.

@MaKiPL, please which glib version have you used ?

MaKiPL commented 5 years ago

I used the only available for x64 version 2.26. Fortunately latest fix solved the issues.

derselbst commented 5 years ago

@jjceresa We cannot require >= 2.28 because the latest version available for win64 is 2.26. I've duplicated the implementation of g_list_free_full() in deed052c82e854e7086662b14cc82f6fd7d00aff which is trivial and avoids to bump glib minimum required version.

jjceresa commented 5 years ago

OK. thanks.