After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 711235 - Cannot cross-compile from Linux to Windows since the metadata commits
Cannot cross-compile from Linux to Windows since the metadata commits
Status: RESOLVED NOTGNOME
Product: GIMP
Classification: Other
Component: General
git master
Other Windows
: Normal normal
: ---
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2013-10-31 22:43 UTC by Jehan
Modified: 2013-11-01 01:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Output of a verbose make (18.54 KB, text/plain)
2013-10-31 22:43 UTC, Jehan
Details

Description Jehan 2013-10-31 22:43:04 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.
Comment 1 Michael Natterer 2013-10-31 22:50:48 UTC
Why do you report this against GIMP and not against gexiv2?
Comment 2 Jehan 2013-10-31 22:52:01 UTC
Because I think that's a problem in our build system. That should work.
Comment 3 Michael Natterer 2013-10-31 22:54:13 UTC
Oh sorry, I see you did :)
Comment 4 Jehan 2013-11-01 00:32:29 UTC
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. :-)
Comment 5 Jehan 2013-11-01 00:33:01 UTC
Oups wrong status. Changing as RESOLVED>NOTGNOME.
Comment 6 Mike Henning (drawoc) 2013-11-01 01:26:39 UTC
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.