On Tue, Nov 17, 2020 at 6:51 AM Kjell Ahlstedt <kjellahlst...@gmail.com> wrote:
> wrap_init.cc contains the following lines: > #undef G_GNUC_CONST > #define G_GNUC_CONST /* empty */ > Oh, right. I see this in Fedora's rpm debug source. I also see the calls to Gtk::TextView::get_type in the debug source. However, when I objdump -C -S /usr/lib64/libgtkmm-3.0.so.1.1.0 I see the calls are definitely not made from Gtk::wrap_init (I've included a snippet of the end of the objdump below. I split the TVDerived class into a separate source and header file and made an init() function that calls TVDerived::get_type(), undef'd G_GNU_CONST and compiled it to a shared library... but actually the undef is working; when undef'd the get_type() call is made and the gtkmm type gets printed out. If I don't undef then the get_type call is not made and only GtkTextView gets printed. So... I guess this isn't a simple problem to verify the root cause. I think I'll need to build gtkmm from source, capture the exact compiler and linker parameters etc... I'll try this weekend. objdump output, the tail end of Gtk::wrap_init has the last wrap_register, but no e.g. jmpq 60e0 <Gtk::TextView::get_type()@plt>: Glib::wrap_register(gtk_window_group_get_type(), &WindowGroup_Class::wrap_new); 32d1d1: e8 9a cd ed ff callq 209f70 <gtk_window_group_get_type@plt> 32d1d6: 48 8b 35 1b 7e 11 00 mov 0x117e1b(%rip),%rsi # 444ff8 <Gtk::WindowGroup_Class::wrap_new(_GObject*)@@Base+0x13b0c8> VolumeButton::get_type(); Widget::get_type(); Window::get_type(); WindowGroup::get_type(); } // wrap_init() 32d1dd: 48 83 c4 08 add $0x8,%rsp Glib::wrap_register(gtk_window_group_get_type(), &WindowGroup_Class::wrap_new); 32d1e1: 48 89 c7 mov %rax,%rdi 32d1e4: e9 a7 75 ee ff jmpq 214790 <Glib::wrap_register(unsigned long, Glib::ObjectBase* (*)(_GObject*))@plt> 32d1e9: 90 nop 32d1ea: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 000000000032d1f0 <Gtk::AccelKey::AccelKey(Glib::ustring const&, Glib::ustring const&)@@Base>: AccelKey::AccelKey(const Glib::ustring& accelerator, const Glib::ustring& accel_path) 32d1f0: 41 55 push %r13 : path_(accel_path) 32d1f2: 4c 8d 6f 08 lea 0x8(%rdi),%r13 AccelKey::AccelKey(const Glib::ustring& accelerator, const Glib::ustring& accel_path)
_______________________________________________ gtkmm-list mailing list gtkmm-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtkmm-list