[vlc-devel] [PATCH 0/5] cpp: renaming all *sys_t because of ODR

Thomas Guillem thomas at gllm.fr
Thu Mar 8 11:42:00 CET 2018


A better solution for 4.0 only is to remove all sys_t typedef and add an anynomous namespace for sys_t structs in all cpp modules. That is a only 3 liners per module.

namespace
{
struct demux_sys_t
{
...
};
}

For 3.0, we should rename spatialaudio and chromecast sys_t (the 2 last ones). Not a perfect solution, but should avoid most issues.

On Thu, Mar 8, 2018, at 10:14, Thomas Guillem wrote:
> 
> 
> On Wed, Mar 7, 2018, at 18:48, Rémi Denis-Courmont wrote:
> > Le keskiviikkona 7. maaliskuuta 2018, 19.23.59 EET Thomas Guillem a écrit :
> > > > In theory, yes. That is why we decided not to enable LTO by default
> > > > several
> > > > months ago. You are late to the party if you want to fix this for 3.0.
> > > 
> > > Why not ?
> > > Just renaming few structs in few modules is not that complicated.
> > 
> > I doubt that those few structs are the only remaining ODR violations, 
> > especially if you link statically.
> 
> linking a -O0 vlc static build with clang++ and -Wl,-detect-odr-
> violations give me the following ODR violations: 
> https://paste.gnome.org/p90uxef4l
> 
> So there is an identified problem with chromecast, mkv, blend, 
> spatialaudio and taglib.
> 
> Maybe, there are more ODR issues. Nevertheless, we should rename these 
> modules and backport to 3.0. Especially since the want the 3.0 to be a 
> LTS.
> 
> I'll try again with all cpp contribs built with -O0
> 
> 
> > 
> > -- 
> > 雷米‧德尼-库尔蒙
> > https://www.remlab.net/
> > 
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list