This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/69953] [5/6 Regression] Using lto causes gtkmm/gparted and gtkmm/inkscape compile to fail
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 19 Mar 2016 17:58:11 +0000
- Subject: [Bug lto/69953] [5/6 Regression] Using lto causes gtkmm/gparted and gtkmm/inkscape compile to fail
- Auto-submitted: auto-generated
- References: <bug-69953-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69953
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jason at redhat dot com
--- Comment #18 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The problem is that the symbol shares comdat group with
_ZTCN3Gtk14TreeViewColumnE0_N4Glib6ObjectE/10
(_ZTCN3Gtk14TreeViewColumnE0_N4Glib6ObjectE) @0x7ffff6816980
Type: variable definition analyzed
Visibility: forced_by_abi externally_visible prevailing_def_ironly public
weak comdat comdat_group:_ZTVN3Gtk14TreeViewColumnE one_only
visibility_specified visibility:hidden virtual artificial
Same comdat group as: _ZTCN3Gtk14TreeViewColumnE0_1C/9
References: _ZTIN4Glib6ObjectE/31 (addr)
Referring: _ZTTN3Gtk14TreeViewColumnE/8 (addr)
Read from file: t.o
Availability: available
Varpool flags: initialized read-only const-value-known
the symbol itself is:
_ZTVN3Gtk14TreeViewColumnE/7 (_ZTVN3Gtk14TreeViewColumnE) @0x7ffff6816000
Type: variable definition analyzed
Visibility: forced_by_abi externally_visible prevailing_def_ironly public
weak comdat comdat_group:_ZTVN3Gtk14TreeViewColumnE one_only virtual artificial
Same comdat group as: _ZTCN3Gtk14TreeViewColumnE8_N4Glib1BE/12
References: _ZTIN3Gtk14TreeViewColumnE/23 (addr)_ZN3Gtk14TreeViewColumnD1Ev/5
(addr)_ZN3Gtk14TreeViewColumnD0Ev/6 (addr)_ZTIN3Gtk14TreeViewColumnE/23 (addr)
Referring: _ZN3Gtk14TreeViewColumnD1Ev/5 (addr)_ZTTN3Gtk14TreeViewColumnE/8
(addr)_ZTTN3Gtk14TreeViewColumnE/8 (addr)_ZN3Gtk14TreeViewColumnD0Ev/6 (addr)
Read from file: /tmp/cc2mBAHW.o
Availability: not-ready
Varpool flags: initialized read-only const-value-known
The problem is that one is hidden and other is exported. The hidden one will
make us to privatize the whole comdat group.
Jason, is this intentional? What is the reason for hidding some symbols and
keeping other exported?
If it is intentional I wonder what to do - I suppose we can privatize the
hidden symbols and take them out of the comdat groups as long as we know they
are not accessed by the non-IR code. Otherwise we need to keep whole comdat
group untouched? This is bit tricky, but of course not that hard to implement.