[vlc-devel] [PATCH 2/2] thread: fix compilation with clang 7 or older

Thomas Guillem thomas at gllm.fr
Thu Feb 27 11:57:50 CET 2020



On Thu, Feb 27, 2020, at 11:33, Rémi Denis-Courmont wrote:
> VLC does not need to support compiler bugs.

I don't think we all agree on that.

> 
> We have required the 2011 version of the language for several releases already.

Personally, I was very fine using Clang 8 as minimal compiler version since I don't like handling old bugs forever, but this is not what we announced (cf. NEWS).

If you want to change the minimal requirement, you need to bump the versions in NEWS and request it on the mailing list so that we all agree on that.

> 
> This patch is wrong

Why ? How would you do a proper fix ?

> 
> Le 27 février 2020 11:56:55 GMT+02:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>> cf. https://git.videolan.org/?p=vlc.git;a=blob;f=NEWS;h=9521d1ef424f3e47ada6e06cd3dfe63c47852d8d;hb=HEAD
>> 
>> VLC 4.0 need to support GCC 5.0 or Clang 3.4
>> 
>> So I guess, we should merge this patch anyway.
>> 
>> On Tue, Feb 25, 2020, at 12:13, Marvin Scholz wrote:
>>> Of course I would be fine with dropping support for old Clang
>>> versions too, instead of this workaround.
>>> 
>>> If we decide to go that route we should add a configure check
>>> though, so that when using a too old version there is a helpful
>>> error instead of just the build at some point failing.
>>> 
>>> On 25 Feb 2020, at 11:44, Rémi Denis-Courmont wrote:
>>> 
>>>>  Hi,
>>>> 
>>>>  Ubuntu LTS originally uses Clang 6 as default. But it has backports of 
>>>>  7, 8 and 9 in the official repos.
>>>> 
>>>>  Le 25 février 2020 11:51:23 GMT+02:00, Thomas Guillem 
>>>>  <thomas at gllm.fr> a écrit :
>>>>> 
>>>>>  On Tue, Feb 25, 2020, at 10:33, Alexandre Janniaux wrote:
>>>>>>  Hi,
>>>>>> 
>>>>>>  The main issue with requiring earlier version of Clang is
>>>>>>  that it needs to be shipped in android NDK release too.
>>>>>> 
>>>>>>  Currently it seems to be failing with android NDK 18 (which
>>>>>>  is previous VLC 3 NDK version) but is ok with NDK 21 (which
>>>>>>  is LTS and the current version on VLC 4 and latest VLC 3).
>>>>>> 
>>>>>>  Is it planned to drop support of NDK 18? (or done?).
>>>>>  Yes, VLC 4.0 is NDK 21 only. It is building now with NDK 18 but we
>>>>>  shouldn't do anything to keep supporting it.
>>>>> 
>>>>>  So my question: is the clang issue only happening on NDK 18 ? If so, 
>>>>>  I
>>>>>  would tend to agree with Rémi.
>>>>> 
>>>>>  What other OS/distrib are still using clang 7 ?
>>>>> 
>>>>>>> Especially not old bugs from a compiler that will be already 3
>>>>> major releases behind by the time VLC 4.0 comes out, while on the 
>>>>> other
>>>>> hand C++ devs are craving to use C++17 and we require bleeding edge
>>>>> version of some other build tools (Meson requirement is so new that 
>>>>> you
>>>>> can't build contribs on current Ubuntu LTS).
>>>>>>  I don't think toolchains and buildsystems are comparable
>>>>>>  with regards to version update. You can be stuck on old
>>>>>>  compilers but still be able to use bleeding edge build
>>>>>>  systems. The case of android is typically one of them.
>>>>>> 
>>>>>>  Regards,
>>>>>>  --
>>>>>>  Alexandre Janniaux
>>>>>>  Videolabs
>>>>>> 
>>>>>>  On Tue, Feb 25, 2020 at 11:06:20AM +0200, Rémi Denis-Courmont 
>>>>>>  wrote:
>>>>>>>  Hi,
>>>>>>> 
>>>>>>>  I don't think it makes sense in general to try to work around
>>>>> compiler bugs.
>>>>>>> Especially not old bugs from a compiler that will be already 3
>>>>> major releases behind by the time VLC 4.0 comes out, while on the 
>>>>> other
>>>>> hand C++ devs are craving to use C++17 and we require bleeding edge
>>>>> version of some other build tools (Meson requirement is so new that 
>>>>> you
>>>>> can't build contribs on current Ubuntu LTS).
>>>>>>> Le 25 février 2020 10:24:33 GMT+02:00, Thomas Guillem
>>>>> <thomas at gllm.fr> a écrit :
>>>>>>>> 
>>>>>>>>  On Tue, Feb 25, 2020, at 08:34, Rémi Denis-Courmont wrote:
>>>>>>>>>  Hi,
>>>>>>>>> 
>>>>>>>>>  Clang 7 supports what you call C17. It even has a compiler flag
>>>>> for
>>>>>>>> it explicitly. That's all in the LLVM and Clang documentation.
>>>>>>>>> Ergo it works or your compiler is buggy.
>>>>>>>>  I think that is what ePirat said, clang 7 has the bug.
>>>>>>>> 
>>>>>>>>  Could it be possible to enable this cast on a ifdef clang < 7 ?
>>>>>>>> 
>>>>>>>>  That way, we can easily remove later when we drop clang 7 support.
>>>>>>>> 
>>>>>>>>> Le 25 février 2020 08:36:39 GMT+02:00, Marvin Scholz
>>>>>>>> <epirat07 at gmail.com> a écrit :
>>>>>>>>>>  On 25 Feb 2020, at 6:56, Rémi Denis-Courmont wrote:
>>>>>>>>>> 
>>>>>>>>>>> Le maanantaina 24. helmikuuta 2020, 17.45.07 EET Marvin Scholz
>>>>> a
>>>>>>>>>>> écrit :
>>>>>>>>>>>> even though it never modifies it.
>>>>>>>>>>>> Clang versions 7 or older did implement this quite strictly
>>>>> and
>>>>>>>>>>>> therefore errors when compiling this code:
>>>>>>>>>>> That's either a bug in that compiler version or possibly a
>>>>> minor
>>>>>>>>>>> update not
>>>>>>>>>>> installed, or mistaken compiler flag (in other words,
>>>>> configure
>>>>>>>> script
>>>>>>>>>>> bug).
>>>>>>>>>>> Clang 7 officially supports C17/C18.
>>>>>>>>>> I tested all major versions before 7 and all are affected.
>>>>>>>>>> I can’t easily test minor versions between 7 or 8 as they are
>>>>> not
>>>>>>>>>> available
>>>>>>>>>> on godbolt. Looking at the git repository though it seems the
>>>>> first
>>>>>>>>>>  fixed
>>>>>>>>>>  version was 8.0.0.
>>>>>>>>>> 
>>>>>>>>>>  Not sure what you mean by mistaken compiler flag here?
>>>>>>>>>> 
>>>>>>>>>>> And to call it C17 is a bit of a stretch. It's really just an
>>>>>>>>>>> re-edition of
>>>>>>>>>>> C11 with editorial corrections gathered. The atomic spelling
>>>>> error
>>>>>>>> was
>>>>>>>>>>> already
>>>>>>>>>>> found and corrected in 2014.
>>>>>>>>>> It’s called C17 on open-std.org, thats why I used that here,
>>>>> not
>>>>>>>> sure
>>>>>>>>>>  what else to
>>>>>>>>>>  call it.
>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> Реми Дёни-Курмон
>>>>>>>>>>> http://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
>>>>>>>>> --
>>>>>>>>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez
>>>>>>>> excuser ma brièveté.
>>>>>>>>> vlc-devel mailing list
>>>>>>>>> To unsubscribe or modify your subscription options:
>>>>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>>> --
>>>>>>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez
>>>>> excuser ma brièveté.
>>>>>>> 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
>>>>> vlc-devel mailing list
>>>>> To unsubscribe or modify your subscription options:
>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>> -- 
>>>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez 
>>>> excuser ma brièveté._______________________________________________
>>>> 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
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> 
> -- 
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200227/4fdadf34/attachment.html>


More information about the vlc-devel mailing list