]> code.ossystems Code Review - openembedded-core.git/commit
pulseaudio: switch build system from Autotools to Meson
authorTanu Kaskinen <tanuk@iki.fi>
Thu, 17 Dec 2020 19:27:38 +0000 (21:27 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 20 Dec 2020 00:03:01 +0000 (00:03 +0000)
commit80bbea06e706fde3600950ea9ddfc38a1a76b8bb
treee0d1968c43deca92d3bb7a443e98cab3830ac6d2
parent6e06eb987002031c43f76f908caef240b556e6a1
pulseaudio: switch build system from Autotools to Meson

Upstream is moving from Autotools to Meson, Autotools support will be
dropped in 15.0.

I dropped some configure options:
 * --enable-tcpwrap=no doesn't (currently) have a counterpart in Meson,
   TCP Wrappers support is always disabled.
 * --disable-esound doesn't have a counterpart in Meson, EsounD support
   is always disabled.
 * --disable-gconf doesn't have a counterpart in Meson, GConf support is
   always disabled.

I backported a patch that implements support for the -Dvalgrind=disabled
option.

I checked with buildhistory what the differences are before and after
this patch (with qemuarm with neon removed from TUNE_FEATURES, all
PACKAGECONFIGs enabled):
 * Obvious differences in DEPENDS: Autotools stuff removed and Meson
   stuff added. There wasn't anything strange here.
 * Packages have superfluous RDEPENDS removed from them. With Autotools
   something caused for example X11 libraries to be added to RDEPENDS of
   packages that don't have anything to do with X11.
 * The pulseaudio-src package had MMX and SSE related files removed and
   Neon related files added. I don't know why the ARM build previously
   had MMX and SSE files included, the addition of Neon files is
   explained by the fact that with Meson the Neon optimizations can't be
   disabled if the compiler supports Neon (see below).
 * libfoo.so symlinks changed to point to libfoo.so.X rather than
   directly to libfoo.so.X.Y.Z. To my understading that's fine, since
   libfoo.so.X is a symlink that points to libfoo.so.X.Y.Z.
 * There were various file size changes, which I didn't investigate.

Previously the recipe disabled ARM Neon optimizations when "neon" was
not in TUNE_FEATURES. That was originally added in commit
4e7b91b5a2613b957b08aefbee1aac28fdd19598 at a time when PulseAudio's
build system didn't check the availability of the arm_neon.h header,
causing compilation errors when the header wasn't available. That issue
was fixed a long time ago, so there was little need for the
TUNE_FEATURES check, although it was still possible to make the build
fail if non-neon -mfpu was passed in CFLAGS, so the TUNE_FEATURES check
still had some theoretical benefit (theoretical, because generally OE
passes -mfpu in CC instead of CFLAGS, so OE's -mfpu option appears very
early in the compiler command line, which doesn't trip up PulseAudio's
current Autotools build system).

With Meson there's no option for disabling Neon optimizations if the
compiler supports Neon. If -mfpu is set in CC or CFLAGS, it's ignored,
because the build system adds -mfpu=neon at the end of the compiler
command line, overriding any earlier -mfpu options. This shouldn't be
a problem, because PulseAudio detects at runtime whether the CPU
supports Neon instructions.

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-multimedia/pulseaudio/pulseaudio.inc
meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch [new file with mode: 0644]
meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb