Recent glibc now includes a memfd_create implementation, which appears to conflict with the one provided by memfd_wrappers.h Recent fedora rawhide builds for pulseaudio fail due to this: In file included from pulsecore/shm.c:48:0: ./pulsecore/memfd-wrappers.h:36:19: error: static declaration of 'memfd_create' follows non-static declaration static inline int memfd_create(const char *name, unsigned int flags) { ^~~~~~~~~~~~ In file included from /usr/include/bits/mman-linux.h:115:0, from /usr/include/bits/mman.h:45, from /usr/include/sys/mman.h:41, from pulsecore/shm.c:37: /usr/include/bits/mman-shared.h:46:5: note: previous declaration of 'memfd_create' was here int memfd_create (const char *__name, unsigned int __flags) __THROW; ^~~~~~~~~~~~ (Temporary) link to full build.log: https://kojipkgs.fedoraproject.org//work/tasks/9404/24079404/build.log I can attach a copy if desired, but if ~344k size is acceptable
The build system should check if memfd_create() is available in system headers, and the internal memfd_create() should be defined only if the system implementation isn't available. Marking as a release blocker.
Created attachment 136927 [details] [review] 0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch Here's a patch. I tested it with an old glibc, can you test it with the new one?
*** Bug 104815 has been marked as a duplicate of this bug. ***
This patch works for me in OE/Yocto
Comment on attachment 136927 [details] [review] 0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch Review of attachment 136927 [details] [review]: ----------------------------------------------------------------- +1 LGTM
Thanks for testing and the review! I applied the patch now.
Could we get a new pulseaudio release to make the life easier for those that like building from released tarballs?
You're in luck, "[ANNOUNCE] PulseAudio 11.99.1 (a.k.a. v12.0 release candidate 1)" https://lists.freedesktop.org/archives/pulseaudio-discuss/2018-May/029927.html
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.