<div dir="ltr"><div dir="ltr"><div dir="ltr">Nirbheek's suggestion for building with Clang (using Cerbero) on Linux did not work.<br></div><div dir="ltr"><div><br></div><div>The environment variables `CC` and `CXX` are overridden inside of the file `cerbero/config/linux.config`.  Sure, I can hack the file (along with the flags and everything) but it still doesn't work because there are lots of incompatibilities.  For example, this is the first error I see after `./cerbero-uninstalled build gstreamer-1.0`</div><div><br></div><div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>Building the following recipes: libffi zlib glib gtk-doc-lite gobject-introspection gstreamer-1.0</div><div>[(1/6) libffi -> fetch ]</div><div>[(1/6) libffi -> extract ]</div><div>[(1/6) libffi -> configure ]</div><div>Running command 'autoreconf -f -i'</div><div>libtoolize: putting auxiliary files in '.'.</div><div>libtoolize: copying file './ltmain.sh'</div><div>libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.</div><div>libtoolize: copying file 'm4/libtool.m4'</div><div>libtoolize: copying file 'm4/ltoptions.m4'</div><div>libtoolize: copying file 'm4/ltsugar.m4'</div><div>libtoolize: copying file 'm4/ltversion.m4'</div><div>libtoolize: copying file 'm4/lt~obsolete.m4'</div><div><a href="http://configure.ac:187">configure.ac:187</a>: error: possibly undefined macro: LT_SYS_SYMBOL_USCORE</div><div>      If this token and others are legitimate, please use m4_pattern_allow.</div><div>      See the Autoconf documentation.</div><div>autoreconf: /usr/bin/autoconf failed with exit status: 1</div></div></blockquote></div><div><br></div><div>I assumed it wasn't going to be that easy ... there is another thread where someone got Clang working for a particular cross-compilation but it was a lot of work:  <a href="http://gstreamer-devel.966125.n4.nabble.com/Clang-port-of-GStreamer-1-12-4-to-Android-td4687313.html">http://gstreamer-devel.966125.n4.nabble.com/Clang-port-of-GStreamer-1-12-4-to-Android-td4687313.html</a>  (He also gradle-ized the build.)</div><div><br></div><div>It would be a lot of work to accomplish a similar feat using Cerbero ... I wish I had the time but I don't.</div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 3, 2018 at 8:38 AM David Ing <<a href="mailto:ding@panopto.com">ding@panopto.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks ... this is all very helpful.</div><br><div class="gmail_quote"><div dir="ltr">On Sun, Sep 2, 2018 at 10:12 AM Nirbheek Chauhan <<a href="mailto:nirbheek.chauhan@gmail.com" target="_blank">nirbheek.chauhan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, Sep 2, 2018 at 9:42 PM David Ing <<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>> wrote:<br>
><br>
> I am anxiously awaiting the completion of your work Nirbheek.  (Debug symbols on Windows would be very helpful.)<br>
><br>
> I was wondering:  When you are finished, will it also be possible to use Cerbero to build Gstreamer with the Clang compiler on Windows and Linux?  Or is this strictly a Visual Studio / Windows thing?<br>
><br>
<br>
You should be able to build GStreamer with Clang on Linux with Cerbero<br>
already. Try setting `CC` and `CXX` to point to clang and clang++<br>
respectively. This should be correctly picked up by Meson, Autotools,<br>
and CMake inside Cerbero.<br>
<br>
For Windows, there's a bunch of different configurations in which you<br>
can use Clang: Clang/MinGW (ld or lld) and Clang/MSVC (link.exe or<br>
lld). None of these are supported right now, but it should be possible<br>
to use them with some work. Foremost, there are some Meson bugs that<br>
need to be fixed[1], and then Cerbero will need a flag to select the<br>
toolchain to use for Meson recipes. Currently on Windows, there is<br>
just one flag that flips whether a Meson recipe is built with the<br>
MinGW toolchain setup by Cerbero or MSVC found on the system. That can<br>
be converted to an enum with a list of valid values.<br>
<br>
[1] List of bugs:<br>
<a href="https://github.com/mesonbuild/meson/issues/534" rel="noreferrer" target="_blank">https://github.com/mesonbuild/meson/issues/534</a><br>
<a href="https://github.com/mesonbuild/meson/issues/2560" rel="noreferrer" target="_blank">https://github.com/mesonbuild/meson/issues/2560</a><br>
<a href="https://github.com/mesonbuild/meson/issues/2622" rel="noreferrer" target="_blank">https://github.com/mesonbuild/meson/issues/2622</a><br>
<a href="https://github.com/mesonbuild/meson/issues/3597" rel="noreferrer" target="_blank">https://github.com/mesonbuild/meson/issues/3597</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div>
</blockquote></div>