This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/69953] [5/6 Regression] Using lto causes gtkmm/gparted and gtkmm/inkscape compile to fail


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]