PipeWire 1.4 includes math.h inside an extern "C" block, which breaks including the header from C++. This is because we end up including throw_gcc.h from memory/mozalloc, but we won't have _LIBCPP_VERSION defined. Workaround for this issue is not to include <pipewire/conf.h> from the main <pipewire/pipewire.h> header, as this leads to inclusion of <spa/json-core.h> where the math.h header is used. We don't currently need this in Firefox anyway. Differential Revision: https://phabricator.services.mozilla.com/D244888
To vendor a new version of PipeWire:
./mach vendor third_party/pipewire/moz.yaml
Vendoring tracks git tags, specific tags can be targeted using the --revision option.