GNOME Bugzilla – Bug 711235
Cannot cross-compile from Linux to Windows since the metadata commits
Last modified: 2013-11-01 01:26:39 UTC
Created attachment 258702 [details] Output of a verbose make Since the new metadata system, I have not been able to successfully compile GIMP master for Windows. Hence I can't test and fix anymore bugs for Windows. I wanted to check if drawoc was still able to compile the nigthbuilds, but his website is down; I was told on IRC he has material issues since before these commits. So I don't know if he has a solution to this. Anyway gexiv2 is now a dependency but it had no proper build system (autotools, cmake, etc.) so it made it very difficult to cross-compile. I have proposed them a patch with an autotools port: http://redmine.yorba.org/issues/7660 Once gexiv2 successfully installed, GIMP's configure ends well, but I have link issues. I spent quite a bit of time to try and understand and fix these but without much success. I git-bisected the exact issue start to commit 21bed1e2fb438fa5721bddb0573a724ae0024455 (basically the first metadata rewriting commit). Attached is the output of a `make V=1` error. Basically as can be easily seen, a -lgexiv2 is missing in the link process, hence the undefined references, even though it is present just before in the main libtool call! Note also the warning just before the failure: *** Warning: This system can not link to static lib archive /home/jehan/.local/share/crossroad/roads/w64/lib/libgexiv2.la. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have. A web search shows me that's apparently a common issue with MinGW. I found many people discussing this, like: http://mingw-users.1079350.n2.nabble.com/A-question-about-linking-td5887482.html But I could not understand how to fix this in our build system and how to pass the linking flag information up to this call that libtool does. I am somehow lost in autotools and libtool logics. Anyone could help? Thanks.
Why do you report this against GIMP and not against gexiv2?
Because I think that's a problem in our build system. That should work.
Oh sorry, I see you did :)
Ok after our discussion on IRC, I finally managed to generate the dll with gexiv2 and I could compile GIMP. I updated my patch on gexiv2 bugtracker. I'll close this ticket from our side. :-)
Oups wrong status. Changing as RESOLVED>NOTGNOME.
For future readers of this bug: The main problem here was that Jehan was compiling a static library version of gexiv2, and linking static versions of most libraries is not supported by GIMP. (That would leave the same symbols in multiple dynamic libraries that gimp builds, which is silly and dangerous.) If you get the above error message, check for libraries that you are compiling as static, and switch them to a dynamic build.