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

Alexandre Janniaux ajanni at videolabs.io
Tue Feb 25 11:11:04 CET 2020


Hi,

If I didn't pebcak, NDK 21 has clang 9:

```
$ /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang -v
Android (5900059 based on r365631c) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 207d7abc1a2abf3ef8d4301736d6a7ebc224a290) (based on LLVM 9.0.8svn)
Target: x86_64-unknown-linux-android21
Thread model: posix
InstalledDir: /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin
Found candidate GCC installation: /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9.x
Found candidate GCC installation: /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9.x
Selected GCC installation: /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9.x
Candidate multilib: .;@m64
Selected multilib: .;@m64
```

I tested the snippet without the cast and it compiled.

Other clang target would probably be darwin and maybe llvm
for windows build.

Regards,
--
Alexandre Janniaux
Videolabs

On Tue, Feb 25, 2020 at 10:51:23AM +0100, Thomas Guillem wrote:
>
>
> 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


More information about the vlc-devel mailing list