Cerbero GStreamer recipes are now built with Meson

David Ing ding at panopto.com
Wed Sep 5 16:33:55 UTC 2018


Nirbheek's suggestion for building with Clang (using Cerbero) on Linux did
not work.

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`

Building the following recipes: libffi zlib glib gtk-doc-lite
gobject-introspection gstreamer-1.0
[(1/6) libffi -> fetch ]
[(1/6) libffi -> extract ]
[(1/6) libffi -> configure ]
Running command 'autoreconf -f -i'
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:187: error: possibly undefined macro: LT_SYS_SYMBOL_USCORE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1


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:
http://gstreamer-devel.966125.n4.nabble.com/Clang-port-of-GStreamer-1-12-4-to-Android-td4687313.html
(He also gradle-ized the build.)

It would be a lot of work to accomplish a similar feat using Cerbero ... I
wish I had the time but I don't.

On Mon, Sep 3, 2018 at 8:38 AM David Ing <ding at panopto.com> wrote:

> Thanks ... this is all very helpful.
>
> On Sun, Sep 2, 2018 at 10:12 AM Nirbheek Chauhan <
> nirbheek.chauhan at gmail.com> wrote:
>
>> On Sun, Sep 2, 2018 at 9:42 PM David Ing <ding at panopto.com> wrote:
>> >
>> > I am anxiously awaiting the completion of your work Nirbheek.  (Debug
>> symbols on Windows would be very helpful.)
>> >
>> > 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?
>> >
>>
>> You should be able to build GStreamer with Clang on Linux with Cerbero
>> already. Try setting `CC` and `CXX` to point to clang and clang++
>> respectively. This should be correctly picked up by Meson, Autotools,
>> and CMake inside Cerbero.
>>
>> For Windows, there's a bunch of different configurations in which you
>> can use Clang: Clang/MinGW (ld or lld) and Clang/MSVC (link.exe or
>> lld). None of these are supported right now, but it should be possible
>> to use them with some work. Foremost, there are some Meson bugs that
>> need to be fixed[1], and then Cerbero will need a flag to select the
>> toolchain to use for Meson recipes. Currently on Windows, there is
>> just one flag that flips whether a Meson recipe is built with the
>> MinGW toolchain setup by Cerbero or MSVC found on the system. That can
>> be converted to an enum with a list of valid values.
>>
>> [1] List of bugs:
>> https://github.com/mesonbuild/meson/issues/534
>> https://github.com/mesonbuild/meson/issues/2560
>> https://github.com/mesonbuild/meson/issues/2622
>> https://github.com/mesonbuild/meson/issues/3597
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180905/6f2c4656/attachment-0001.html>


More information about the gstreamer-devel mailing list