Parent: b9c3504dc6a8134d61479d7fb4f9da69c4c0af65
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Committer: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: 2021-09-17 23:41:35
Tree: bfd29097fd6bb82530efb1c1bbda4004df42a8e4
media: Fix build with glibc >= 2.34 pause() is defined in glibc since the very early times; it appears in upstream commit 28f540f45bba (initial import) in 1995 [0]. Bluez has been defining a function named pause() for ages too, since commit caab74c97542 (media: Implement new callbacks for pass-through operations) in 2013 [1] With the recent bump to glibc 2.34.xxx, the build now fails because the two pause() clash: profiles/audio/media.c:1284:13: error: conflicting types for 'pause' 1284 | static bool pause(void *user_data) | ^~~~~ In file included from /tmp/instance-0/output-1/per-package/bluez5_utils/host/s390x-buildroot-linux-gnu/sysroot/usr/include/bits/sigstksz.h:24, from /tmp/instance-0/output-1/per-package/bluez5_utils/host/s390x-buildroot-linux-gnu/sysroot/usr/include/signal.h:328, from /tmp/instance-0/output-1/per-package/bluez5_utils/host/bin/../s390x-buildroot-linux-gnu/sysroot/usr/include/glib-2.0/glib/gbacktrace.h:36, from /tmp/instance-0/output-1/per-package/bluez5_utils/host/bin/../s390x-buildroot-linux-gnu/sysroot/usr/include/glib-2.0/glib.h:34, from profiles/audio/media.c:21: /tmp/instance-0/output-1/per-package/bluez5_utils/host/s390x-buildroot-linux-gnu/sysroot/usr/include/unistd.h:489:12: note: previous declaration of 'pause' was here 489 | extern int pause (void); | ^~~~~ The culprit is indeed glibc 2.34, as can be seen in this result matrix: \ bluez5_utils glibc \ 5.60 | 5.61 -------\-------+-------- 2.33 | OK | OK -------+-------+-------- 2.34 | KO | KO The underlying reason that pause() is now causing issues with glibc 2.34 is not obvious: glibc is a big beast, and finding such issues is not easy. However, we can see that the pause() provided by NPTL has been dropped in favour of the generic one, so maybe this is causing symbol visibility or weakness to change or something... We fix that by renaming the local pause() in bluez5_utils with a namespace-prefix, like some other functions there already have. Fixes: - http://autobuild.buildroot.org/results/c4fbface34be8815838fd7201621d7a8fddd32c5 - http://autobuild.buildroot.org/results/62b88740f19fbe4a1ad7959dc141d539eb88c1f8 [0] https://sourceware.org/git/?p=glibc.git;a=commit;h=28f540f45bbacd939bfd07f213bcad2bf730b1bf [1] https://github.com/bluez/bluez/commit/caab74c97542a56b591f0b16b44ab6ba4b40f0f5
Diffstat
| M | profiles/audio/media.c | | | 4 | ++- - |
1 files changed, 2 insertions(+), 2 deletions(-)