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 586934 - ia64 HP-UX 11.31 (and earlier) aCC cannot compile gtkmm
ia64 HP-UX 11.31 (and earlier) aCC cannot compile gtkmm
Status: RESOLVED FIXED
Product: gtkmm
Classification: Bindings
Component: build
unspecified
Other HP-UX
: Normal blocker
: ---
Assigned To: gtkmm-forge
gtkmm-forge
Depends on:
Blocks:
 
 
Reported: 2009-06-25 10:56 UTC by The Written Word
Modified: 2012-03-13 09:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
workaround - be explicit about which possibly overloaded function use. (1.62 KB, patch)
2011-07-28 02:54 UTC, The Written Word
none Details | Review

Description The Written Word 2009-06-25 10:56:45 UTC
gtkmm-2.10.11 was compilable with ia64 HP-UX 11.23 and 11.31, although I have never successfully compiled any releasa of gtkmm on a PA-RISC HP-UX box (11.00, 11.11, 11.23 or 11.31.

This part of gtkmm/treeview.h (around line 2385):

    //Some compilers (IRIX MipsPro) don't like us to give the pointer to a template function directly to sigc::ptr_fun():
    typedef void (*type_func)(const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&);
    type_func func = &(_auto_store_on_cellrenderer_text_edited_string<ColumnType>);
    sigc::slot<void, const Glib::ustring&, const Glib::ustring&, int, const Glib::RefPtr<Gtk::TreeModel>&> theslot  =
      sigc::ptr_fun(func);

causes the ia64 aCC on HP-UX 11.31 to barf thus:

"../../gtk/gtkmm/treeview.h", line 2385: error #2449: more than one instance
          of overloaded function
          "_auto_store_on_cellrenderer_text_edited_string" matches the
          required type
      type_func func = &(_auto_store_on_cellrenderer_text_edited_string<ColumnType>);
                       ^
          detected during:
            instantiation of "void
                      Gtk::TreeView_Private::_connect_auto_store_editable_signa
                      l_handler(Gtk::TreeView *, Gtk::CellRenderer *, const
                      Gtk::TreeModelColumn<ColumnType> &) [with
                      ColumnType=Glib::ustring]" at line 2088
            instantiation of "int Gtk::TreeView::append_column_editable(const
                      Glib::ustring &, const Gtk::TreeModelColumn<ColumnType>
                      &) [with ColumnType=Glib::ustring]" at line 64 of
                      "listviewtext.cc"
Comment 1 The Written Word 2009-06-25 11:03:10 UTC
the irix 6.5 C++ compiler also chokes on the same line of code:

cc-1428 CC: ERROR File = ../../gtk/gtkmm/treeview.h, Line = 2385
  More than one instance of overloaded function
          "_auto_store_on_cellrenderer_text_edited_string" matches the
          required type.

      type_func func = &(_auto_store_on_cellrenderer_text_edited_string<ColumnType>);
                       ^
          A template was detected during header processing.
            instantiation of "void
                      Gtk::TreeView_Private::_connect_auto_store_editable_signa
                      l_handler(Gtk::TreeView *, Gtk::CellRenderer *, const
                      Gtk::TreeModelColumn<Glib::ustring> &)" at line 2088
            instantiation of "int Gtk::TreeView::append_column_editable(const
                      Glib::ustring &, const
                      Gtk::TreeModelColumn<Glib::ustring> &)" at line 64 of
                      "listviewtext.cc"
Comment 2 Murray Cumming 2009-06-30 15:06:19 UTC
I can't guess what the problem might be. It's really hard to fix these things without access to the compiler.
Comment 3 The Written Word 2009-07-01 14:01:53 UTC
(In reply to comment #2)
> I can't guess what the problem might be. It's really hard to fix these things
> without access to the compiler.

Agreed.  I can probably arrange to have a temporary account set up for you on the relevant machines, or if you'd prefer I'll happily run any test code, or apply any patches you suggest and report back with the results.
Comment 4 The Written Word 2011-07-28 02:54:35 UTC
Created attachment 192789 [details] [review]
workaround - be explicit about which possibly overloaded function use.

We encountered this problem again when looking at gtkmm-2.22.0, this patch appears to solve the compiler error.
Comment 5 Murray Cumming 2012-03-13 09:25:01 UTC
I pushed this in this commit:
http://git.gnome.org/browse/gtkmm/commit/?id=c5dd88f3d06173caeb34ede5e6a691aa5ae16219