linking problem on i386 vs amd64

Bug #121461 reported by Kees Cook
6
Affects Status Importance Assigned to Milestone
glib2.0 (Ubuntu)
Fix Released
High
Unassigned
Gutsy
Fix Released
High
Unassigned
gtkmm2.4 (Ubuntu)
Gutsy
Fix Released
Undecided
Unassigned

Bug Description

There appears to be a problem with libgtkmm2.4 on i386 -- when linking inkscape, we see:

libinkpre.a(event-log.o): In function `TreeModelColumn':
/usr/include/gtkmm-2.4/gtkmm/treemodelcolumn.h:140: undefined reference to `Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned int)'

For whatever reason, on i386, the linker expects to link against "unsigned int", but on both i386 and amd64, the libgtkmm-2.4 libraries only offer an "unsigned long" version:

# i386
$ objdump -C -T /usr/lib/libgtkmm-2.4.so.1 | grep "Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned"
00266190 g DF .text 00000014 Base Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned long)
00266170 g DF .text 00000014 Base Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned long)

# amd64
$ objdump -C -T /usr/lib/libgtkmm-2.4.so.1 | grep "Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned"
00000000003373a0 g DF .text 000000000000000b Base Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned long)
0000000000337390 g DF .text 000000000000000b Base Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned long)

Related branches

Revision history for this message
Kees Cook (kees) wrote :

Attached is a mini-example. This works on amd64 and i386 on feisty, but not with the recent libgtkmm2.4 upload, and is blocking the inkscape merge.

$ sudo apt-get install libgtkmm-2.4-dev
...
$ g++ $(pkg-config --cflags --libs gtkmm-2.4) -o busted busted.cc
/tmp/ccfi8DzU.o: In function `Gtk::TreeModelColumn<int>::TreeModelColumn()':
busted.cc:(.text._ZN3Gtk15TreeModelColumnIiEC1Ev[Gtk::TreeModelColumn<int>::TreeModelColumn()]+0x16): undefined reference to `Gtk::TreeModelColumnBase::TreeModelColumnBase(unsigned int)'
collect2: ld returned 1 exit status

Changed in gtkmm2.4:
importance: Undecided → High
status: Unconfirmed → Confirmed
Revision history for this message
Daniel Holbach (dholbach) wrote :

This seems to work on amd64 just fine.

Revision history for this message
Kees Cook (kees) wrote :

Right, sorry, I wasn't very clear: linking works on amd64, but not i386.

Revision history for this message
Murray Cumming (murrayc) wrote :

The most recent unstable glib release has broken ABI by (mistakenly, I think) changing the typedef of GType:
http://svn.gnome.org/viewcvs/glib/trunk/gobject/gtype.h?r1=5497&r2=5560

I've sent email to gtk-list.

glib should be reverted until this is fixed, in my opinion.

Revision history for this message
Daniel Holbach (dholbach) wrote :
Revision history for this message
Sebastien Bacher (seb128) wrote :

glib2.0 (2.13.5-0ubuntu2) gutsy; urgency=low

  * debian/patches/90_from_svn_no_abi_change.patch:
    - patch from SVN, fix abi change (LP: #121461)

 -- Sebastien Bacher <email address hidden> Fri, 22 Jun 2007 11:48:59 +0200

Changed in glib2.0:
status: Confirmed → Fix Released
Revision history for this message
Gonzhauser (gonzhauser) wrote :

Now libgtkmm-2.4-1c2a is broken since it is still built with "unsigned int".

Building the gtmm hello world results in:

/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/libgtkmm-2.4.so: undefined reference to `Glib::ValueBase::init(unsigned int)'

Revision history for this message
Gonzhauser (gonzhauser) wrote :

libglademm-2.4-dev has to be rebuilt too.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Is this still a problem?

Changed in gtkmm2.4:
status: New → Incomplete
Revision history for this message
Kees Cook (kees) wrote :

As far as I can tell, this is solved. (Strange that the gtkmm2.4 task stuck around... I would have expected it to vanish when I originally changed the Package to "glib2.0" where the actual problem was. Is this a Malone bug?)

Changed in gtkmm2.4:
status: Incomplete → Fix Released
Revision history for this message
Gonzhauser (gonzhauser) wrote :

I just had to rebuild packages from Ubuntu source with the new glib2.0.
The new gtkmm2.4 was still built with the old glib2.0.
Maybe a dependency issue?

Revision history for this message
Daniel Holbach (dholbach) wrote :

No, it should be fixed in the archive now.

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.