← Back to team overview

ubuntu-webapps-bugs team mailing list archive

[Bug 1506672] [NEW] Always link with --gc-sections

 

Public bug reported:

Debug builds don't link with --gc-sections, which can cause link
failures when translation units built with RTTI pull in inline
constructors for classes that derive from classes whose constructors are
defined in translation units built without RTTI, even if those classes
aren't instantiated.

Eg:

obj/qt/core/libOxideQtCore_public.a(obj/qt/core/api/OxideQtCore_public.oxideqglobal.o):oxideqglobal.cc:typeinfo
for base::DelayTimer: error: undefined reference to 'typeinfo for
base::Timer'.

base::DelayedTimer has an inline constructor and derives from
base::Timer, whose constructor is defined in another translation unit.
However, oxideqglobal.cc never instantiates base::DelayedTimer (it does
indirectly pull in base/timers/timer.h).

Linking with --gc-sections fixes this

** Affects: oxide
     Importance: High
         Status: Triaged

** Changed in: oxide
   Importance: Undecided => High

** Changed in: oxide
       Status: New => Triaged

-- 
You received this bug notification because you are a member of Ubuntu
WebApps bug tracking, which is subscribed to Oxide.
https://bugs.launchpad.net/bugs/1506672

Title:
  Always link with --gc-sections

Status in Oxide:
  Triaged

Bug description:
  Debug builds don't link with --gc-sections, which can cause link
  failures when translation units built with RTTI pull in inline
  constructors for classes that derive from classes whose constructors
  are defined in translation units built without RTTI, even if those
  classes aren't instantiated.

  Eg:

  obj/qt/core/libOxideQtCore_public.a(obj/qt/core/api/OxideQtCore_public.oxideqglobal.o):oxideqglobal.cc:typeinfo
  for base::DelayTimer: error: undefined reference to 'typeinfo for
  base::Timer'.

  base::DelayedTimer has an inline constructor and derives from
  base::Timer, whose constructor is defined in another translation unit.
  However, oxideqglobal.cc never instantiates base::DelayedTimer (it
  does indirectly pull in base/timers/timer.h).

  Linking with --gc-sections fixes this

To manage notifications about this bug go to:
https://bugs.launchpad.net/oxide/+bug/1506672/+subscriptions


Follow ups