linking problem on i386 vs amd64
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.
/usr/include/
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/
00266190 g DF .text 00000014 Base Gtk::TreeModelC
00266170 g DF .text 00000014 Base Gtk::TreeModelC
# amd64
$ objdump -C -T /usr/lib/
00000000003373a0 g DF .text 000000000000000b Base Gtk::TreeModelC
0000000000337390 g DF .text 000000000000000b Base Gtk::TreeModelC
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 Column< int>::TreeModel Column( )': cc:(.text. _ZN3Gtk15TreeMo delColumnIiEC1E v[Gtk:: TreeModelColumn <int>:: TreeModelColumn ()]+0x16) : undefined reference to `Gtk::TreeModel ColumnBase: :TreeModelColum nBase(unsigned int)'
...
$ g++ $(pkg-config --cflags --libs gtkmm-2.4) -o busted busted.cc
/tmp/ccfi8DzU.o: In function `Gtk::TreeModel
busted.
collect2: ld returned 1 exit status