Port devlibs-gtk3 to GCC 4.8

Bug #1252152 reported by jazzynico
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape Devlibs
Fix Released
Low
jazzynico

Bug Description

Update devlibs-gtk3 and the Inkscape code so that it works with TDM-GCC 4.8.

1. Update the devlibs-gtk3 branch with the latest Opensuse 13.1 cross-platform libs (done revision 16 and 17).
2. Update the specific build.xml files (build.xml.gtk2 and build.xml.gtk3) with the latest changes in the Inkscape trunk (done revision 18).
3. Modify the Inkscape code to get rid of compiler errors.

Tags: gtk3 win32
jazzynico (jazzynico)
tags: added: gtk3 win32
Changed in inkscape-devlibs:
assignee: nobody → jazzynico (jazzynico)
importance: Undecided → Low
status: New → In Progress
Revision history for this message
jazzynico (jazzynico) wrote :

List of remaining errors attached.

Note that I have disabled some warning (with -Wno-unused-local-typedefs) to get rid of Boost warnings (see http://boost.2283326.n4.nabble.com/lots-of-warning-with-gcc-4-8-1-boost-1-54-0-td4649270.html).

Revision history for this message
jazzynico (jazzynico) wrote :

Removing devlibs' pthread.h seems to fix most issues (thanks for the tip, Johan). Remaining errors attached.

Revision history for this message
jazzynico (jazzynico) wrote :

> src/ui/dialog/filedialogimpl-win32.h:17:1: error: expected unqualified-id before '<<' token
 <<<<<<< TREE

Fixed. Conflict in my local branch...

Revision history for this message
jazzynico (jazzynico) wrote :

The other errors are due to an incorrect condition in src/ui/dialog/filedialogimpl-win32.h:

#if WITH_GLIBMM_2_32
#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H
# include <glibmm/threads.h>
#endif

#endif

Removing #if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H solved the compilation issue (glibmm/threads.h was not included).

Revision history for this message
jazzynico (jazzynico) wrote :

Now stuck with a link error (very similar to http://sourceforge.net/mailarchive/forum.php?set=custom&viewmonth=&viewday=&forum_name=inkscape-devel&style=nested&max_rows=75&submit=Change+View):

Make error line 447: LINK problem: mingw32-g++: error: CreateProcess: No such file or directory

Very annoying...

Revision history for this message
jazzynico (jazzynico) wrote :

Shortening the devlibs path fixed the LINK problem (command line limit issue).

Next issue:
---
Make error line 447: LINK problem: build\obj\libuemf\uemf_utf.o:uemf_utf.c:(.text+0x263): undefined
reference to `iconv_open'
build\obj\libuemf\uemf_utf.o:uemf_utf.c:(.text+0x28d): undefined reference to `iconv'
build\obj\libuemf\uemf_utf.o:uemf_utf.c:(.text+0x297): undefined reference to `iconv_close'
build\obj\libuemf\uemf_utf.o:uemf_utf.c:(.text+0x38c): undefined reference to `iconv_open'
---

It's not a surprise because I still use a libiconv version compiled with GCC-4.7. Work in progress...

Revision history for this message
jazzynico (jazzynico) wrote :

Good progress. Now with libiconv compiled with 4.8.1, Inkscape links as expected.
But (yes there's still a but...) now, when launching Inkscape, I get the following console message:

---
** (inkscape.exe:204): WARNING **: SPObject::updateDisplay(SPCtx *ctx, unsigned int flags) : throw in ((SPObjectClass *) G_OBJECT_GET_CLASS(this))->update(this, ctx, flags);
... (last line repeated many times) ...
** (inkscape.exe:204): WARNING **: SPObject::updateDisplay(SPCtx *ctx, unsigned int flags) : throw in ((SPObjectClass *) G_OBJECT_GET_CLASS(this))->update(this, ctx, flags);
terminate called after throwing an instance of 'Geom::ContinuityError'
  what(): lib2geom exception: Non-contiguous path (src/2geom/path.cpp:355)
----

Revision history for this message
insaner (insaner) wrote :

hi jazzynico, did you see bug# 1251951 ?

that might be the exact same problem I had, and my workaround is to run ./configure like this:

./configure LIBS="-liconv"

no idea how to fix it permanently

Revision history for this message
Johan Engelen (johanengelen) wrote :

Open up your branch Jazz! Can't help you otherwise...

Revision history for this message
jazzynico (jazzynico) wrote :

> Open up your branch Jazz! Can't help you otherwise...

Sorry, I thought it was already open...
Owner now set to inkscape.dev.

Revision history for this message
Johan Engelen (johanengelen) wrote :

If you comment out the exception throwing line src/2geom/path.cpp:355, Inkscape starts. But it is apparent there are a bunch of problems left. (also notice the cmdline output)

Revision history for this message
Johan Engelen (johanengelen) wrote :

I fixed the cause for the crash in r12822. And actually now, everything seems to work!!!

Revision history for this message
Johan Engelen (johanengelen) wrote :

Thanks so much for your hard work Nicolas!!!

Revision history for this message
jazzynico (jazzynico) wrote :

@insaner - Yes I saw your issue, but it's not the same bug. The one that hit the devlibs was due GCC versions (I tried to compile Inkscape with GCC 4.8.1 using a libiconv dll compiled with GCC 4.7). Recompiling libiconv with GCC 4.8.1 fixed the issue.

Revision history for this message
jazzynico (jazzynico) wrote :

2geom bug fixed by Johan in the Inkscape trunk, revision 12822.

The devlibs-gtk3 r27 now compile, link and run (except known bugs) as expected with TDM-GCC-4.8.1.

Changed in inkscape-devlibs:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.