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

Rémi Denis-Courmont remi at remlab.net
Wed Mar 7 18:13:43 CET 2018


Le keskiviikkona 7. maaliskuuta 2018, 18.48.54 EET Thomas Guillem a écrit :
> On Wed, Mar 7, 2018, at 17:42, Rémi Denis-Courmont wrote:
> > Le keskiviikkona 7. maaliskuuta 2018, 18.31.54 EET Thomas Guillem a écrit 
:
> > > Hi,
> > > 
> > > After loosing some times in a memory corruption on vlc-ios because VLC
> > > violates the One Definition Rule, I started to rename all *sys_t in all
> > > cpp
> > > modules. (spatialaudio filter_sys_t was used from the blend module)
> > > 
> > > If you agree with my naming convention and everything, I'll continue and
> > > fix all others cpp modules.
> > > 
> > > The sys_t renaming will need to be backported to 3.0.
> > > 
> > > Then, in 4.0, we can remove all *sys_t typedef and replace it with
> > > void*. Do you agree ?
> > 
> > I think that sort of revectoring is a big no-no w.r.t. backporting.
> 
> So, VLC 3.x static builds will always have a chance to fail completely ?
> For example, for a the vlc-ios build, just enabling debug (NDEBUG undefined)
> results on spatialaudio sys constructor being called from blend sys. For
> me, it looks like the result of a vlc static build is totally undefined.

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.

-- 
雷米‧德尼-库尔蒙
https://www.remlab.net/



More information about the vlc-devel mailing list