pulseaudio: Fix build with clang for non-x86 target

(From OE-Core rev: 01d21bd4c48aa3f899c012a2c3fd72c689e75944)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2020-12-20 08:05:35 -08:00
committed by Richard Purdie
parent 23999cdaac
commit 41bb5e7cb7
2 changed files with 83 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
From 9d0dc8aedd08d77797f90fa6075a59613f18bf0d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 20 Dec 2020 07:56:07 -0800
Subject: [PATCH] meson: Check for __get_cpuid
checking for presence of cpuid.h header alone is not sufficient in some case to use
cpuid related functions. e.g. when using clang which is built for
multiple targets will have cpuid.h header as part of compiler headers in
distribution but one maybe compiling pulseaudion for non-x86 target. The
current check in meson succeeds and then compile fails later because
cpuid.h is x86-specific header. Therefore checking for symbol that is
needed makes this robust, so even if header exist it will try to ensure
the given symbol can be used
Fixes
src/pulsecore/core-util.c:113:
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/pulseaudio/14.0-r0/recipe-sysroot-native/usr/lib/clang/11.0.1/include/cpuid.h:11:2: error: this header is for x86 only
| #error this header is for x86 only
| ^
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Tanu Kaskinen <tanuk@iki.fi>
---
meson.build | 5 ++++-
src/pulsecore/core-util.c | 2 +-
src/pulsecore/cpu-x86.c | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 2589627..5f5127e 100644
--- a/meson.build
+++ b/meson.build
@@ -185,7 +185,6 @@ endif
check_headers = [
'arpa/inet.h',
'byteswap.h',
- 'cpuid.h',
'dlfcn.h',
'execinfo.h',
'grp.h',
@@ -243,6 +242,10 @@ if cc.has_header_symbol('pthread.h', 'PTHREAD_PRIO_INHERIT')
cdata.set('HAVE_PTHREAD_PRIO_INHERIT', 1)
endif
+if cc.has_header_symbol('cpuid.h', '__get_cpuid')
+ cdata.set('HAVE_GET_CPUID', 1)
+endif
+
# Functions
check_functions = [
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index 601b1d1..6f34e7c 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -109,7 +109,7 @@
#include <sys/personality.h>
#endif
-#ifdef HAVE_CPUID_H
+#ifdef HAVE_GET_CPUID
#include <cpuid.h>
#endif
diff --git a/src/pulsecore/cpu-x86.c b/src/pulsecore/cpu-x86.c
index 4e59e14..86595d4 100644
--- a/src/pulsecore/cpu-x86.c
+++ b/src/pulsecore/cpu-x86.c
@@ -24,7 +24,7 @@
#include <stdint.h>
-#ifdef HAVE_CPUID_H
+#ifdef HAVE_GET_CPUID
#include <cpuid.h>
#endif
--
2.29.2

View File

@@ -4,6 +4,7 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
file://0001-client-conf-Add-allow-autospawn-for-root.patch \
file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
file://0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch \
file://0001-meson-Check-for-__get_cpuid.patch \
file://volatiles.04_pulse \
"
SRC_URI[md5sum] = "84a7776e63dd55c40db8fbd7c7e2e18e"