From 2fdd36b062d6a08785120db3399defef68cf7774 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Sun, 23 Nov 2025 11:09:06 +0900 Subject: [PATCH 01/10] bluez5_%.bbappend: Add libc-glibc override for glibc-gconv-utf-* Otherwise it ends up failed when building with an alternative libc such as musl. Signed-off-by: Jaeyoon Jung --- recipes-connectivity/bluez5/bluez5_%.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-connectivity/bluez5/bluez5_%.bbappend b/recipes-connectivity/bluez5/bluez5_%.bbappend index ec85a153..e8b2e31b 100644 --- a/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -3,7 +3,7 @@ inherit systemd FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" -RRECOMMENDS:${PN} += " \ +RRECOMMENDS:${PN}:libc-glibc += " \ glibc-gconv-utf-16 \ glibc-gconv-utf-32 \ " From 284edd9b6979f287d84773678f39ceb987c1452e Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Tue, 25 Nov 2025 17:22:09 +0900 Subject: [PATCH 02/10] recipes: Remove glibc from DEPENDS It's unnecessary and redundant as BASE_DEFAULT_DEPS already has virtual/libc, and causing an error when building with an alternative libc implementation such as musl. Signed-off-by: Jaeyoon Jung --- recipes-security/minkipc/minkipc_1.0.bb | 2 +- recipes-security/securemsm-features/securemsm-features_1.0.bb | 2 +- recipes-security/securemsm/securemsm_1.0.bb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes-security/minkipc/minkipc_1.0.bb b/recipes-security/minkipc/minkipc_1.0.bb index eed912f9..3b953ac8 100644 --- a/recipes-security/minkipc/minkipc_1.0.bb +++ b/recipes-security/minkipc/minkipc_1.0.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${QCOM_COMMON_LICENSE_DIR}${LICENSE};md5=58d50a3d36f2 DESCRIPTION = "Libraries enabling MinkIPC" -DEPENDS += "glib-2.0 glibc linux-kernel-qcom-headers qcom-libdmabufheap securemsm-headers" +DEPENDS += "glib-2.0 linux-kernel-qcom-headers qcom-libdmabufheap securemsm-headers" QCM6490_SHA256SUM = "112bde336badff7fc610279e66aa2ac388e8452132a377a9cbfd41359bb37019" QCS9100_SHA256SUM = "25a1c3e905a780dc6e75f63f176fc29da31330551749a9b510b18a308dfdfbf9" diff --git a/recipes-security/securemsm-features/securemsm-features_1.0.bb b/recipes-security/securemsm-features/securemsm-features_1.0.bb index a065dfc2..7e6b2c5d 100644 --- a/recipes-security/securemsm-features/securemsm-features_1.0.bb +++ b/recipes-security/securemsm-features/securemsm-features_1.0.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${QCOM_COMMON_LICENSE_DIR}${LICENSE};md5=58d50a3d36f2 DESCRIPTION = "securemsm-features with QseecomAPI user space library to interact with qseecom driver" -DEPENDS = "libxml2 libdrm libtinyxml2 linux-kernel-qcom-headers glib-2.0 glibc qcom-libvmmem qcom-libdmabufheap \ +DEPENDS = "libxml2 libdrm libtinyxml2 linux-kernel-qcom-headers glib-2.0 qcom-libvmmem qcom-libdmabufheap \ securemsm-headers minkipc property-vault jsoncpp qmi-framework curl\ " diff --git a/recipes-security/securemsm/securemsm_1.0.bb b/recipes-security/securemsm/securemsm_1.0.bb index 16784b03..b8b9f834 100644 --- a/recipes-security/securemsm/securemsm_1.0.bb +++ b/recipes-security/securemsm/securemsm_1.0.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${QCOM_COMMON_LICENSE_DIR}${LICENSE};md5=58d50a3d36f2 DESCRIPTION = "Securemsm library with sampleclient used to test sampleapp with qseecom driver through QSEEComApi library" -DEPENDS += "minkipc securemsm-features glib-2.0 glibc linux-kernel-qcom-headers qcom-libdmabufheap" +DEPENDS += "minkipc securemsm-features glib-2.0 linux-kernel-qcom-headers qcom-libdmabufheap" QCM6490_SHA256SUM = "2192b4bd54777bf9f036a41691b73cbe2b9c9ed23c85905569c1f4840b20059e" QCS9100_SHA256SUM = "82eadc6682be9b7bd367993dda85dd7982ee12d1aa1003665c4f9da4a09965ac" From 96f25cd749be2fa6cb05db80ce907431e2401295 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Wed, 26 Nov 2025 13:02:36 +0900 Subject: [PATCH 03/10] libdmabufheap: Add an optional TEMP_FAILURE_RETRY Backports the commit 300f7b5c0d5e223441e4687113d55d4350859f9e from upstream. Signed-off-by: Jaeyoon Jung --- ...fheap-add-an-optional-TEMP_FAILURE_R.patch | 37 +++++++++++++++++++ .../libdmabufheap/qcom-libdmabufheap_1.0.bb | 1 + 2 files changed, 38 insertions(+) create mode 100644 recipes-bsp/libdmabufheap/qcom-libdmabufheap-1.0/0002-QCLINUX-libdmabufheap-add-an-optional-TEMP_FAILURE_R.patch diff --git a/recipes-bsp/libdmabufheap/qcom-libdmabufheap-1.0/0002-QCLINUX-libdmabufheap-add-an-optional-TEMP_FAILURE_R.patch b/recipes-bsp/libdmabufheap/qcom-libdmabufheap-1.0/0002-QCLINUX-libdmabufheap-add-an-optional-TEMP_FAILURE_R.patch new file mode 100644 index 00000000..2d48853e --- /dev/null +++ b/recipes-bsp/libdmabufheap/qcom-libdmabufheap-1.0/0002-QCLINUX-libdmabufheap-add-an-optional-TEMP_FAILURE_R.patch @@ -0,0 +1,37 @@ +From 300f7b5c0d5e223441e4687113d55d4350859f9e Mon Sep 17 00:00:00 2001 +From: Vijayanand Jitta +Date: Wed, 13 Dec 2023 11:14:36 +0530 +Subject: [PATCH] QCLINUX: libdmabufheap: add an optional TEMP_FAILURE_RETRY + macro copy + +Define TEMP_FALURE_RETRY on platforms which use libraries like musl +where it isn't defined. + +Upstream-Status: Backport [https://git.codelinaro.org/clo/le/platform/system/memory/libdmabufheap/-/commit/300f7b5c0d5e223441e4687113d55d4350859f9e] +Change-Id: I1d900cb39865100f0a84337e18ab4452c94db355 +--- + + BufferAllocator.cpp | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/BufferAllocator.cpp b/BufferAllocator.cpp +index eff68be..72c8147 100644 +--- a/BufferAllocator.cpp ++++ b/BufferAllocator.cpp +@@ -46,6 +46,16 @@ static constexpr char kDmaHeapRoot[] = "/dev/dma_heap/"; + static constexpr char kIonDevice[] = "/dev/ion"; + static constexpr char kIonSystemHeapName[] = "ion_system_heap"; + ++#ifndef TEMP_FAILURE_RETRY ++/* Used to retry syscalls that can return EINTR. */ ++#define TEMP_FAILURE_RETRY(exp) ({ \ ++__typeof(exp) _rc; \ ++do { \ ++ _rc = (exp); \ ++} while (_rc == -1 && errno == EINTR); \ ++_rc; }) ++#endif ++ + #ifndef USE_ION + BufferAllocator::BufferAllocator() + : ion_fd_(-1) diff --git a/recipes-bsp/libdmabufheap/qcom-libdmabufheap_1.0.bb b/recipes-bsp/libdmabufheap/qcom-libdmabufheap_1.0.bb index aea0fbc9..b3fcab72 100644 --- a/recipes-bsp/libdmabufheap/qcom-libdmabufheap_1.0.bb +++ b/recipes-bsp/libdmabufheap/qcom-libdmabufheap_1.0.bb @@ -14,6 +14,7 @@ SRC_URI = " \ ${SRCPROJECT};branch=${SRCBRANCH};destsuffix=system/memory/libdmabufheap \ file://kmem.rules \ file://0001-libdmabufheap-Update-generated-libs-version.patch \ + file://0002-QCLINUX-libdmabufheap-add-an-optional-TEMP_FAILURE_R.patch \ " S = "${WORKDIR}/system/memory/libdmabufheap" From ca614ab65c6f6681a612440999871952e5d98496 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Wed, 26 Nov 2025 14:35:17 +0900 Subject: [PATCH 04/10] cld80211-lib: Add TEMP_FAILURE_RETRY if undefined Signed-off-by: Jaeyoon Jung --- .../cld80211-lib/cld80211-lib_git.bb | 6 ++-- ...EMP_FAILURE_RETRY-macro-if-undefined.patch | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 recipes-connectivity/cld80211-lib/files/0001-Add-TEMP_FAILURE_RETRY-macro-if-undefined.patch diff --git a/recipes-connectivity/cld80211-lib/cld80211-lib_git.bb b/recipes-connectivity/cld80211-lib/cld80211-lib_git.bb index 77b9b8f2..4ce9f1c2 100644 --- a/recipes-connectivity/cld80211-lib/cld80211-lib_git.bb +++ b/recipes-connectivity/cld80211-lib/cld80211-lib_git.bb @@ -16,7 +16,9 @@ SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/hardware/qcom/wlan.git;pr SRCBRANCH = "wlan-os-service.qclinux.1.1.r1-rel" SRCREV = "e12275880fc58775de0b240a9f6c325b7a310ebe" -SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=hardware/qcom/wlan" +SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=hardware/qcom/wlan \ + file://0001-Add-TEMP_FAILURE_RETRY-macro-if-undefined.patch;patchdir=${UNPACKDIR}/hardware/qcom/wlan \ +" -S = "${WORKDIR}/hardware/qcom/wlan/cld80211-lib" +S = "${UNPACKDIR}/hardware/qcom/wlan/cld80211-lib" CFLAGS += "-I ${STAGING_INCDIR}/libnl3" diff --git a/recipes-connectivity/cld80211-lib/files/0001-Add-TEMP_FAILURE_RETRY-macro-if-undefined.patch b/recipes-connectivity/cld80211-lib/files/0001-Add-TEMP_FAILURE_RETRY-macro-if-undefined.patch new file mode 100644 index 00000000..d359510a --- /dev/null +++ b/recipes-connectivity/cld80211-lib/files/0001-Add-TEMP_FAILURE_RETRY-macro-if-undefined.patch @@ -0,0 +1,34 @@ +From e7c81836ae02c88bfa3499387ab5901db1e2e0b8 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Wed, 26 Nov 2025 14:23:31 +0900 +Subject: [PATCH] Add TEMP_FAILURE_RETRY macro if undefined + +Needed to build with an alternative libc such as musl. + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + cld80211_lib.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/cld80211-lib/cld80211_lib.c b/cld80211-lib/cld80211_lib.c +index e92d8228..9bd3a0e6 100644 +--- a/cld80211-lib/cld80211_lib.c ++++ b/cld80211-lib/cld80211_lib.c +@@ -59,6 +59,16 @@ + + #define SOCK_BUF_SIZE (256*1024) + ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ ({ \ ++ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; \ ++ }) ++#endif ++ + struct family_data { + const char *group; + int id; From 9fd214863cc552fbae8829f792dfb0c2ef2ff424 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Wed, 26 Nov 2025 16:26:45 +0900 Subject: [PATCH 05/10] qcom-args: Fix errors when building with musl Remove __unused macro and use __attribute__((unused)) instead. Use -1 instead of NULL for SOCKET type. Signed-off-by: Jaeyoon Jung --- .../0001-args-Remove-__unused-macro.patch | 97 +++++++++++++++++++ ...rgs-Use-1-instead-of-NULL-for-SOCKET.patch | 74 ++++++++++++++ recipes-multimedia/audio/qcom-args_git.bb | 5 +- 3 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 recipes-multimedia/audio/qcom-args/0001-args-Remove-__unused-macro.patch create mode 100644 recipes-multimedia/audio/qcom-args/0002-args-Use-1-instead-of-NULL-for-SOCKET.patch diff --git a/recipes-multimedia/audio/qcom-args/0001-args-Remove-__unused-macro.patch b/recipes-multimedia/audio/qcom-args/0001-args-Remove-__unused-macro.patch new file mode 100644 index 00000000..28d0fe3c --- /dev/null +++ b/recipes-multimedia/audio/qcom-args/0001-args-Remove-__unused-macro.patch @@ -0,0 +1,97 @@ +From 190a6b96f6272f55a76db7ef5c272d6ef72311dd Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Wed, 26 Nov 2025 16:09:05 +0900 +Subject: [PATCH] args: Remove __unused macro + +Use __attribute__((unused)) in place of __unused instead as it may cause +a error as when building with musl as below: +qcom-args/git/recipe-sysroot/usr/include/bits/stat.h:17:19: error: expected member name or ';' after declaration specifiers + 17 | unsigned __unused[2]; + | ~~~~~~~~ ^ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + ar_osal/Makefile.am | 2 +- + ar_osal/src/linux/ar_osal_mutex.c | 4 ++-- + ar_osal/src/linux/ar_osal_signal.c | 4 ++-- + ar_osal/src/linux/qcom/ar_osal_servreg.c | 6 +++--- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/ar_osal/Makefile.am b/ar_osal/Makefile.am +index d97466a..6c46d7e 100644 +--- a/ar_osal/Makefile.am ++++ b/ar_osal/Makefile.am +@@ -4,7 +4,7 @@ EXTRA_DIST = $(pkgconfig_DATA) + + AM_CFLAGS = -Wall -Wno-pointer-to-int-cast -Wno-error=unused-function \ + -Wno-error=unused-label +-AM_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\) -DLINUX_ENABLED ++AM_CFLAGS += -DLINUX_ENABLED + + AM_CFLAGS += -I$(srcdir)/api \ + -I$(top_srcdir)/acdb/ats/transports/diag/linux/inc/ +diff --git a/ar_osal/src/linux/ar_osal_mutex.c b/ar_osal/src/linux/ar_osal_mutex.c +index 6509573..6650ead 100644 +--- a/ar_osal/src/linux/ar_osal_mutex.c ++++ b/ar_osal/src/linux/ar_osal_mutex.c +@@ -25,13 +25,13 @@ typedef struct osal_int_mutex { + } osal_int_mutex_t; + + _IRQL_requires_max_(PASSIVE_LEVEL) +-int32_t ar_osal_mutex_init(_Inout_ ar_osal_mutex_t mutex __unused) ++int32_t ar_osal_mutex_init(_Inout_ ar_osal_mutex_t mutex __attribute__((unused))) + { + return AR_ENOTIMPL; + } + + _IRQL_requires_max_(PASSIVE_LEVEL) +-int32_t ar_osal_mutex_deinit(_In_ ar_osal_mutex_t mutex __unused) ++int32_t ar_osal_mutex_deinit(_In_ ar_osal_mutex_t mutex __attribute__((unused))) + { + return AR_ENOTIMPL; + } +diff --git a/ar_osal/src/linux/ar_osal_signal.c b/ar_osal/src/linux/ar_osal_signal.c +index 41d6b4e..d7ad559 100644 +--- a/ar_osal/src/linux/ar_osal_signal.c ++++ b/ar_osal/src/linux/ar_osal_signal.c +@@ -27,13 +27,13 @@ typedef struct osal_int_signal { + } osal_int_signal_t; + + _IRQL_requires_max_(DISPATCH_LEVEL) +-int32_t ar_osal_signal_init(_In_ ar_osal_signal_t signal __unused) ++int32_t ar_osal_signal_init(_In_ ar_osal_signal_t signal __attribute__((unused))) + { + return AR_ENOTIMPL; + } + + _IRQL_requires_max_(DISPATCH_LEVEL) +-int32_t ar_osal_signal_deinit(_In_ ar_osal_signal_t signal __unused) ++int32_t ar_osal_signal_deinit(_In_ ar_osal_signal_t signal __attribute__((unused))) + { + return AR_ENOTIMPL; + } +diff --git a/ar_osal/src/linux/qcom/ar_osal_servreg.c b/ar_osal/src/linux/qcom/ar_osal_servreg.c +index 263e84d..1619e40 100644 +--- a/ar_osal/src/linux/qcom/ar_osal_servreg.c ++++ b/ar_osal/src/linux/qcom/ar_osal_servreg.c +@@ -334,7 +334,7 @@ end: + * null on failure. + */ + _IRQL_requires_max_(PASSIVE_LEVEL) +-ar_osal_servreg_t ar_osal_servreg_register(_In_ ar_osal_client_type client_type __unused, ++ar_osal_servreg_t ar_osal_servreg_register(_In_ ar_osal_client_type client_type __attribute__((unused)), + _In_opt_ ar_osal_servreg_callback cb_func, + _In_opt_ void *cb_context, + _In_ ar_osal_servreg_entry_type *domain, +@@ -470,8 +470,8 @@ end: + * Nonzero -- Failure + */ + _IRQL_requires_max_(PASSIVE_LEVEL) +-int32_t ar_osal_servreg_set_state(_In_ ar_osal_servreg_t servreg_handle __unused, +- _In_ ar_osal_service_state_type state __unused) ++int32_t ar_osal_servreg_set_state(_In_ ar_osal_servreg_t servreg_handle __attribute__((unused)), ++ _In_ ar_osal_service_state_type state __attribute__((unused))) + { + return AR_ENOTIMPL; + } diff --git a/recipes-multimedia/audio/qcom-args/0002-args-Use-1-instead-of-NULL-for-SOCKET.patch b/recipes-multimedia/audio/qcom-args/0002-args-Use-1-instead-of-NULL-for-SOCKET.patch new file mode 100644 index 00000000..21543341 --- /dev/null +++ b/recipes-multimedia/audio/qcom-args/0002-args-Use-1-instead-of-NULL-for-SOCKET.patch @@ -0,0 +1,74 @@ +From 6b5cce849fa92df159b67d718dfb7574533c8015 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Wed, 26 Nov 2025 16:14:55 +0900 +Subject: [PATCH] args: Use -1 instead of NULL for SOCKET + +Otherwise it ends up failed when building with musl as below: +../../../audio/opensource/args/acdb/ats/./transports/tcpip/linux/src/ats_server.cpp:94:8: error: cannot initialize a variable of type 'SOCKET' (aka 'int') with an rvalue of type 'std::nullptr_t' + 94 | SOCKET g_server_socket = NULL; + | ^ ~~~~ +../../../audio/opensource/args/acdb/ats/./transports/tcpip/linux/src/ats_server.cpp:376:22: error: assigning to 'SOCKET' (aka 'int') from incompatible type 'std::nullptr_t' + 376 | g_server_socket = NULL; + | ^~~~ +/home/noelma/work/atlas/atlas/tmp/work/armv8-2a-atlas-linux-musl/qcom-args/git/recipe-sysroot/usr/include/unistd.h:21:14: note: expanded from macro 'NULL' + 21 | #define NULL nullptr + | ^~~~~~~ +../../../audio/opensource/args/acdb/ats/./transports/tcpip/linux/src/ats_server.cpp:461:20: error: assigning to 'SOCKET' (aka 'int') from incompatible type 'std::nullptr_t' + 461 | g_server_socket = NULL; + | ^~~~ +/home/noelma/work/atlas/atlas/tmp/work/armv8-2a-atlas-linux-musl/qcom-args/git/recipe-sysroot/usr/include/unistd.h:21:14: note: expanded from macro 'NULL' + 21 | #define NULL nullptr + | ^~~~~~~ +../../../audio/opensource/args/acdb/ats/./transports/tcpip/linux/src/ats_server.cpp:766:10: error: invalid operands to binary expression ('SOCKET' (aka 'int') and 'std::nullptr_t') + 766 | if (!IsNull(g_server_socket)) + | ^~~~~~~~~~~~~~~~~~~~~~~ +../../../audio/opensource/args/acdb/inc/acdb_utility.h:35:26: note: expanded from macro 'IsNull' + 35 | #define IsNull(ptr) (ptr == NULL) + | ~~~ ^ ~~~~ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + acdb/ats/transports/tcpip/linux/src/ats_server.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/acdb/ats/transports/tcpip/linux/src/ats_server.cpp b/acdb/ats/transports/tcpip/linux/src/ats_server.cpp +index b542b85..159bf8e 100644 +--- a/acdb/ats/transports/tcpip/linux/src/ats_server.cpp ++++ b/acdb/ats/transports/tcpip/linux/src/ats_server.cpp +@@ -91,7 +91,7 @@ ats_server_context g_ats_server_context = { 0 }; + + AtsBufferManager *ats_buffer_manager = NULL; + bool_t g_should_close_server = FALSE; +-SOCKET g_server_socket = NULL; ++SOCKET g_server_socket = -1; + + /* --------------------------------------------------------------------------- + * Helper Functions +@@ -373,7 +373,7 @@ void* ats_server_start_routine(void* arg) + if (IsNull(gateway_socket_ptr)) + { + ATS_ERR("Insufficient memory to create socket"); +- g_server_socket = NULL; ++ g_server_socket = -1; + atsclosesocket(sockfd); + return 0; + } +@@ -458,7 +458,7 @@ void* ats_server_start_routine(void* arg) + } + + atsclosesocket(sockfd); +- g_server_socket = NULL; ++ g_server_socket = -1; + + return 0; + } +@@ -763,7 +763,7 @@ int32_t ats_server_deinit() + + g_should_close_server = TRUE; + +- if (!IsNull(g_server_socket)) ++ if (g_server_socket != -1) + atsclosesocket(g_server_socket); + + status = ar_osal_thread_join_destroy(g_thd_ats_listener); diff --git a/recipes-multimedia/audio/qcom-args_git.bb b/recipes-multimedia/audio/qcom-args_git.bb index 016e8716..93cb079a 100644 --- a/recipes-multimedia/audio/qcom-args_git.bb +++ b/recipes-multimedia/audio/qcom-args_git.bb @@ -10,7 +10,10 @@ SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/ar SRCBRANCH = "audio-core.lnx.1.0.r1-rel" SRCREV = "6fbb752bfa315d4a6bcdde165db7cfd718f4c3f5" -SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/args" +SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/args \ + file://0001-args-Remove-__unused-macro.patch \ + file://0002-args-Use-1-instead-of-NULL-for-SOCKET.patch \ +" S = "${WORKDIR}/audio/opensource/args" From a26f4a67b31f5efab57811da7f12d8884852f70e Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Thu, 27 Nov 2025 07:32:04 +0900 Subject: [PATCH 06/10] qcom-pa-bt-audio: Fix error when building with musl Have HAVE_SYS_SOCKET_H defined by configure. Signed-off-by: Jaeyoon Jung --- ...VE_SYS_SOCKET_H-defined-by-configure.patch | 29 +++++++++++++++++++ .../audio/qcom-pa-bt-audio_1.1.bb | 6 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 recipes-multimedia/audio/qcom-pa-bt-audio/0001-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch diff --git a/recipes-multimedia/audio/qcom-pa-bt-audio/0001-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch b/recipes-multimedia/audio/qcom-pa-bt-audio/0001-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch new file mode 100644 index 00000000..a05a6065 --- /dev/null +++ b/recipes-multimedia/audio/qcom-pa-bt-audio/0001-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch @@ -0,0 +1,29 @@ +From 97ff78013fd183b67c77a9da06d72a3596dbcb6f Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Thu, 27 Nov 2025 07:17:53 +0900 +Subject: [PATCH] Have HAVE_SYS_SOCKET_H defined by configure + +Fixes a build error with musl: +qcom-pa-bt-audio/1.1/recipe-sysroot/usr/include/pulsecore/core-util.h:303:58: error: unknown type name 'socklen_t'; did you mean 'locale_t'? + 303 | int pa_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen); + | ^ + +Signed-off-by: Jaeyoon Jung +Upstream-Status: Pending +--- + utils/pa_bt_audio/configure.ac | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/utils/pa_bt_audio/configure.ac b/utils/pa_bt_audio/configure.ac +index 7d85f6d..44b2b55 100644 +--- a/utils/pa_bt_audio/configure.ac ++++ b/utils/pa_bt_audio/configure.ac +@@ -45,6 +45,8 @@ PKG_CHECK_MODULES([LIBPULSE], [libpulse]) + AC_SUBST([LIBPULSE_CFLAGS]) + AC_SUBST([LIBPULSE_LIBS]) + ++AC_CHECK_HEADERS([sys/socket.h]) ++ + AC_CONFIG_FILES([ \ + Makefile + pabtaudio.pc diff --git a/recipes-multimedia/audio/qcom-pa-bt-audio_1.1.bb b/recipes-multimedia/audio/qcom-pa-bt-audio_1.1.bb index a513c250..7b2c2fa8 100644 --- a/recipes-multimedia/audio/qcom-pa-bt-audio_1.1.bb +++ b/recipes-multimedia/audio/qcom-pa-bt-audio_1.1.bb @@ -9,9 +9,11 @@ SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/pu SRCBRANCH = "audio-algos.lnx.1.0.r1-rel" SRCREV = "35adad85a280ea8dc72f5687c1a70ddc9833758c" -SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins" +SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins \ + file://0001-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch;patchdir=${UNPACKDIR}/audio/opensource/pulseaudio-plugins \ +" -S = "${WORKDIR}/audio/opensource/pulseaudio-plugins/utils/pa_bt_audio" +S = "${UNPACKDIR}/audio/opensource/pulseaudio-plugins/utils/pa_bt_audio" DEPENDS = "pulseaudio" From 9456e597faf66e900ba9ccf691d435e043c5b521 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Thu, 27 Nov 2025 09:56:33 +0900 Subject: [PATCH 07/10] qcom-pal: Fix errors when building with musl Remove __unused macro and use __attribute__((unused)) instead. '#include ' is needed by 'usleep' and 'close'. Signed-off-by: Jaeyoon Jung --- ...-missing-header-for-usleep-and-close.patch | 38 + .../qcom-pal/0002-Remove-__unused-macro.patch | 1623 +++++++++++++++++ recipes-multimedia/audio/qcom-pal_git.bb | 7 +- 3 files changed, 1666 insertions(+), 2 deletions(-) create mode 100644 recipes-multimedia/audio/qcom-pal/0001-Add-missing-header-for-usleep-and-close.patch create mode 100644 recipes-multimedia/audio/qcom-pal/0002-Remove-__unused-macro.patch diff --git a/recipes-multimedia/audio/qcom-pal/0001-Add-missing-header-for-usleep-and-close.patch b/recipes-multimedia/audio/qcom-pal/0001-Add-missing-header-for-usleep-and-close.patch new file mode 100644 index 00000000..a367d0df --- /dev/null +++ b/recipes-multimedia/audio/qcom-pal/0001-Add-missing-header-for-usleep-and-close.patch @@ -0,0 +1,38 @@ +From 45b6f8542c7c40b955ea25ab46198c7a32d66fce Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Thu, 27 Nov 2025 09:50:49 +0900 +Subject: [PATCH] Add missing header for usleep and close + +'#include ' is needed by 'usleep' and 'close'. + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + session/src/SessionAlsaPcm.cpp | 1 + + session/src/SoundTriggerEngineGsl.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/session/src/SessionAlsaPcm.cpp b/session/src/SessionAlsaPcm.cpp +index 687954e6..102332b3 100644 +--- a/session/src/SessionAlsaPcm.cpp ++++ b/session/src/SessionAlsaPcm.cpp +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + #include + #include "rx_haptics_api.h" + #include "audio_dam_buffer_api.h" +diff --git a/session/src/SoundTriggerEngineGsl.cpp b/session/src/SoundTriggerEngineGsl.cpp +index fcd748c2..ed9b0b0c 100644 +--- a/session/src/SoundTriggerEngineGsl.cpp ++++ b/session/src/SoundTriggerEngineGsl.cpp +@@ -40,6 +40,7 @@ + #ifdef PAL_CUTILS_SUPPORTED + #include + #endif ++#include + #include "Session.h" + #include "Stream.h" + #include "StreamSoundTrigger.h" diff --git a/recipes-multimedia/audio/qcom-pal/0002-Remove-__unused-macro.patch b/recipes-multimedia/audio/qcom-pal/0002-Remove-__unused-macro.patch new file mode 100644 index 00000000..c0e5ad0e --- /dev/null +++ b/recipes-multimedia/audio/qcom-pal/0002-Remove-__unused-macro.patch @@ -0,0 +1,1623 @@ +From 15bd33d5d4f34852db6847a5ad0502d93b15b681 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Thu, 27 Nov 2025 10:51:29 +0900 +Subject: [PATCH] Remove __unused macro + +Use __attribute__((unused)) in place of __unused instead as it may cause +a error as when building with musl as below: +In file included from ../audio/opensource/arpal-lx/./resource_manager/src/SndCardMonitor.cpp:40: +../recipe-sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] + 1 | #warning redirecting incorrect #include to + | ^~~~~~~ +In file included from ../recipe-sysroot/usr/include/sys/stat.h:23, + from ../audio/opensource/arpal-lx/./resource_manager/src/SndCardMonitor.cpp:38: +../recipe-sysroot/usr/include/bits/stat.h:17:26: error: expected unqualified-id before '[' token + 17 | unsigned __unused[2]; + | ^ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + Makefile.am | 2 +- + Pal.cpp | 4 +- + context_manager/src/ContextManager.cpp | 2 +- + device/src/Device.cpp | 16 +++---- + device/src/DisplayPort.cpp | 2 +- + device/src/HapticsDevProtection.cpp | 2 +- + device/src/SpeakerProtection.cpp | 2 +- + device/src/USBAudio.cpp | 6 +-- + .../pal_ipc_client/src/pal_client_wrapper.cpp | 6 +-- + plugins/codecs/bt_aptx.c | 2 +- + plugins/codecs/bt_ble.c | 2 +- + plugins/codecs/bt_bundle.c | 4 +- + resource_manager/inc/ResourceManager.h | 4 +- + resource_manager/src/ResourceManager.cpp | 10 ++-- + session/inc/ACDEngine.h | 2 +- + session/inc/Session.h | 48 +++++++++---------- + session/inc/SessionAgm.h | 30 ++++++------ + session/inc/SessionAlsaCompress.h | 2 +- + session/inc/SessionAlsaPcm.h | 2 +- + session/inc/SessionGsl.h | 2 +- + session/inc/SoundTriggerEngineCapi.h | 44 ++++++++--------- + session/inc/SoundTriggerEngineGsl.h | 4 +- + session/src/ACDEngine.cpp | 2 +- + session/src/PayloadBuilder.cpp | 10 ++-- + session/src/Session.cpp | 10 ++-- + session/src/SessionAgm.cpp | 22 ++++----- + session/src/SessionAlsaCompress.cpp | 28 +++++------ + session/src/SessionAlsaPcm.cpp | 8 ++-- + session/src/SessionAlsaVoice.cpp | 10 ++-- + session/src/SoundTriggerEngineCapi.cpp | 8 ++-- + session/src/SoundTriggerEngineGsl.cpp | 2 +- + stream/inc/Stream.h | 24 +++++----- + stream/inc/StreamACD.h | 20 ++++---- + stream/inc/StreamCommon.h | 34 ++++++------- + stream/inc/StreamCommonProxy.h | 8 ++-- + stream/inc/StreamContextProxy.h | 8 ++-- + stream/inc/StreamSensorPCMData.h | 10 ++-- + stream/inc/StreamSoundTrigger.h | 18 +++---- + stream/inc/StreamUltraSound.h | 2 +- + stream/src/Stream.cpp | 4 +- + stream/src/StreamACD.cpp | 6 +-- + stream/src/StreamCommonProxy.cpp | 6 +-- + stream/src/StreamContextProxy.cpp | 6 +-- + stream/src/StreamHaptics.cpp | 6 +-- + stream/src/StreamNonTunnel.cpp | 4 +- + stream/src/StreamSensorPCMData.cpp | 10 ++-- + stream/src/StreamSoundTrigger.cpp | 4 +- + stream/src/StreamUltraSound.cpp | 6 +-- + utils/inc/SoundTriggerPlatformInfo.h | 4 +- + utils/src/ACDPlatformInfo.cpp | 2 +- + utils/src/PalRingBuffer.cpp | 4 +- + 51 files changed, 242 insertions(+), 242 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 3a0e0821..1ff1b50f 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -75,7 +75,7 @@ AM_CPPFLAGS += @AROUTE_CFLAGS@ + AM_CPPFLAGS += @PALHEADERS_CFLAGS@ + AM_CPPFLAGS += @KVH2XML_CFLAGS@ + AM_CPPFLAGS += -Wno-sign-compare -Wno-unused-result -Wl,-z,defs +-AM_CPPFLAGS += -D__unused=__attribute__\(\(__unused__\)\) -DLINUX_ENABLED -DPAL_MEMLOG_UNSUPPORTED -DATRACE_UNSUPPORTED -DCARD_STATE_UNSUPPORTED -DPAL_SIGNAL_HANDLER_UNSUPPORTED -DA2DP_SINK_SUPPORTED -DVUI_DMGR_AUDIO_UNSUPPORTED -DAUDIO_FEATURE_STATS_UNSUPPORTED ++AM_CPPFLAGS += -DLINUX_ENABLED -DPAL_MEMLOG_UNSUPPORTED -DATRACE_UNSUPPORTED -DCARD_STATE_UNSUPPORTED -DPAL_SIGNAL_HANDLER_UNSUPPORTED -DA2DP_SINK_SUPPORTED -DVUI_DMGR_AUDIO_UNSUPPORTED -DAUDIO_FEATURE_STATS_UNSUPPORTED + AM_CPPFLAGS += -DSND_AUDIOCODEC_ALAC=0x00000020 -DSND_AUDIOCODEC_APE=0x00000021 + AM_CPPFLAGS += -DCONFIG_GSL + AM_CPPFLAGS += -DPAL_SP_TEMP_PATH=\"/etc/acdbdata/audio.cal\" +diff --git a/Pal.cpp b/Pal.cpp +index d98a3943..2635decd 100644 +--- a/Pal.cpp ++++ b/Pal.cpp +@@ -1452,8 +1452,8 @@ int32_t pal_gef_rw_param(uint32_t param_id, void *param_payload, + return status; + } + +-int32_t pal_gef_rw_param_acdb(uint32_t param_id __unused, void *param_payload, +- size_t payload_size __unused, pal_device_id_t pal_device_id, ++int32_t pal_gef_rw_param_acdb(uint32_t param_id __attribute__((unused)), void *param_payload, ++ size_t payload_size __attribute__((unused)), pal_device_id_t pal_device_id, + pal_stream_type_t pal_stream_type, uint32_t sample_rate, + uint32_t instance_id, uint32_t dir, bool is_play ) + { +diff --git a/context_manager/src/ContextManager.cpp b/context_manager/src/ContextManager.cpp +index 13b2576d..8d638821 100644 +--- a/context_manager/src/ContextManager.cpp ++++ b/context_manager/src/ContextManager.cpp +@@ -1212,7 +1212,7 @@ exit: + return rc; + } + +-int32_t UsecaseACD::GetAckDataOnSuccessfullStart(uint32_t *size __unused, void *data __unused) ++int32_t UsecaseACD::GetAckDataOnSuccessfullStart(uint32_t *size __attribute__((unused)), void *data __attribute__((unused))) + { + int32_t rc = 0; + asps_acd_usecase_register_ack_payload_t *data_ptr; +diff --git a/device/src/Device.cpp b/device/src/Device.cpp +index 93e27d97..34519e14 100644 +--- a/device/src/Device.cpp ++++ b/device/src/Device.cpp +@@ -371,13 +371,13 @@ int Device::getDeviceAttributes(struct pal_device *dattr, Stream* streamHandle) + return 0; + } + +-int Device::getCodecConfig(struct pal_media_config *config __unused) ++int Device::getCodecConfig(struct pal_media_config *config __attribute__((unused))) + { + return 0; + } + + +-int Device::getDefaultConfig(pal_param_device_capability_t capability __unused) ++int Device::getDefaultConfig(pal_param_device_capability_t capability __attribute__((unused))) + { + return 0; + } +@@ -450,12 +450,12 @@ std::string Device::getPALDeviceName() + return mPALDeviceName; + } + +-int Device::init(pal_param_device_connection_t device_conn __unused) ++int Device::init(pal_param_device_connection_t device_conn __attribute__((unused))) + { + return 0; + } + +-int Device::deinit(pal_param_device_connection_t device_conn __unused) ++int Device::deinit(pal_param_device_connection_t device_conn __attribute__((unused))) + { + return 0; + } +@@ -627,22 +627,22 @@ int Device::stop_l() + return 0; + } + +-int32_t Device::setDeviceParameter(uint32_t param_id __unused, void *param __unused) ++int32_t Device::setDeviceParameter(uint32_t param_id __attribute__((unused)), void *param __attribute__((unused))) + { + return 0; + } + +-int32_t Device::getDeviceParameter(uint32_t param_id __unused, void **param __unused) ++int32_t Device::getDeviceParameter(uint32_t param_id __attribute__((unused)), void **param __attribute__((unused))) + { + return 0; + } + +-int32_t Device::setParameter(uint32_t param_id __unused, void *param __unused) ++int32_t Device::setParameter(uint32_t param_id __attribute__((unused)), void *param __attribute__((unused))) + { + return 0; + } + +-int32_t Device::getParameter(uint32_t param_id __unused, void **param __unused) ++int32_t Device::getParameter(uint32_t param_id __attribute__((unused)), void **param __attribute__((unused))) + { + return 0; + } +diff --git a/device/src/DisplayPort.cpp b/device/src/DisplayPort.cpp +index 100161e1..7b47b83a 100644 +--- a/device/src/DisplayPort.cpp ++++ b/device/src/DisplayPort.cpp +@@ -420,7 +420,7 @@ int DisplayPort::init(pal_param_device_connection_t device_conn) + return 0; + } + +-int DisplayPort::deinit(pal_param_device_connection_t device_conn __unused) ++int DisplayPort::deinit(pal_param_device_connection_t device_conn __attribute__((unused))) + { + updateAudioAckState(EXT_DISPLAY_PLUG_STATUS_NOTIFY_DISCONNECT, dp_controller, dp_stream); + //To-Do : Have to invalidate the cahed EDID +diff --git a/device/src/HapticsDevProtection.cpp b/device/src/HapticsDevProtection.cpp +index edaa09bd..6c25154c 100644 +--- a/device/src/HapticsDevProtection.cpp ++++ b/device/src/HapticsDevProtection.cpp +@@ -170,7 +170,7 @@ void HapticsDevProtection::HapticsDevCalibrateWait() + } + + // Callback from DSP for Ressistance value +-void HapticsDevProtection::handleHPCallback (uint64_t hdl __unused, uint32_t event_id, ++void HapticsDevProtection::handleHPCallback (uint64_t hdl __attribute__((unused)), uint32_t event_id, + void *event_data, uint32_t event_size) + { + param_id_haptics_th_vi_r0_get_param_t *param_data = nullptr; +diff --git a/device/src/SpeakerProtection.cpp b/device/src/SpeakerProtection.cpp +index 8bd95a73..08354792 100644 +--- a/device/src/SpeakerProtection.cpp ++++ b/device/src/SpeakerProtection.cpp +@@ -216,7 +216,7 @@ void SpeakerProtection::spkrCalibrateWait() + } + + // Callback from DSP for Ressistance value +-void SpeakerProtection::handleSPCallback (uint64_t hdl __unused, uint32_t event_id, ++void SpeakerProtection::handleSPCallback (uint64_t hdl __attribute__((unused)), uint32_t event_id, + void *event_data, uint32_t event_size) + { + param_id_sp_th_vi_calib_res_per_spkr_cfg_param_t *param_data = nullptr; +diff --git a/device/src/USBAudio.cpp b/device/src/USBAudio.cpp +index 3a7f8d92..8f0cf5dd 100644 +--- a/device/src/USBAudio.cpp ++++ b/device/src/USBAudio.cpp +@@ -300,17 +300,17 @@ int USB::deinit(pal_param_device_connection_t device_conn) + return 0; + } + +-int32_t USB::isBitWidthSupported(unsigned int bitWidth __unused) ++int32_t USB::isBitWidthSupported(unsigned int bitWidth __attribute__((unused))) + { + return 0; + } + +-int32_t USB::checkAndUpdateBitWidth(unsigned int *bitWidth __unused) ++int32_t USB::checkAndUpdateBitWidth(unsigned int *bitWidth __attribute__((unused))) + { + return 0; + } + +-int32_t USB::checkAndUpdateSampleRate(unsigned int *sampleRate __unused) ++int32_t USB::checkAndUpdateSampleRate(unsigned int *sampleRate __attribute__((unused))) + { + return 0; + } +diff --git a/ipc/HwBinders/pal_ipc_client/src/pal_client_wrapper.cpp b/ipc/HwBinders/pal_ipc_client/src/pal_client_wrapper.cpp +index 8dcf379c..7c042d1a 100644 +--- a/ipc/HwBinders/pal_ipc_client/src/pal_client_wrapper.cpp ++++ b/ipc/HwBinders/pal_ipc_client/src/pal_client_wrapper.cpp +@@ -884,7 +884,7 @@ int32_t pal_stream_set_device(pal_stream_handle_t *stream_handle, + } + + int32_t pal_stream_get_volume(pal_stream_handle_t *stream_handle, +- struct pal_volume_data *volume __unused) ++ struct pal_volume_data *volume __attribute__((unused))) + { + + ALOGD("%s:%d:", __func__, __LINE__); +@@ -1119,8 +1119,8 @@ int32_t pal_gef_rw_param(uint32_t param_id, void *param_payload, + return 0; + } + +-int32_t pal_gef_rw_param_acdb(uint32_t param_id __unused, void *param_payload, +- size_t payload_size __unused, pal_device_id_t pal_device_id, ++int32_t pal_gef_rw_param_acdb(uint32_t param_id __attribute__((unused)), void *param_payload, ++ size_t payload_size __attribute__((unused)), pal_device_id_t pal_device_id, + pal_stream_type_t pal_stream_type, uint32_t sample_rate, + uint32_t instance_id, uint32_t dir, bool is_play) + { +diff --git a/plugins/codecs/bt_aptx.c b/plugins/codecs/bt_aptx.c +index f13caaba..9105a655 100644 +--- a/plugins/codecs/bt_aptx.c ++++ b/plugins/codecs/bt_aptx.c +@@ -636,7 +636,7 @@ static uint64_t bt_aptx_get_codec_latency(bt_codec_t *codec) + return bt_aptx_get_decoder_latency(codec); + } + +-int bt_aptx_query_num_codecs(bt_codec_t *codec __unused) { ++int bt_aptx_query_num_codecs(bt_codec_t *codec __attribute__((unused))) { + ALOGV("%s", __func__); + return NUM_CODEC; + } +diff --git a/plugins/codecs/bt_ble.c b/plugins/codecs/bt_ble.c +index f6262b5b..175703a6 100644 +--- a/plugins/codecs/bt_ble.c ++++ b/plugins/codecs/bt_ble.c +@@ -320,7 +320,7 @@ static uint64_t bt_ble_get_codec_latency(bt_codec_t *codec) + return bt_ble_get_decoder_latency(codec); + } + +-int bt_ble_query_num_codecs(bt_codec_t *codec __unused) { ++int bt_ble_query_num_codecs(bt_codec_t *codec __attribute__((unused))) { + ALOGV("%s", __func__); + return NUM_CODEC; + } +diff --git a/plugins/codecs/bt_bundle.c b/plugins/codecs/bt_bundle.c +index 41533cc9..8f109a0f 100644 +--- a/plugins/codecs/bt_bundle.c ++++ b/plugins/codecs/bt_bundle.c +@@ -247,7 +247,7 @@ free_payload: + return ret; + } + +-static int aac_pack_dec_config(bt_codec_t *codec __unused, void *src __unused, void **dst __unused) { ++static int aac_pack_dec_config(bt_codec_t *codec __attribute__((unused)), void *src __attribute__((unused)), void **dst __attribute__((unused))) { + audio_aac_decoder_config_t *aac_bt_cfg = NULL; + bt_enc_payload_t *dec_payload = NULL; + struct payload_media_fmt_aac_t *media_fmt_aac = NULL; +@@ -827,7 +827,7 @@ static uint64_t bt_bundle_get_codec_latency(bt_codec_t *codec) + return bt_bundle_get_decoder_latency(codec); + } + +-int bt_bundle_query_num_codecs(bt_codec_t *codec __unused) { ++int bt_bundle_query_num_codecs(bt_codec_t *codec __attribute__((unused))) { + ALOGV("%s", __func__); + return NUM_CODEC; + } +diff --git a/resource_manager/inc/ResourceManager.h b/resource_manager/inc/ResourceManager.h +index 513aae7c..08ec8015 100644 +--- a/resource_manager/inc/ResourceManager.h ++++ b/resource_manager/inc/ResourceManager.h +@@ -947,7 +947,7 @@ public: + void restoreInternalECRefs(); + bool checkStreamMatch(Stream *target, Stream *ref); + +- static void endTag(void *userdata __unused, const XML_Char *tag_name); ++ static void endTag(void *userdata __attribute__((unused)), const XML_Char *tag_name); + static void snd_reset_data_buf(struct xml_userdata *data); + static void snd_process_data_buf(struct xml_userdata *data, const XML_Char *tag_name); + static void process_device_info(struct xml_userdata *data, const XML_Char *tag_name); +@@ -964,7 +964,7 @@ public: + static void processCardInfo(struct xml_userdata *data, const XML_Char *tag_name); + static void processSpkrTempCtrls(const XML_Char **attr); + static void processBTCodecInfo(const XML_Char **attr, const int attr_count); +- static void startTag(void *userdata __unused, const XML_Char *tag_name, const XML_Char **attr); ++ static void startTag(void *userdata __attribute__((unused)), const XML_Char *tag_name, const XML_Char **attr); + static void snd_data_handler(void *userdata, const XML_Char *s, int len); + static void processDeviceIdProp(struct xml_userdata *data, const XML_Char *tag_name); + static void processDeviceCapability(struct xml_userdata *data, const XML_Char *tag_name); +diff --git a/resource_manager/src/ResourceManager.cpp b/resource_manager/src/ResourceManager.cpp +index 796c6661..03495ba0 100644 +--- a/resource_manager/src/ResourceManager.cpp ++++ b/resource_manager/src/ResourceManager.cpp +@@ -672,7 +672,7 @@ std::vector> ResourceManager::listAllBackEndIds + {PAL_DEVICE_IN_MAX, {std::string{ "" }}}, + }; + +-void agmServiceCrashHandler(uint64_t cookie __unused) ++void agmServiceCrashHandler(uint64_t cookie __attribute__((unused))) + { + PAL_ERR(LOG_TAG,"AGM service crashed :( "); + _exit(1); +@@ -10331,7 +10331,7 @@ exit: + } + + int ResourceManager::getParameter(uint32_t param_id, void **param_payload, +- size_t *payload_size, void *query __unused) ++ size_t *payload_size, void *query __attribute__((unused))) + { + int status = 0; + +@@ -10483,7 +10483,7 @@ exit: + + + int ResourceManager::getParameter(uint32_t param_id, void *param_payload, +- size_t payload_size __unused, ++ size_t payload_size __attribute__((unused)), + pal_device_id_t pal_device_id, + pal_stream_type_t pal_stream_type) + { +@@ -11595,7 +11595,7 @@ exit_no_unlock: + + + int ResourceManager::setParameter(uint32_t param_id, void *param_payload, +- size_t payload_size __unused, ++ size_t payload_size __attribute__((unused)), + pal_device_id_t pal_device_id, + pal_stream_type_t pal_stream_type) + { +@@ -11644,7 +11644,7 @@ int ResourceManager::setParameter(uint32_t param_id, void *param_payload, + + + int ResourceManager::rwParameterACDB(uint32_t paramId, void *paramPayload, +- size_t payloadSize __unused, pal_device_id_t palDeviceId, ++ size_t payloadSize __attribute__((unused)), pal_device_id_t palDeviceId, + pal_stream_type_t palStreamType, uint32_t sampleRate, + uint32_t instanceId, bool isParamWrite, bool isPlay) + { +diff --git a/session/inc/ACDEngine.h b/session/inc/ACDEngine.h +index cf776128..769665eb 100644 +--- a/session/inc/ACDEngine.h ++++ b/session/inc/ACDEngine.h +@@ -79,7 +79,7 @@ private: + int32_t PopulateSoundModel(std::string model_file_name, uint32_t model_uuid); + int32_t PopulateEventPayload(); + void ParseEventAndNotifyClient(); +- void HandleSessionEvent(uint32_t event_id __unused, void *data, uint32_t size); ++ void HandleSessionEvent(uint32_t event_id __attribute__((unused)), void *data, uint32_t size); + bool AreOtherStreamsAttached(Stream *s); + void UpdateModelCount(struct pal_param_context_list *context_cfg, bool enable); + void AddEventInfoForStream(Stream *s, struct acd_recognition_cfg *recog_cfg); +diff --git a/session/inc/Session.h b/session/inc/Session.h +index 319d3192..18b2e343 100644 +--- a/session/inc/Session.h ++++ b/session/inc/Session.h +@@ -145,10 +145,10 @@ public: + virtual int open(Stream * s) = 0; + virtual int prepare(Stream * s) = 0; + virtual int setConfig(Stream * s, configType type, int tag) = 0; +- virtual int setConfig(Stream * s __unused, configType type __unused, uint32_t tag1 __unused, +- uint32_t tag2 __unused, uint32_t tag3 __unused) {return 0;}; +- virtual int setConfig(Stream * s __unused, configType type __unused, int tag __unused, int dir __unused) {return 0;}; +- virtual int setTKV(Stream * s __unused, configType type __unused, effect_pal_payload_t *payload __unused) {return 0;}; ++ virtual int setConfig(Stream * s __attribute__((unused)), configType type __attribute__((unused)), uint32_t tag1 __attribute__((unused)), ++ uint32_t tag2 __attribute__((unused)), uint32_t tag3 __attribute__((unused))) {return 0;}; ++ virtual int setConfig(Stream * s __attribute__((unused)), configType type __attribute__((unused)), int tag __attribute__((unused)), int dir __attribute__((unused))) {return 0;}; ++ virtual int setTKV(Stream * s __attribute__((unused)), configType type __attribute__((unused)), effect_pal_payload_t *payload __attribute__((unused))) {return 0;}; + //virtual int getConfig(Stream * s) = 0; + virtual int start(Stream * s) = 0; + virtual int pause(Stream * s); +@@ -156,17 +156,17 @@ public: + virtual int resume(Stream * s); + virtual int stop(Stream * s) = 0; + virtual int close(Stream * s) = 0; +- virtual int readBufferInit(Stream *s __unused, size_t noOfBuf __unused, size_t bufSize __unused, int flag __unused) {return 0;}; +- virtual int writeBufferInit(Stream *s __unused, size_t noOfBuf __unused, size_t bufSize __unused, int flag __unused) {return 0;}; +- virtual int read(Stream *s __unused, int tag __unused, struct pal_buffer *buf __unused, int * size __unused) {return 0;}; +- virtual int write(Stream *s __unused, int tag __unused, struct pal_buffer *buf __unused, int * size __unused, int flag __unused) {return 0;}; +- virtual int getParameters(Stream *s __unused, int tagId __unused, uint32_t param_id __unused, void **payload __unused) {return 0;}; +- virtual int setParameters(Stream *s __unused, int tagId __unused, uint32_t param_id __unused, void *payload __unused) {return 0;}; +- virtual int registerCallBack(session_callback cb __unused, uint64_t cookie __unused) {return 0;}; +- virtual int drain(pal_drain_type_t type __unused) {return 0;}; ++ virtual int readBufferInit(Stream *s __attribute__((unused)), size_t noOfBuf __attribute__((unused)), size_t bufSize __attribute__((unused)), int flag __attribute__((unused))) {return 0;}; ++ virtual int writeBufferInit(Stream *s __attribute__((unused)), size_t noOfBuf __attribute__((unused)), size_t bufSize __attribute__((unused)), int flag __attribute__((unused))) {return 0;}; ++ virtual int read(Stream *s __attribute__((unused)), int tag __attribute__((unused)), struct pal_buffer *buf __attribute__((unused)), int * size __attribute__((unused))) {return 0;}; ++ virtual int write(Stream *s __attribute__((unused)), int tag __attribute__((unused)), struct pal_buffer *buf __attribute__((unused)), int * size __attribute__((unused)), int flag __attribute__((unused))) {return 0;}; ++ virtual int getParameters(Stream *s __attribute__((unused)), int tagId __attribute__((unused)), uint32_t param_id __attribute__((unused)), void **payload __attribute__((unused))) {return 0;}; ++ virtual int setParameters(Stream *s __attribute__((unused)), int tagId __attribute__((unused)), uint32_t param_id __attribute__((unused)), void *payload __attribute__((unused))) {return 0;}; ++ virtual int registerCallBack(session_callback cb __attribute__((unused)), uint64_t cookie __attribute__((unused))) {return 0;}; ++ virtual int drain(pal_drain_type_t type __attribute__((unused))) {return 0;}; + virtual int flush() {return 0;}; +- virtual void setEventPayload(uint32_t event_id __unused, void *payload __unused, size_t payload_size __unused) { }; +- virtual int getTimestamp(struct pal_session_time *stime __unused) {return 0;}; ++ virtual void setEventPayload(uint32_t event_id __attribute__((unused)), void *payload __attribute__((unused)), size_t payload_size __attribute__((unused))) { }; ++ virtual int getTimestamp(struct pal_session_time *stime __attribute__((unused))) {return 0;}; + /*TODO need to implement connect/disconnect in basecase*/ + virtual int setupSessionDevice(Stream* streamHandle, pal_stream_type_t streamType, + std::shared_ptr deviceToCconnect) = 0; +@@ -178,7 +178,7 @@ public: + void getSamplerateChannelBitwidthTags(struct pal_media_config *config, + uint32_t &sr_tag, uint32_t &ch_tag, uint32_t &bitwidth_tag); + virtual int32_t getFrontEndId(uint32_t ldir) {return -EINVAL;} +- virtual uint32_t getMIID(const char *backendName __unused, uint32_t tagId __unused, uint32_t *miid __unused) { return -EINVAL; } ++ virtual uint32_t getMIID(const char *backendName __attribute__((unused)), uint32_t tagId __attribute__((unused)), uint32_t *miid __attribute__((unused))) { return -EINVAL; } + int getEffectParameters(Stream *s, effect_pal_payload_t *effectPayload); + int setEffectParameters(Stream *s, effect_pal_payload_t *effectPayload); + int rwACDBParameters(void *payload, uint32_t sampleRate, bool isParamWrite); +@@ -187,17 +187,17 @@ public: + bool isParamWrite, Stream *s); + int NotifyChargerConcurrency(std::shared_ptrrm, bool state); + int EnableChargerConcurrency(std::shared_ptrrm, Stream *s); +- virtual struct mixer_ctl* getFEMixerCtl(const char *controlName __unused, int *device __unused, pal_stream_direction_t dir __unused) {return nullptr;} +- virtual int createMmapBuffer(Stream *s __unused, int32_t min_size_frames __unused, +- struct pal_mmap_buffer *info __unused) {return -EINVAL;} +- virtual int GetMmapPosition(Stream *s __unused, struct pal_mmap_position *position __unused) {return -EINVAL;} +- virtual int ResetMmapBuffer(Stream *s __unused) {return -EINVAL;} +- virtual int openGraph(Stream *s __unused) { return 0; } +- virtual int getTagsWithModuleInfo(Stream *s __unused, size_t *size __unused, +- uint8_t *payload __unused) {return -EINVAL;} ++ virtual struct mixer_ctl* getFEMixerCtl(const char *controlName __attribute__((unused)), int *device __attribute__((unused)), pal_stream_direction_t dir __attribute__((unused))) {return nullptr;} ++ virtual int createMmapBuffer(Stream *s __attribute__((unused)), int32_t min_size_frames __attribute__((unused)), ++ struct pal_mmap_buffer *info __attribute__((unused))) {return -EINVAL;} ++ virtual int GetMmapPosition(Stream *s __attribute__((unused)), struct pal_mmap_position *position __attribute__((unused))) {return -EINVAL;} ++ virtual int ResetMmapBuffer(Stream *s __attribute__((unused))) {return -EINVAL;} ++ virtual int openGraph(Stream *s __attribute__((unused))) { return 0; } ++ virtual int getTagsWithModuleInfo(Stream *s __attribute__((unused)), size_t *size __attribute__((unused)), ++ uint8_t *payload __attribute__((unused))) {return -EINVAL;} + virtual int checkAndSetExtEC(const std::shared_ptr& rm, + Stream *s, bool is_enable); +- virtual void AdmRoutingChange(Stream *s __unused) { }; ++ virtual void AdmRoutingChange(Stream *s __attribute__((unused))) { }; + private: + uint32_t getModuleInfo(const char *control, uint32_t tagId, uint32_t *miid, struct mixer_ctl **ctl, int *device); + int setEffectParametersTKV(Stream *s, effect_pal_payload_t *effectPayload); +diff --git a/session/inc/SessionAgm.h b/session/inc/SessionAgm.h +index b9b304c5..1903266b 100644 +--- a/session/inc/SessionAgm.h ++++ b/session/inc/SessionAgm.h +@@ -86,36 +86,36 @@ public: + virtual ~SessionAgm(); + int open(Stream * s) override; + int prepare(Stream * s) override; +- int setConfig(Stream * s __unused, configType type __unused, int tag __unused) {return -EINVAL;} ++ int setConfig(Stream * s __attribute__((unused)), configType type __attribute__((unused)), int tag __attribute__((unused))) {return -EINVAL;} + int start(Stream * s) override; + int stop(Stream * s) override; + int close(Stream * s) override; + int pause(Stream * s) override; + int resume(Stream * s) override; +- int readBufferInit(Stream *s __unused, size_t noOfBuf __unused, +- size_t bufSize __unused, int flag __unused) {return -EINVAL;} +- int writeBufferInit(Stream *s __unused, size_t noOfBuf __unused, +- size_t bufSize __unused, int flag __unused) {return -EINVAL;} ++ int readBufferInit(Stream *s __attribute__((unused)), size_t noOfBuf __attribute__((unused)), ++ size_t bufSize __attribute__((unused)), int flag __attribute__((unused))) {return -EINVAL;} ++ int writeBufferInit(Stream *s __attribute__((unused)), size_t noOfBuf __attribute__((unused)), ++ size_t bufSize __attribute__((unused)), int flag __attribute__((unused))) {return -EINVAL;} + int setParameters(Stream *s, int tagId, uint32_t param_id, void *payload); + int getParameters(Stream *s, int tagId, uint32_t param_id, void **payload); + int read(Stream *s, int tag, struct pal_buffer *buf, int * size) override; + int write(Stream *s, int tag, struct pal_buffer *buf, int * size, int flag) override; +- int setECRef(Stream *s __unused, std::shared_ptr rx_dev __unused, bool is_enable __unused) {return 0;}; ++ int setECRef(Stream *s __attribute__((unused)), std::shared_ptr rx_dev __attribute__((unused)), bool is_enable __attribute__((unused))) {return 0;}; + int registerCallBack(session_callback cb, uint64_t cookie); + int drain(pal_drain_type_t type); + int flush(); + int suspend(Stream * s); + int getTagsWithModuleInfo(Stream *s, size_t *size, uint8_t *payload) override; +- int getTimestamp(struct pal_session_time *stime __unused) {return 0;}; +- int setupSessionDevice(Stream* streamHandle __unused, pal_stream_type_t streamType __unused, +- std::shared_ptr deviceToConnect __unused) {return 0;}; +- int connectSessionDevice(Stream* streamHandle __unused, pal_stream_type_t streamType __unused, +- std::shared_ptr deviceToConnect __unused) {return 0;}; +- int disconnectSessionDevice(Stream* streamHandle __unused, pal_stream_type_t streamType __unused, +- std::shared_ptr deviceToDisconnect __unused) {return 0;}; +- uint32_t getMIID(const char *backendName __unused, uint32_t tagId __unused, uint32_t *miid __unused) ++ int getTimestamp(struct pal_session_time *stime __attribute__((unused))) {return 0;}; ++ int setupSessionDevice(Stream* streamHandle __attribute__((unused)), pal_stream_type_t streamType __attribute__((unused)), ++ std::shared_ptr deviceToConnect __attribute__((unused))) {return 0;}; ++ int connectSessionDevice(Stream* streamHandle __attribute__((unused)), pal_stream_type_t streamType __attribute__((unused)), ++ std::shared_ptr deviceToConnect __attribute__((unused))) {return 0;}; ++ int disconnectSessionDevice(Stream* streamHandle __attribute__((unused)), pal_stream_type_t streamType __attribute__((unused)), ++ std::shared_ptr deviceToDisconnect __attribute__((unused))) {return 0;}; ++ uint32_t getMIID(const char *backendName __attribute__((unused)), uint32_t tagId __attribute__((unused)), uint32_t *miid __attribute__((unused))) + {return 0;}; +- struct mixer_ctl* getFEMixerCtl(const char *controlName __unused, int *device __unused, pal_stream_direction_t dir __unused) {return 0;} ++ struct mixer_ctl* getFEMixerCtl(const char *controlName __attribute__((unused)), int *device __attribute__((unused)), pal_stream_direction_t dir __attribute__((unused))) {return 0;} + session_callback sessionCb; + uint64_t cbCookie; + int32_t sessionId; +diff --git a/session/inc/SessionAlsaCompress.h b/session/inc/SessionAlsaCompress.h +index 3829869e..19aefd80 100644 +--- a/session/inc/SessionAlsaCompress.h ++++ b/session/inc/SessionAlsaCompress.h +@@ -161,7 +161,7 @@ public: + std::shared_ptr deviceToDisconnect) override; + int32_t getFrontEndId(uint32_t ldir) override; + uint32_t getMIID(const char *backendName, uint32_t tagId, uint32_t *miid) override; +- struct mixer_ctl* getFEMixerCtl(const char *controlName, int *device, pal_stream_direction_t dir __unused) override; ++ struct mixer_ctl* getFEMixerCtl(const char *controlName, int *device, pal_stream_direction_t dir __attribute__((unused))) override; + }; + + #endif //SESSION_ALSACOMPRESS_H +diff --git a/session/inc/SessionAlsaPcm.h b/session/inc/SessionAlsaPcm.h +index a3a8debe..0ccf72ea 100644 +--- a/session/inc/SessionAlsaPcm.h ++++ b/session/inc/SessionAlsaPcm.h +@@ -154,7 +154,7 @@ public: + void releaseAdmFocus(Stream *s); + void setEventPayload(uint32_t event_id, void *payload, size_t payload_size); + int register_asps_event(uint32_t reg); +- int getTagsWithModuleInfo(Stream *s, size_t *size __unused, uint8_t *payload); ++ int getTagsWithModuleInfo(Stream *s, size_t *size __attribute__((unused)), uint8_t *payload); + void retryOpenWithoutEC(Stream *s, unsigned int pcm_flags, struct pcm_config *config); + int reconfigureModule(uint32_t tagID, const char* BE, struct sessionToPayloadParam *data); + }; +diff --git a/session/inc/SessionGsl.h b/session/inc/SessionGsl.h +index 14f2675c..fb09837e 100644 +--- a/session/inc/SessionGsl.h ++++ b/session/inc/SessionGsl.h +@@ -180,7 +180,7 @@ public: + std::shared_ptr deviceToConnect) override; + int disconnectSessionDevice(Stream* streamHandle, pal_stream_type_t streamType, + std::shared_ptr deviceToDisconnect) override; +- uint32_t getMIID(const char *backendName __unused, uint32_t tagId __unused, uint32_t *miid __unused) {return 0;}; ++ uint32_t getMIID(const char *backendName __attribute__((unused)), uint32_t tagId __attribute__((unused)), uint32_t *miid __attribute__((unused))) {return 0;}; + int setECRef(Stream *s, std::shared_ptr rx_dev, bool is_enable) override; + }; + +diff --git a/session/inc/SoundTriggerEngineCapi.h b/session/inc/SoundTriggerEngineCapi.h +index e3e9b86d..09ca4e31 100644 +--- a/session/inc/SoundTriggerEngineCapi.h ++++ b/session/inc/SoundTriggerEngineCapi.h +@@ -54,43 +54,43 @@ public: + uint32_t data_size) override; + int32_t UnloadSoundModel(Stream *s) override; + int32_t StartRecognition(Stream *s) override; +- int32_t RestartRecognition(Stream *s __unused) override; ++ int32_t RestartRecognition(Stream *s __attribute__((unused))) override; + int32_t StopRecognition(Stream *s) override; + void SetDetected(bool detected) override; + +- int32_t GetParameters(uint32_t param_id __unused, void **payload __unused) { ++ int32_t GetParameters(uint32_t param_id __attribute__((unused)), void **payload __attribute__((unused))) { + return 0; + } + int32_t ConnectSessionDevice( +- Stream* stream_handle __unused, +- pal_stream_type_t stream_type __unused, +- std::shared_ptr device_to_connect __unused) { return 0; } ++ Stream* stream_handle __attribute__((unused)), ++ pal_stream_type_t stream_type __attribute__((unused)), ++ std::shared_ptr device_to_connect __attribute__((unused))) { return 0; } + int32_t DisconnectSessionDevice( +- Stream* stream_handle __unused, +- pal_stream_type_t stream_type __unused, +- std::shared_ptr device_to_disconnect __unused, +- bool device_switch_event __unused) { return 0; } ++ Stream* stream_handle __attribute__((unused)), ++ pal_stream_type_t stream_type __attribute__((unused)), ++ std::shared_ptr device_to_disconnect __attribute__((unused)), ++ bool device_switch_event __attribute__((unused))) { return 0; } + int32_t SetupSessionDevice( +- Stream* stream_handle __unused, +- pal_stream_type_t stream_type __unused, +- std::shared_ptr device_to_disconnect __unused) { return 0; } +- int32_t UpdateBufConfig(Stream *s __unused, +- uint32_t hist_buffer_duration __unused, +- uint32_t pre_roll_duration __unused) { ++ Stream* stream_handle __attribute__((unused)), ++ pal_stream_type_t stream_type __attribute__((unused)), ++ std::shared_ptr device_to_disconnect __attribute__((unused))) { return 0; } ++ int32_t UpdateBufConfig(Stream *s __attribute__((unused)), ++ uint32_t hist_buffer_duration __attribute__((unused)), ++ uint32_t pre_roll_duration __attribute__((unused))) { + return 0; + } +- void GetUpdatedBufConfig(uint32_t *hist_buffer_duration __unused, +- uint32_t *pre_roll_duration __unused) {} +- void SetCaptureRequested(bool is_requested __unused) {} ++ void GetUpdatedBufConfig(uint32_t *hist_buffer_duration __attribute__((unused)), ++ uint32_t *pre_roll_duration __attribute__((unused))) {} ++ void SetCaptureRequested(bool is_requested __attribute__((unused))) {} + int32_t setECRef( +- Stream *s __unused, +- std::shared_ptr dev __unused, +- bool is_enable __unused, ++ Stream *s __attribute__((unused)), ++ std::shared_ptr dev __attribute__((unused)), ++ bool is_enable __attribute__((unused)), + bool setEcForFirstTime) { return 0; } + ChronoSteadyClock_t GetDetectedTime(Stream *s) { + return std::chrono::steady_clock::time_point::min(); + } +- void SetVoiceUIInterface(Stream *s __unused, ++ void SetVoiceUIInterface(Stream *s __attribute__((unused)), + std::shared_ptr intf) { + vui_intf_ = intf; + } +diff --git a/session/inc/SoundTriggerEngineGsl.h b/session/inc/SoundTriggerEngineGsl.h +index 7dddfd91..2758c3b5 100644 +--- a/session/inc/SoundTriggerEngineGsl.h ++++ b/session/inc/SoundTriggerEngineGsl.h +@@ -104,7 +104,7 @@ class SoundTriggerEngineGsl : public SoundTriggerEngine { + uint32_t pre_roll_duration) override; + void GetUpdatedBufConfig(uint32_t *hist_buffer_duration, + uint32_t *pre_roll_duration) override; +- void SetDetected(bool detected __unused) {}; ++ void SetDetected(bool detected __attribute__((unused))) {}; + int32_t GetParameters(uint32_t param_id, void **payload) override; + int32_t ConnectSessionDevice( + Stream* stream_handle, +@@ -144,7 +144,7 @@ class SoundTriggerEngineGsl : public SoundTriggerEngine { + uint32_t event_size); + + void ProcessEventTask(); +- void HandleSessionEvent(uint32_t event_id __unused, void *data, uint32_t size); ++ void HandleSessionEvent(uint32_t event_id __attribute__((unused)), void *data, uint32_t size); + int32_t StartBuffering(Stream *s); + int32_t RestartRecognition_l(Stream *s); + int32_t UpdateSessionPayload(Stream *s, st_param_id_type_t param); +diff --git a/session/src/ACDEngine.cpp b/session/src/ACDEngine.cpp +index 102facee..5e459e66 100644 +--- a/session/src/ACDEngine.cpp ++++ b/session/src/ACDEngine.cpp +@@ -364,7 +364,7 @@ void ACDEngine::EventProcessingThread(ACDEngine *engine) + PAL_DBG(LOG_TAG, "Exit"); + } + +-void ACDEngine::HandleSessionEvent(uint32_t event_id __unused, ++void ACDEngine::HandleSessionEvent(uint32_t event_id __attribute__((unused)), + void *data, uint32_t size) + { + void *event_data = calloc(1, size); +diff --git a/session/src/PayloadBuilder.cpp b/session/src/PayloadBuilder.cpp +index 6115edb9..3f5c3f26 100644 +--- a/session/src/PayloadBuilder.cpp ++++ b/session/src/PayloadBuilder.cpp +@@ -2614,7 +2614,7 @@ exit: + + /** Used for Loopback stream types only */ + int PayloadBuilder::populateStreamPPKV(Stream* s, std::vector > &keyVectorRx, +- std::vector > &keyVectorTx __unused) ++ std::vector > &keyVectorTx __attribute__((unused))) + { + int status = 0; + struct pal_stream_attributes *sattr = NULL; +@@ -3076,8 +3076,8 @@ exit: + return status; + } + +-int PayloadBuilder::populateStreamDeviceKV(Stream* s __unused, int32_t beDevId __unused, +- std::vector > &keyVector __unused) ++int PayloadBuilder::populateStreamDeviceKV(Stream* s __attribute__((unused)), int32_t beDevId __attribute__((unused)), ++ std::vector > &keyVector __attribute__((unused))) + { + int status = 0; + +@@ -3306,8 +3306,8 @@ int PayloadBuilder::populateDevicePPKV(Stream* s, int32_t rxBeDevId, + + int PayloadBuilder::populateStreamCkv(Stream *s, + std::vector > &keyVector, +- int tag __unused, +- struct pal_volume_data **volume_data __unused) ++ int tag __attribute__((unused)), ++ struct pal_volume_data **volume_data __attribute__((unused))) + { + int status = 0; + struct pal_stream_attributes sAttr; +diff --git a/session/src/Session.cpp b/session/src/Session.cpp +index 40ec2745..0fee8f74 100644 +--- a/session/src/Session.cpp ++++ b/session/src/Session.cpp +@@ -292,7 +292,7 @@ exit: + return status; + } + +-int Session::getEffectParameters(Stream *s __unused, effect_pal_payload_t *effectPayload) ++int Session::getEffectParameters(Stream *s __attribute__((unused)), effect_pal_payload_t *effectPayload) + { + int status = 0; + uint8_t *ptr = NULL; +@@ -349,7 +349,7 @@ exit: + return status; + } + +-int Session::setEffectParametersTKV(Stream *s __unused, effect_pal_payload_t *effectPayload) ++int Session::setEffectParametersTKV(Stream *s __attribute__((unused)), effect_pal_payload_t *effectPayload) + { + int status = 0; + int device = 0; +@@ -425,7 +425,7 @@ exit: + return status; + } + +-int Session::setEffectParametersNonTKV(Stream *s __unused, effect_pal_payload_t *effectPayload) ++int Session::setEffectParametersNonTKV(Stream *s __attribute__((unused)), effect_pal_payload_t *effectPayload) + { + int status = 0; + int device = 0; +@@ -647,12 +647,12 @@ int Session::freeCustomPayload() + return 0; + } + +-int Session::pause(Stream * s __unused) ++int Session::pause(Stream * s __attribute__((unused))) + { + return 0; + } + +-int Session::resume(Stream * s __unused) ++int Session::resume(Stream * s __attribute__((unused))) + { + return 0; + } +diff --git a/session/src/SessionAgm.cpp b/session/src/SessionAgm.cpp +index 1958aa6e..110d8664 100644 +--- a/session/src/SessionAgm.cpp ++++ b/session/src/SessionAgm.cpp +@@ -47,7 +47,7 @@ + + #define MICRO_SECS_PER_SEC (1000000LL) + +-void eventCallback(uint32_t session_id, struct agm_event_cb_params *event_params __unused, ++void eventCallback(uint32_t session_id, struct agm_event_cb_params *event_params __attribute__((unused)), + void *client_data) + { + struct pal_stream_attributes sAttr; +@@ -429,7 +429,7 @@ exit: + return status; + } + +-int SessionAgm::start(Stream * s __unused) ++int SessionAgm::start(Stream * s __attribute__((unused))) + { + int32_t status = 0; + rm->voteSleepMonitor(s, true); +@@ -442,17 +442,17 @@ int SessionAgm::start(Stream * s __unused) + return status; + } + +-int SessionAgm::pause(Stream * s __unused) ++int SessionAgm::pause(Stream * s __attribute__((unused))) + { + return -EINVAL; + } + +-int SessionAgm::resume(Stream * s __unused) ++int SessionAgm::resume(Stream * s __attribute__((unused))) + { + return -EINVAL; + } + +-int SessionAgm::stop(Stream * s __unused) ++int SessionAgm::stop(Stream * s __attribute__((unused))) + { + int32_t status = 0; + +@@ -463,7 +463,7 @@ int SessionAgm::stop(Stream * s __unused) + return status; + } + +-int SessionAgm::read(Stream *s, int tag __unused, struct pal_buffer *buf, int *size ) ++int SessionAgm::read(Stream *s, int tag __attribute__((unused)), struct pal_buffer *buf, int *size ) + { + uint32_t bytes_read = 0; + int status; +@@ -510,7 +510,7 @@ int SessionAgm::read(Stream *s, int tag __unused, struct pal_buffer *buf, int *s + return status; + } + +-int SessionAgm::fileWrite(Stream *s __unused, int tag __unused, struct pal_buffer *buf, int * size, int flag __unused) ++int SessionAgm::fileWrite(Stream *s __attribute__((unused)), int tag __attribute__((unused)), struct pal_buffer *buf, int * size, int flag __attribute__((unused))) + { + std::fstream fs; + PAL_DBG(LOG_TAG, "Enter."); +@@ -527,7 +527,7 @@ int SessionAgm::fileWrite(Stream *s __unused, int tag __unused, struct pal_buffe + return 0; + } + +-int SessionAgm::write(Stream *s, int tag __unused, struct pal_buffer *buf, int * size, int flag __unused) ++int SessionAgm::write(Stream *s, int tag __attribute__((unused)), struct pal_buffer *buf, int * size, int flag __attribute__((unused))) + { + size_t bytes_written = 0; + int status; +@@ -576,7 +576,7 @@ int SessionAgm::write(Stream *s, int tag __unused, struct pal_buffer *buf, int * + return status; + } + +-int SessionAgm::setParameters(Stream *s __unused, int tagId __unused, uint32_t param_id, void *payload) ++int SessionAgm::setParameters(Stream *s __attribute__((unused)), int tagId __attribute__((unused)), uint32_t param_id, void *payload) + { + int32_t status = 0; + pal_param_payload *param_payload = (pal_param_payload *)payload; +@@ -660,7 +660,7 @@ int SessionAgm::drain(pal_drain_type_t type) + return status; + } + +-int SessionAgm::getTagsWithModuleInfo(Stream *s __unused, size_t *size, uint8_t *payload) ++int SessionAgm::getTagsWithModuleInfo(Stream *s __attribute__((unused)), size_t *size, uint8_t *payload) + { + int status = 0; + status = agm_session_aif_get_tag_module_info(sessionId, 0, payload, size); +@@ -670,7 +670,7 @@ int SessionAgm::getTagsWithModuleInfo(Stream *s __unused, size_t *size, uint8_t + return status; + } + +-int SessionAgm::getParameters(Stream *s __unused, int tagId __unused, uint32_t param_id __unused, void **payload __unused) ++int SessionAgm::getParameters(Stream *s __attribute__((unused)), int tagId __attribute__((unused)), uint32_t param_id __attribute__((unused)), void **payload __attribute__((unused))) + { + return 0; + } +diff --git a/session/src/SessionAlsaCompress.cpp b/session/src/SessionAlsaCompress.cpp +index 626e1442..ef8c3eb7 100644 +--- a/session/src/SessionAlsaCompress.cpp ++++ b/session/src/SessionAlsaCompress.cpp +@@ -1034,12 +1034,12 @@ int SessionAlsaCompress::connectSessionDevice(Stream* streamHandle, pal_stream_t + return status; + } + +-int SessionAlsaCompress::prepare(Stream * s __unused) ++int SessionAlsaCompress::prepare(Stream * s __attribute__((unused))) + { + return 0; + } + +-int SessionAlsaCompress::setTKV(Stream * s __unused, configType type, effect_pal_payload_t *effectPayload) ++int SessionAlsaCompress::setTKV(Stream * s __attribute__((unused)), configType type, effect_pal_payload_t *effectPayload) + { + int status = 0; + uint32_t tagsent; +@@ -1766,7 +1766,7 @@ int SessionAlsaCompress::pause(Stream * s) + return status; + } + +-int SessionAlsaCompress::resume(Stream * s __unused) ++int SessionAlsaCompress::resume(Stream * s __attribute__((unused))) + { + int32_t status = 0; + +@@ -1781,7 +1781,7 @@ int SessionAlsaCompress::resume(Stream * s __unused) + return status; + } + +-int SessionAlsaCompress::stop(Stream * s __unused) ++int SessionAlsaCompress::stop(Stream * s __attribute__((unused))) + { + int32_t status = 0; + size_t payload_size = 0; +@@ -1971,7 +1971,7 @@ int SessionAlsaCompress::close(Stream * s) + return status; + } + +-int SessionAlsaCompress::read(Stream *s, int tag __unused, ++int SessionAlsaCompress::read(Stream *s, int tag __attribute__((unused)), + struct pal_buffer *buf, int *size) { + int status = 0, bytesRead = 0, offset = 0; + struct pal_stream_attributes sAttr = {}; +@@ -2000,7 +2000,7 @@ int SessionAlsaCompress::read(Stream *s, int tag __unused, + return status; + } + +-int SessionAlsaCompress::fileWrite(Stream *s __unused, int tag __unused, struct pal_buffer *buf, int * size, int flag __unused) ++int SessionAlsaCompress::fileWrite(Stream *s __attribute__((unused)), int tag __attribute__((unused)), struct pal_buffer *buf, int * size, int flag __attribute__((unused))) + { + std::fstream fs; + PAL_DBG(LOG_TAG, "Enter."); +@@ -2017,7 +2017,7 @@ int SessionAlsaCompress::fileWrite(Stream *s __unused, int tag __unused, struct + return 0; + } + +-int SessionAlsaCompress::write(Stream *s __unused, int tag __unused, struct pal_buffer *buf, int * size, int flag __unused) ++int SessionAlsaCompress::write(Stream *s __attribute__((unused)), int tag __attribute__((unused)), struct pal_buffer *buf, int * size, int flag __attribute__((unused))) + { + int bytes_written = 0; + int status; +@@ -2063,16 +2063,16 @@ int SessionAlsaCompress::write(Stream *s __unused, int tag __unused, struct pal_ + return 0; + } + +-int SessionAlsaCompress::readBufferInit(Stream *s __unused, size_t noOfBuf __unused, size_t bufSize __unused, int flag __unused) ++int SessionAlsaCompress::readBufferInit(Stream *s __attribute__((unused)), size_t noOfBuf __attribute__((unused)), size_t bufSize __attribute__((unused)), int flag __attribute__((unused))) + { + return 0; + } +-int SessionAlsaCompress::writeBufferInit(Stream *s __unused, size_t noOfBuf __unused, size_t bufSize __unused, int flag __unused) ++int SessionAlsaCompress::writeBufferInit(Stream *s __attribute__((unused)), size_t noOfBuf __attribute__((unused)), size_t bufSize __attribute__((unused)), int flag __attribute__((unused))) + { + return 0; + } + +-struct mixer_ctl* SessionAlsaCompress::getFEMixerCtl(const char *controlName, int *device, pal_stream_direction_t dir __unused) ++struct mixer_ctl* SessionAlsaCompress::getFEMixerCtl(const char *controlName, int *device, pal_stream_direction_t dir __attribute__((unused))) + { + std::ostringstream CntrlName; + struct mixer_ctl *ctl; +@@ -2093,7 +2093,7 @@ struct mixer_ctl* SessionAlsaCompress::getFEMixerCtl(const char *controlName, in + return ctl; + } + +-int32_t SessionAlsaCompress::getFrontEndId(uint32_t ldir __unused) ++int32_t SessionAlsaCompress::getFrontEndId(uint32_t ldir __attribute__((unused))) + { + int32_t device = -EINVAL; + +@@ -2123,7 +2123,7 @@ uint32_t SessionAlsaCompress::getMIID(const char *backendName, uint32_t tagId, u + return status; + } + +-int SessionAlsaCompress::setParameters(Stream *s __unused, int tagId, uint32_t param_id, void *payload) ++int SessionAlsaCompress::setParameters(Stream *s __attribute__((unused)), int tagId, uint32_t param_id, void *payload) + { + pal_param_payload *param_payload = (pal_param_payload *)payload; + int status = 0; +@@ -2495,7 +2495,7 @@ int SessionAlsaCompress::drain(pal_drain_type_t type) + return 0; + } + +-int SessionAlsaCompress::getParameters(Stream *s __unused, int tagId __unused, uint32_t param_id __unused, void **payload __unused) ++int SessionAlsaCompress::getParameters(Stream *s __attribute__((unused)), int tagId __attribute__((unused)), uint32_t param_id __attribute__((unused)), void **payload __attribute__((unused))) + { + return 0; + } +@@ -2511,7 +2511,7 @@ int SessionAlsaCompress::getTimestamp(struct pal_session_time *stime) + return status; + } + +-int SessionAlsaCompress::setECRef(Stream *s __unused, std::shared_ptr rx_dev __unused, bool is_enable __unused) ++int SessionAlsaCompress::setECRef(Stream *s __attribute__((unused)), std::shared_ptr rx_dev __attribute__((unused)), bool is_enable __attribute__((unused))) + { + int status = 0; + struct pal_stream_attributes sAttr = {}; +diff --git a/session/src/SessionAlsaPcm.cpp b/session/src/SessionAlsaPcm.cpp +index 102332b3..f7cec5d0 100644 +--- a/session/src/SessionAlsaPcm.cpp ++++ b/session/src/SessionAlsaPcm.cpp +@@ -2465,7 +2465,7 @@ int SessionAlsaPcm::connectSessionDevice(Stream* streamHandle, pal_stream_type_t + return status; + } + +-int SessionAlsaPcm::read(Stream *s, int tag __unused, struct pal_buffer *buf, int * size) ++int SessionAlsaPcm::read(Stream *s, int tag __attribute__((unused)), struct pal_buffer *buf, int * size) + { + int status = 0, bytesRead = 0, bytesToRead = 0, offset = 0, pcmReadSize = 0; + struct pal_stream_attributes sAttr = {}; +@@ -3393,7 +3393,7 @@ exit: + return status; + } + +-int SessionAlsaPcm::getParameters(Stream *s __unused, int tagId, uint32_t param_id, void **payload) ++int SessionAlsaPcm::getParameters(Stream *s __attribute__((unused)), int tagId, uint32_t param_id, void **payload) + { + int status = 0; + uint8_t *ptr = NULL; +@@ -3538,7 +3538,7 @@ int SessionAlsaPcm::getTimestamp(struct pal_session_time *stime) + return status; + } + +-int SessionAlsaPcm::drain(pal_drain_type_t type __unused) ++int SessionAlsaPcm::drain(pal_drain_type_t type __attribute__((unused))) + { + return 0; + } +@@ -3565,7 +3565,7 @@ bool SessionAlsaPcm::isActive() + return mState == SESSION_STARTED; + } + +-int SessionAlsaPcm::getTagsWithModuleInfo(Stream *s, size_t *size __unused, uint8_t *payload) ++int SessionAlsaPcm::getTagsWithModuleInfo(Stream *s, size_t *size __attribute__((unused)), uint8_t *payload) + { + int status = 0; + struct pal_stream_attributes sAttr = {}; +diff --git a/session/src/SessionAlsaVoice.cpp b/session/src/SessionAlsaVoice.cpp +index fc897d6a..79cb61c4 100644 +--- a/session/src/SessionAlsaVoice.cpp ++++ b/session/src/SessionAlsaVoice.cpp +@@ -211,7 +211,7 @@ uint32_t SessionAlsaVoice::getMIID(const char *backendName, uint32_t tagId, uint + } + + +-int SessionAlsaVoice::prepare(Stream * s __unused) ++int SessionAlsaVoice::prepare(Stream * s __attribute__((unused))) + { + return 0; + } +@@ -369,7 +369,7 @@ exit: + return status; + } + +-int SessionAlsaVoice::populate_vsid_payload(Stream *s __unused) ++int SessionAlsaVoice::populate_vsid_payload(Stream *s __attribute__((unused))) + { + int status = 0; + apm_module_param_data_t* header; +@@ -1166,7 +1166,7 @@ exit: + PAL_DBG(LOG_TAG,"Exit ret: %d", status); + return status; + } +-int SessionAlsaVoice::setParameters(Stream *s, int tagId, uint32_t param_id __unused, void *payload) ++int SessionAlsaVoice::setParameters(Stream *s, int tagId, uint32_t param_id __attribute__((unused)), void *payload) + { + int status = 0; + int device = 0; +@@ -1360,7 +1360,7 @@ if (paramData) { + return status; + } + +-int SessionAlsaVoice::setConfig(Stream * s, configType type __unused, int tag, int dir) ++int SessionAlsaVoice::setConfig(Stream * s, configType type __attribute__((unused)), int tag, int dir) + { + int status = 0; + int device = 0; +@@ -1462,7 +1462,7 @@ exit: + } + + int SessionAlsaVoice::payloadTaged(Stream * s, configType type, int tag, +- int device __unused, int dir){ ++ int device __attribute__((unused)), int dir){ + int status = 0; + uint32_t tagsent; + struct agm_tag_config* tagConfig; +diff --git a/session/src/SoundTriggerEngineCapi.cpp b/session/src/SoundTriggerEngineCapi.cpp +index 5b40009b..26c64b63 100644 +--- a/session/src/SoundTriggerEngineCapi.cpp ++++ b/session/src/SoundTriggerEngineCapi.cpp +@@ -949,7 +949,7 @@ int32_t SoundTriggerEngineCapi::UpdateConfThreshold(Stream *s) + return 0; + } + +-int32_t SoundTriggerEngineCapi::LoadSoundModel(Stream *s __unused, ++int32_t SoundTriggerEngineCapi::LoadSoundModel(Stream *s __attribute__((unused)), + uint8_t *data, uint32_t data_size) + { + int32_t status = 0; +@@ -1080,7 +1080,7 @@ exit: + return status; + } + +-int32_t SoundTriggerEngineCapi::UnloadSoundModel(Stream *s __unused) ++int32_t SoundTriggerEngineCapi::UnloadSoundModel(Stream *s __attribute__((unused))) + { + int32_t status = 0; + +@@ -1143,7 +1143,7 @@ exit: + return status; + } + +-int32_t SoundTriggerEngineCapi::RestartRecognition(Stream *s __unused) ++int32_t SoundTriggerEngineCapi::RestartRecognition(Stream *s __attribute__((unused))) + { + int32_t status = 0; + +@@ -1167,7 +1167,7 @@ exit: + return status; + } + +-int32_t SoundTriggerEngineCapi::StopRecognition(Stream *s __unused) ++int32_t SoundTriggerEngineCapi::StopRecognition(Stream *s __attribute__((unused))) + { + int32_t status = 0; + +diff --git a/session/src/SoundTriggerEngineGsl.cpp b/session/src/SoundTriggerEngineGsl.cpp +index ed9b0b0c..1240c9d8 100644 +--- a/session/src/SoundTriggerEngineGsl.cpp ++++ b/session/src/SoundTriggerEngineGsl.cpp +@@ -1368,7 +1368,7 @@ int32_t SoundTriggerEngineGsl::UpdateEngineConfigOnStart(Stream *s) { + return status; + } + +-void SoundTriggerEngineGsl::HandleSessionEvent(uint32_t event_id __unused, ++void SoundTriggerEngineGsl::HandleSessionEvent(uint32_t event_id __attribute__((unused)), + void *data, uint32_t size) { + int32_t status = 0; + uint32_t pre_roll_sz = 0, ftrt_sz = 0; +diff --git a/stream/inc/Stream.h b/stream/inc/Stream.h +index 08bc86a0..f9c09b23 100644 +--- a/stream/inc/Stream.h ++++ b/stream/inc/Stream.h +@@ -228,7 +228,7 @@ public: + virtual int32_t start() = 0; + virtual int32_t stop() = 0; + virtual int32_t prepare() = 0; +- virtual int32_t drain(pal_drain_type_t type __unused) {return 0;} ++ virtual int32_t drain(pal_drain_type_t type __attribute__((unused))) {return 0;} + virtual int32_t setStreamAttributes(struct pal_stream_attributes *sattr) = 0; + virtual int32_t setVolume(struct pal_volume_data *volume) = 0; + virtual int32_t mute(bool state) = 0; +@@ -251,10 +251,10 @@ public: + virtual int32_t setECRef_l(std::shared_ptr dev, bool is_enable) = 0; + virtual int32_t ssrDownHandler() = 0; + virtual int32_t ssrUpHandler() = 0; +- virtual int32_t createMmapBuffer(int32_t min_size_frames __unused, +- struct pal_mmap_buffer *info __unused) {return -EINVAL;} +- virtual int32_t GetMmapPosition(struct pal_mmap_position *position __unused) {return -EINVAL;} +- virtual int32_t getTagsWithModuleInfo(size_t *size __unused, uint8_t *payload __unused) {return -EINVAL;}; ++ virtual int32_t createMmapBuffer(int32_t min_size_frames __attribute__((unused)), ++ struct pal_mmap_buffer *info __attribute__((unused))) {return -EINVAL;} ++ virtual int32_t GetMmapPosition(struct pal_mmap_position *position __attribute__((unused))) {return -EINVAL;} ++ virtual int32_t getTagsWithModuleInfo(size_t *size __attribute__((unused)), uint8_t *payload __attribute__((unused))) {return -EINVAL;}; + virtual bool ConfigSupportLPI() {return true;}; //Only LPI streams can update their vote to NLPI + int32_t getStreamAttributes(struct pal_stream_attributes *sattr); + int32_t getModifiers(struct modifier_kv *modifiers,uint32_t *noOfModifiers); +@@ -359,10 +359,10 @@ public: + int32_t start() override; + int32_t stop() override; + int32_t prepare() override; +- int32_t setStreamAttributes( struct pal_stream_attributes *sattr __unused) {return 0;}; +- int32_t setVolume( struct pal_volume_data *volume __unused) {return 0;}; +- int32_t mute(bool state __unused) {return 0;}; +- int32_t mute_l(bool state __unused) {return 0;}; ++ int32_t setStreamAttributes( struct pal_stream_attributes *sattr __attribute__((unused))) {return 0;}; ++ int32_t setVolume( struct pal_volume_data *volume __attribute__((unused))) {return 0;}; ++ int32_t mute(bool state __attribute__((unused))) {return 0;}; ++ int32_t mute_l(bool state __attribute__((unused))) {return 0;}; + int32_t pause() {return 0;}; + int32_t pause_l() {return 0;}; + int32_t resume() {return 0;}; +@@ -374,7 +374,7 @@ public: + int32_t setBufInfo(size_t *in_buf_size, size_t in_buf_count, + size_t *out_buf_size, size_t out_buf_count); + +- int32_t addRemoveEffect(pal_audio_effect_t effect __unused, bool enable __unused) {return 0;}; ++ int32_t addRemoveEffect(pal_audio_effect_t effect __attribute__((unused)), bool enable __attribute__((unused))) {return 0;}; + int32_t read(struct pal_buffer *buf) override; + int32_t write(struct pal_buffer *buf) override; + int32_t registerCallBack(pal_stream_callback cb, uint64_t cookie) override; +@@ -384,8 +384,8 @@ public: + static int32_t isSampleRateSupported(uint32_t sampleRate); + static int32_t isChannelSupported(uint32_t numChannels); + static int32_t isBitWidthSupported(uint32_t bitWidth); +- int32_t setECRef(std::shared_ptr dev __unused, bool is_enable __unused) {return 0;}; +- int32_t setECRef_l(std::shared_ptr dev __unused, bool is_enable __unused) {return 0;}; ++ int32_t setECRef(std::shared_ptr dev __attribute__((unused)), bool is_enable __attribute__((unused))) {return 0;}; ++ int32_t setECRef_l(std::shared_ptr dev __attribute__((unused)), bool is_enable __attribute__((unused))) {return 0;}; + int32_t ssrDownHandler() override; + int32_t ssrUpHandler() override; + private: +diff --git a/stream/inc/StreamACD.h b/stream/inc/StreamACD.h +index d16b6f0a..692949c9 100644 +--- a/stream/inc/StreamACD.h ++++ b/stream/inc/StreamACD.h +@@ -89,8 +89,8 @@ class StreamACD : public Stream { + StreamACD(struct pal_stream_attributes *sattr, + struct pal_device *dattr, + uint32_t no_of_devices, +- struct modifier_kv *modifiers __unused, +- uint32_t no_of_modifiers __unused, ++ struct modifier_kv *modifiers __attribute__((unused)), ++ uint32_t no_of_modifiers __attribute__((unused)), + std::shared_ptr rm); + ~StreamACD(); + #ifndef PAL_MEMLOG_UNSUPPORTED +@@ -103,19 +103,19 @@ class StreamACD : public Stream { + int32_t start() override; + int32_t stop() override; + int32_t getTagsWithModuleInfo(size_t *size, uint8_t *payload) override; +- int32_t setStreamAttributes(struct pal_stream_attributes *sattr __unused) { ++ int32_t setStreamAttributes(struct pal_stream_attributes *sattr __attribute__((unused))) { + return 0; + } +- int32_t setVolume(struct pal_volume_data * volume __unused) { return 0; } +- int32_t mute(bool state __unused) override { return 0; } +- int32_t mute_l(bool state __unused) override { return 0; } ++ int32_t setVolume(struct pal_volume_data * volume __attribute__((unused))) { return 0; } ++ int32_t mute(bool state __attribute__((unused))) override { return 0; } ++ int32_t mute_l(bool state __attribute__((unused))) override { return 0; } + int32_t pause() override { return 0; } + int32_t pause_l() override { return 0; } + int32_t resume() override { return 0; } + int32_t resume_l() override { return 0; } + +- int32_t read(struct pal_buffer *buf __unused) {return 0; } +- int32_t write(struct pal_buffer *buf __unused) { return 0; } ++ int32_t read(struct pal_buffer *buf __attribute__((unused))) {return 0; } ++ int32_t write(struct pal_buffer *buf __attribute__((unused))) { return 0; } + + int32_t DisconnectDevice(pal_device_id_t device_id) override; + int32_t ConnectDevice(pal_device_id_t device_id) override; +@@ -127,8 +127,8 @@ class StreamACD : public Stream { + int32_t getCallBack(pal_stream_callback *cb) override; + int32_t getParameters(uint32_t param_id, void **payload) override; + int32_t setParameters(uint32_t param_id, void *payload) override; +- int32_t addRemoveEffect(pal_audio_effect_t effec __unused, +- bool enable __unused) { ++ int32_t addRemoveEffect(pal_audio_effect_t effec __attribute__((unused)), ++ bool enable __attribute__((unused))) { + return -ENOSYS; + } + +diff --git a/stream/inc/StreamCommon.h b/stream/inc/StreamCommon.h +index 514f90d7..1bb57938 100644 +--- a/stream/inc/StreamCommon.h ++++ b/stream/inc/StreamCommon.h +@@ -57,35 +57,35 @@ public: + int32_t start() override; + int32_t stop() override; + int32_t prepare() override {return 0;} +- int32_t setStreamAttributes( struct pal_stream_attributes *sattr __unused) override {return 0;} ++ int32_t setStreamAttributes( struct pal_stream_attributes *sattr __attribute__((unused))) override {return 0;} + int32_t setVolume( struct pal_volume_data *volume) override; +- int32_t mute(bool state __unused) override {return 0;} +- int32_t mute_l(bool state __unused) override {return 0;} ++ int32_t mute(bool state __attribute__((unused))) override {return 0;} ++ int32_t mute_l(bool state __attribute__((unused))) override {return 0;} + int32_t pause() override {return 0;} + int32_t pause_l() override {return 0;} + int32_t resume() override {return 0;} + int32_t resume_l() override {return 0;} + int32_t flush() {return 0;} +- int32_t addRemoveEffect(pal_audio_effect_t effect __unused, bool enable __unused) override {return 0;} +- int32_t read(struct pal_buffer *buf __unused) override {return 0;} +- int32_t write(struct pal_buffer *buf __unused) override {return 0;} ++ int32_t addRemoveEffect(pal_audio_effect_t effect __attribute__((unused)), bool enable __attribute__((unused))) override {return 0;} ++ int32_t read(struct pal_buffer *buf __attribute__((unused))) override {return 0;} ++ int32_t write(struct pal_buffer *buf __attribute__((unused))) override {return 0;} + int32_t registerCallBack(pal_stream_callback cb, uint64_t cookie) override; +- int32_t getCallBack(pal_stream_callback *cb __unused) override {return 0;} +- int32_t getParameters(uint32_t param_id __unused, void **payload __unused) override {return 0;} +- int32_t setParameters(uint32_t param_id __unused, void *payload __unused) override {return 0;} +- int32_t setECRef(std::shared_ptr dev __unused, bool is_enable __unused) override {return 0;} +- int32_t setECRef_l(std::shared_ptr dev __unused, bool is_enable __unused) override {return 0;} ++ int32_t getCallBack(pal_stream_callback *cb __attribute__((unused))) override {return 0;} ++ int32_t getParameters(uint32_t param_id __attribute__((unused)), void **payload __attribute__((unused))) override {return 0;} ++ int32_t setParameters(uint32_t param_id __attribute__((unused)), void *payload __attribute__((unused))) override {return 0;} ++ int32_t setECRef(std::shared_ptr dev __attribute__((unused)), bool is_enable __attribute__((unused))) override {return 0;} ++ int32_t setECRef_l(std::shared_ptr dev __attribute__((unused)), bool is_enable __attribute__((unused))) override {return 0;} + int32_t ssrDownHandler() override; + int32_t ssrUpHandler() override; +- int32_t createMmapBuffer(int32_t min_size_frames __unused, +- struct pal_mmap_buffer *info __unused) override {return 0;} +- int32_t GetMmapPosition(struct pal_mmap_position *position __unused) override {return 0;} ++ int32_t createMmapBuffer(int32_t min_size_frames __attribute__((unused)), ++ struct pal_mmap_buffer *info __attribute__((unused))) override {return 0;} ++ int32_t GetMmapPosition(struct pal_mmap_position *position __attribute__((unused))) override {return 0;} + int32_t start_device(); + int32_t startSession(); + int32_t getTagsWithModuleInfo(size_t *size, uint8_t *payload); +- static int32_t isSampleRateSupported(uint32_t sampleRate __unused) {return 0;} +- static int32_t isChannelSupported(uint32_t numChannels __unused) {return 0;} +- static int32_t isBitWidthSupported(uint32_t bitWidth __unused) {return 0;} ++ static int32_t isSampleRateSupported(uint32_t sampleRate __attribute__((unused))) {return 0;} ++ static int32_t isChannelSupported(uint32_t numChannels __attribute__((unused))) {return 0;} ++ static int32_t isBitWidthSupported(uint32_t bitWidth __attribute__((unused))) {return 0;} + }; + + #endif//STREAMCOMMON_H_ +diff --git a/stream/inc/StreamCommonProxy.h b/stream/inc/StreamCommonProxy.h +index ad0983cd..6b0e03c5 100644 +--- a/stream/inc/StreamCommonProxy.h ++++ b/stream/inc/StreamCommonProxy.h +@@ -43,12 +43,12 @@ class Session; + class StreamCommonProxy : public StreamCommon + { + public: +- StreamCommonProxy(const struct pal_stream_attributes *sattr, struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, +- const struct modifier_kv *modifiers __unused, const uint32_t no_of_modifiers __unused, ++ StreamCommonProxy(const struct pal_stream_attributes *sattr, struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), ++ const struct modifier_kv *modifiers __attribute__((unused)), const uint32_t no_of_modifiers __attribute__((unused)), + const std::shared_ptr rm); + virtual ~StreamCommonProxy(); + int32_t getParameters(uint32_t param_id, void **payload); + }; + +-#endif//StreamCommonProxy_H_ +\ No newline at end of file ++#endif//StreamCommonProxy_H_ +diff --git a/stream/inc/StreamContextProxy.h b/stream/inc/StreamContextProxy.h +index 0e4815c0..977f814d 100644 +--- a/stream/inc/StreamContextProxy.h ++++ b/stream/inc/StreamContextProxy.h +@@ -39,14 +39,14 @@ class Session; + class StreamContextProxy : public StreamCommon + { + public: +- StreamContextProxy(const struct pal_stream_attributes *sattr, struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, +- const struct modifier_kv *modifiers __unused, const uint32_t no_of_modifiers __unused, ++ StreamContextProxy(const struct pal_stream_attributes *sattr, struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), ++ const struct modifier_kv *modifiers __attribute__((unused)), const uint32_t no_of_modifiers __attribute__((unused)), + const std::shared_ptr rm); //make this just pass parameters to Stream and avoid duplicating code between StreamPCM and StreamCompress + //StreamContextProxy(); + virtual ~StreamContextProxy(); + int32_t setParameters(uint32_t param_id, void *payload); +- int32_t setVolume( struct pal_volume_data *volume __unused) {return 0;} ++ int32_t setVolume( struct pal_volume_data *volume __attribute__((unused))) {return 0;} + private: + void ParseASPSEventPayload(uint32_t event_id, + uint32_t event_size, void *data); +diff --git a/stream/inc/StreamSensorPCMData.h b/stream/inc/StreamSensorPCMData.h +index 41710832..07ee0b92 100644 +--- a/stream/inc/StreamSensorPCMData.h ++++ b/stream/inc/StreamSensorPCMData.h +@@ -42,11 +42,11 @@ + class StreamSensorPCMData : public StreamCommon + { + public: +- StreamSensorPCMData(const struct pal_stream_attributes *sattr __unused, +- struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, +- const struct modifier_kv *modifiers __unused, +- const uint32_t no_of_modifiers __unused, ++ StreamSensorPCMData(const struct pal_stream_attributes *sattr __attribute__((unused)), ++ struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), ++ const struct modifier_kv *modifiers __attribute__((unused)), ++ const uint32_t no_of_modifiers __attribute__((unused)), + const std::shared_ptr rm); + ~StreamSensorPCMData(); + std::shared_ptr GetCurrentCaptureProfile(); +diff --git a/stream/inc/StreamSoundTrigger.h b/stream/inc/StreamSoundTrigger.h +index 686aaf29..9a469412 100644 +--- a/stream/inc/StreamSoundTrigger.h ++++ b/stream/inc/StreamSoundTrigger.h +@@ -120,8 +120,8 @@ public: + StreamSoundTrigger(struct pal_stream_attributes *sattr, + struct pal_device *dattr, + uint32_t no_of_devices, +- struct modifier_kv *modifiers __unused, +- uint32_t no_of_modifiers __unused, ++ struct modifier_kv *modifiers __attribute__((unused)), ++ uint32_t no_of_modifiers __attribute__((unused)), + std::shared_ptr rm); + ~StreamSoundTrigger(); + +@@ -135,13 +135,13 @@ public: + + int32_t ssrDownHandler() override; + int32_t ssrUpHandler() override; +- int32_t setStreamAttributes(struct pal_stream_attributes *sattr __unused) { ++ int32_t setStreamAttributes(struct pal_stream_attributes *sattr __attribute__((unused))) { + return 0; + } + +- int32_t setVolume(struct pal_volume_data * volume __unused) { return 0; } +- int32_t mute(bool state __unused) override { return 0; } +- int32_t mute_l(bool state __unused) override { return 0; } ++ int32_t setVolume(struct pal_volume_data * volume __attribute__((unused))) { return 0; } ++ int32_t mute(bool state __attribute__((unused))) override { return 0; } ++ int32_t mute_l(bool state __attribute__((unused))) override { return 0; } + int32_t pause() override { return 0; } + int32_t pause_l() override { return 0; } + int32_t resume() override { return 0; } +@@ -149,15 +149,15 @@ public: + + int32_t read(struct pal_buffer *buf) override; + +- int32_t write(struct pal_buffer *buf __unused) { return 0; } ++ int32_t write(struct pal_buffer *buf __attribute__((unused))) { return 0; } + + int32_t registerCallBack(pal_stream_callback cb, uint64_t cookie) override; + int32_t getCallBack(pal_stream_callback *cb) override; + int32_t getParameters(uint32_t param_id, void **payload) override; + int32_t setParameters(uint32_t param_id, void *payload) override; + +- int32_t addRemoveEffect(pal_audio_effect_t effec __unused, +- bool enable __unused) { ++ int32_t addRemoveEffect(pal_audio_effect_t effec __attribute__((unused)), ++ bool enable __attribute__((unused))) { + return -ENOSYS; + } + bool isStarted(); +diff --git a/stream/inc/StreamUltraSound.h b/stream/inc/StreamUltraSound.h +index 401d262b..e8e9f76a 100644 +--- a/stream/inc/StreamUltraSound.h ++++ b/stream/inc/StreamUltraSound.h +@@ -46,7 +46,7 @@ public: + const uint32_t no_of_devices, const struct modifier_kv *modifiers, + const uint32_t no_of_modifiers, const std::shared_ptr rm); + ~StreamUltraSound(); +- int32_t setVolume( struct pal_volume_data *volume __unused) {return 0;} ++ int32_t setVolume( struct pal_volume_data *volume __attribute__((unused))) {return 0;} + int32_t setParameters(uint32_t param_id, void *payload); + int32_t start(); + int32_t stop(); +diff --git a/stream/src/Stream.cpp b/stream/src/Stream.cpp +index e7721aaf..d6fffe46 100644 +--- a/stream/src/Stream.cpp ++++ b/stream/src/Stream.cpp +@@ -61,8 +61,8 @@ std::condition_variable Stream::pauseCV; + + + void Stream::handleSoftPauseCallBack(uint64_t hdl, uint32_t event_id, +- void *data __unused, +- uint32_t event_size __unused) { ++ void *data __attribute__((unused)), ++ uint32_t event_size __attribute__((unused))) { + + PAL_DBG(LOG_TAG,"Event id %x ", event_id); + +diff --git a/stream/src/StreamACD.cpp b/stream/src/StreamACD.cpp +index 19034b7a..36b8c077 100644 +--- a/stream/src/StreamACD.cpp ++++ b/stream/src/StreamACD.cpp +@@ -43,8 +43,8 @@ + StreamACD::StreamACD(struct pal_stream_attributes *sattr, + struct pal_device *dattr, + uint32_t no_of_devices, +- struct modifier_kv *modifiers __unused, +- uint32_t no_of_modifiers __unused, ++ struct modifier_kv *modifiers __attribute__((unused)), ++ uint32_t no_of_modifiers __attribute__((unused)), + std::shared_ptr rm) + { + int32_t enable_concurrency_count = 0; +@@ -325,7 +325,7 @@ int32_t StreamACD::HandleConcurrentStream(bool active) { + return status; + } + +-int32_t StreamACD::getParameters(uint32_t param_id __unused, void **payload __unused) ++int32_t StreamACD::getParameters(uint32_t param_id __attribute__((unused)), void **payload __attribute__((unused))) + { + return 0; + } +diff --git a/stream/src/StreamCommonProxy.cpp b/stream/src/StreamCommonProxy.cpp +index 4b1530bc..761f2d26 100644 +--- a/stream/src/StreamCommonProxy.cpp ++++ b/stream/src/StreamCommonProxy.cpp +@@ -39,9 +39,9 @@ + #include "ResourceManager.h" + #include + +-StreamCommonProxy::StreamCommonProxy(const struct pal_stream_attributes *sattr __unused, +- struct pal_device *dattr __unused, const uint32_t no_of_devices __unused, +- const struct modifier_kv *modifiers __unused, const uint32_t no_of_modifiers __unused, ++StreamCommonProxy::StreamCommonProxy(const struct pal_stream_attributes *sattr __attribute__((unused)), ++ struct pal_device *dattr __attribute__((unused)), const uint32_t no_of_devices __attribute__((unused)), ++ const struct modifier_kv *modifiers __attribute__((unused)), const uint32_t no_of_modifiers __attribute__((unused)), + const std::shared_ptr rm) : + StreamCommon(sattr,dattr,no_of_devices,modifiers,no_of_modifiers,rm) + { +diff --git a/stream/src/StreamContextProxy.cpp b/stream/src/StreamContextProxy.cpp +index 6f528c9e..33eaf338 100644 +--- a/stream/src/StreamContextProxy.cpp ++++ b/stream/src/StreamContextProxy.cpp +@@ -35,9 +35,9 @@ + #include "ResourceManager.h" + #include + +-StreamContextProxy::StreamContextProxy(const struct pal_stream_attributes *sattr __unused, +- struct pal_device *dattr __unused, const uint32_t no_of_devices __unused, +- const struct modifier_kv *modifiers __unused, const uint32_t no_of_modifiers __unused, ++StreamContextProxy::StreamContextProxy(const struct pal_stream_attributes *sattr __attribute__((unused)), ++ struct pal_device *dattr __attribute__((unused)), const uint32_t no_of_devices __attribute__((unused)), ++ const struct modifier_kv *modifiers __attribute__((unused)), const uint32_t no_of_modifiers __attribute__((unused)), + const std::shared_ptr rm) : + StreamCommon(sattr,dattr,no_of_devices,modifiers,no_of_modifiers,rm) + { +diff --git a/stream/src/StreamHaptics.cpp b/stream/src/StreamHaptics.cpp +index d4c5a2d9..1e1db4da 100755 +--- a/stream/src/StreamHaptics.cpp ++++ b/stream/src/StreamHaptics.cpp +@@ -42,9 +42,9 @@ + #include + #include "rx_haptics_api.h" + +-StreamHaptics::StreamHaptics(const struct pal_stream_attributes *sattr, struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, const struct modifier_kv *modifiers __unused, +- const uint32_t no_of_modifiers __unused, const std::shared_ptr rm): ++StreamHaptics::StreamHaptics(const struct pal_stream_attributes *sattr, struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), const struct modifier_kv *modifiers __attribute__((unused)), ++ const uint32_t no_of_modifiers __attribute__((unused)), const std::shared_ptr rm): + StreamPCM(sattr,dattr,no_of_devices,modifiers,no_of_modifiers,rm) + { + session->registerCallBack((session_callback)HandleCallBack,((uint64_t) this)); +diff --git a/stream/src/StreamNonTunnel.cpp b/stream/src/StreamNonTunnel.cpp +index c1aad159..18e586a0 100644 +--- a/stream/src/StreamNonTunnel.cpp ++++ b/stream/src/StreamNonTunnel.cpp +@@ -50,8 +50,8 @@ static void handleSessionCallBack(uint64_t hdl, uint32_t event_id, void *data, + event_size, s->cookie); + } + +-StreamNonTunnel::StreamNonTunnel(const struct pal_stream_attributes *sattr, struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, const struct modifier_kv *modifiers, ++StreamNonTunnel::StreamNonTunnel(const struct pal_stream_attributes *sattr, struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), const struct modifier_kv *modifiers, + const uint32_t no_of_modifiers, const std::shared_ptr rm) + { + mStreamMutex.lock(); +diff --git a/stream/src/StreamSensorPCMData.cpp b/stream/src/StreamSensorPCMData.cpp +index 2b872538..90848a08 100644 +--- a/stream/src/StreamSensorPCMData.cpp ++++ b/stream/src/StreamSensorPCMData.cpp +@@ -42,11 +42,11 @@ + #include "Device.h" + #include + +-StreamSensorPCMData::StreamSensorPCMData(const struct pal_stream_attributes *sattr __unused, +- struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, +- const struct modifier_kv *modifiers __unused, +- const uint32_t no_of_modifiers __unused, ++StreamSensorPCMData::StreamSensorPCMData(const struct pal_stream_attributes *sattr __attribute__((unused)), ++ struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), ++ const struct modifier_kv *modifiers __attribute__((unused)), ++ const uint32_t no_of_modifiers __attribute__((unused)), + const std::shared_ptr rm): + StreamCommon(sattr,dattr,no_of_devices,modifiers,no_of_modifiers,rm) + { +diff --git a/stream/src/StreamSoundTrigger.cpp b/stream/src/StreamSoundTrigger.cpp +index e37e16fd..27bcaf8d 100644 +--- a/stream/src/StreamSoundTrigger.cpp ++++ b/stream/src/StreamSoundTrigger.cpp +@@ -92,8 +92,8 @@ std::map vui_intf_plugin_map; + StreamSoundTrigger::StreamSoundTrigger(struct pal_stream_attributes *sattr, + struct pal_device *dattr, + uint32_t no_of_devices, +- struct modifier_kv *modifiers __unused, +- uint32_t no_of_modifiers __unused, ++ struct modifier_kv *modifiers __attribute__((unused)), ++ uint32_t no_of_modifiers __attribute__((unused)), + std::shared_ptr rm) { + + class SoundTriggerUUID uuid; +diff --git a/stream/src/StreamUltraSound.cpp b/stream/src/StreamUltraSound.cpp +index 6729ce9c..7a96ae1e 100644 +--- a/stream/src/StreamUltraSound.cpp ++++ b/stream/src/StreamUltraSound.cpp +@@ -41,9 +41,9 @@ + #include "us_detect_api.h" + #include + +-StreamUltraSound::StreamUltraSound(const struct pal_stream_attributes *sattr __unused, struct pal_device *dattr __unused, +- const uint32_t no_of_devices __unused, const struct modifier_kv *modifiers __unused, +- const uint32_t no_of_modifiers __unused, const std::shared_ptr rm): ++StreamUltraSound::StreamUltraSound(const struct pal_stream_attributes *sattr __attribute__((unused)), struct pal_device *dattr __attribute__((unused)), ++ const uint32_t no_of_devices __attribute__((unused)), const struct modifier_kv *modifiers __attribute__((unused)), ++ const uint32_t no_of_modifiers __attribute__((unused)), const std::shared_ptr rm): + StreamCommon(sattr,dattr,no_of_devices,modifiers,no_of_modifiers,rm) + { + gain = PAL_ULTRASOUND_GAIN_MUTE; +diff --git a/utils/inc/SoundTriggerPlatformInfo.h b/utils/inc/SoundTriggerPlatformInfo.h +index cc460556..604c9c3c 100644 +--- a/utils/inc/SoundTriggerPlatformInfo.h ++++ b/utils/inc/SoundTriggerPlatformInfo.h +@@ -67,8 +67,8 @@ class SoundTriggerXml + { + public: + virtual void HandleStartTag(const char *tag, const char **attribs) = 0; +- virtual void HandleEndTag(struct xml_userdata *data __unused, const char *tag __unused) {}; +- virtual void HandleCharData(const char *data __unused) {}; ++ virtual void HandleEndTag(struct xml_userdata *data __attribute__((unused)), const char *tag __attribute__((unused))) {}; ++ virtual void HandleCharData(const char *data __attribute__((unused))) {}; + virtual ~SoundTriggerXml() {}; + }; + +diff --git a/utils/src/ACDPlatformInfo.cpp b/utils/src/ACDPlatformInfo.cpp +index cc2e238c..2990e3e5 100644 +--- a/utils/src/ACDPlatformInfo.cpp ++++ b/utils/src/ACDPlatformInfo.cpp +@@ -49,7 +49,7 @@ ACDSoundModelInfo::ACDSoundModelInfo(ACDStreamConfig *sm_cfg) : + { + } + +-void ACDSoundModelInfo::HandleStartTag(const char* tag, const char** attribs __unused) ++void ACDSoundModelInfo::HandleStartTag(const char* tag, const char** attribs __attribute__((unused))) + { + PAL_DBG(LOG_TAG, "Got start tag %s", tag); + +diff --git a/utils/src/PalRingBuffer.cpp b/utils/src/PalRingBuffer.cpp +index 607abe0b..a796e50b 100644 +--- a/utils/src/PalRingBuffer.cpp ++++ b/utils/src/PalRingBuffer.cpp +@@ -50,8 +50,8 @@ int32_t PalRingBuffer::removeReader(PalRingBufferReader *reader) + return 0; + } + +-size_t PalRingBuffer::read(std::shared_ptrreader __unused, +- void* readBuffer __unused, size_t readSize __unused) ++size_t PalRingBuffer::read(std::shared_ptrreader __attribute__((unused)), ++ void* readBuffer __attribute__((unused)), size_t readSize __attribute__((unused))) + { + return 0; + } diff --git a/recipes-multimedia/audio/qcom-pal_git.bb b/recipes-multimedia/audio/qcom-pal_git.bb index ff0cdf56..ee47db2d 100644 --- a/recipes-multimedia/audio/qcom-pal_git.bb +++ b/recipes-multimedia/audio/qcom-pal_git.bb @@ -12,9 +12,12 @@ SRCBRANCH = "audio-core.lnx.1.0.r1-rel" SRCREV = "c251dd197f47ccff264ea29295cd11f5b55fe5f9" SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/arpal-lx \ - file://adsprpcd_audiopd.service" + file://adsprpcd_audiopd.service \ + file://0001-Add-missing-header-for-usleep-and-close.patch;patchdir=${UNPACKDIR}/audio/opensource/arpal-lx \ + file://0002-Remove-__unused-macro.patch;patchdir=${UNPACKDIR}/audio/opensource/arpal-lx \ +" -S = "${WORKDIR}/audio/opensource/arpal-lx" +S = "${UNPACKDIR}/audio/opensource/arpal-lx" DEPENDS = "tinyalsa tinycompress qcom-agm qcom-kvh2xml qcom-audioroute fastrpc qcom-pal-headers" From 95a7ad3e509cc7316a34985a7ae6b3fa01ee8fb4 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Fri, 28 Nov 2025 09:56:37 +0900 Subject: [PATCH 08/10] pa-pal-plugins: Fix error when building with musl Add missing function declarations. Have HAVE_SYS_SOCKET_H defined by configure. Signed-off-by: Jaeyoon Jung --- .../0001-Fixed-Build-Error-in-clang.patch | 42 ++++++++++++++++++ ...VE_SYS_SOCKET_H-defined-by-configure.patch | 43 +++++++++++++++++++ .../audio/pa-pal-plugins_1.0.bb | 7 ++- 3 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 recipes-multimedia/audio/pa-pal-plugins/0001-Fixed-Build-Error-in-clang.patch create mode 100644 recipes-multimedia/audio/pa-pal-plugins/0002-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch diff --git a/recipes-multimedia/audio/pa-pal-plugins/0001-Fixed-Build-Error-in-clang.patch b/recipes-multimedia/audio/pa-pal-plugins/0001-Fixed-Build-Error-in-clang.patch new file mode 100644 index 00000000..1d2b62d1 --- /dev/null +++ b/recipes-multimedia/audio/pa-pal-plugins/0001-Fixed-Build-Error-in-clang.patch @@ -0,0 +1,42 @@ +From fe9df250e41fe89d7e42b606ad6f3204e4335f71 Mon Sep 17 00:00:00 2001 +From: "geayoung.baek" +Date: Wed, 23 Apr 2025 17:03:07 +0900 +Subject: [PATCH] Fixed Build Error in clang + +../audio/opensource/pulseaudio-plugins/modules/pa-pal-plugins/module-pal-card/src/module-pal-card.c:1171:6: error: conflicting types for 'pa__done' + 1171 | void pa__done(pa_module *m) { +../audio/opensource/pulseaudio-plugins/modules/pa-pal-plugins/module-pal-voiceui-card/module-pal-voiceui-card.c:1428:6: error: conflicting types for 'pa__done' + 1428 | void pa__done(pa_module 3* warningms) generated {. + +Upstream-Status: Pending +--- + modules/pa-pal-plugins/module-pal-card/src/module-pal-card.c | 2 ++ + .../module-pal-voiceui-card/module-pal-voiceui-card.c | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/modules/pa-pal-plugins/module-pal-card/src/module-pal-card.c b/modules/pa-pal-plugins/module-pal-card/src/module-pal-card.c +index 8eac86b..1b87f1c 100644 +--- a/modules/pa-pal-plugins/module-pal-card/src/module-pal-card.c ++++ b/modules/pa-pal-plugins/module-pal-card/src/module-pal-card.c +@@ -1067,6 +1067,8 @@ static void pa_pal_card_disable_jack_detection(struct userdata *u, pa_module *m) + u->jacks = NULL;; + } + ++void pa__done(pa_module *m); ++ + int pa__init(pa_module *m) { + struct userdata *u; + pa_modargs *ma; +diff --git a/modules/pa-pal-plugins/module-pal-voiceui-card/module-pal-voiceui-card.c b/modules/pa-pal-plugins/module-pal-voiceui-card/module-pal-voiceui-card.c +index 6bab613..925bb89 100644 +--- a/modules/pa-pal-plugins/module-pal-voiceui-card/module-pal-voiceui-card.c ++++ b/modules/pa-pal-plugins/module-pal-voiceui-card/module-pal-voiceui-card.c +@@ -1387,6 +1387,8 @@ static void load_sound_model(DBusConnection *conn, DBusMessage *msg, void *userd + pa_dbus_send_basic_value_reply(conn, msg, DBUS_TYPE_OBJECT_PATH, &ses_data->obj_path); + } + ++void pa__done(pa_module *m); ++ + int pa__init(pa_module *m) { + struct pal_voiceui_module_data *m_data; + pa_modargs *ma; diff --git a/recipes-multimedia/audio/pa-pal-plugins/0002-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch b/recipes-multimedia/audio/pa-pal-plugins/0002-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch new file mode 100644 index 00000000..2527661e --- /dev/null +++ b/recipes-multimedia/audio/pa-pal-plugins/0002-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch @@ -0,0 +1,43 @@ +From 336fd0f84eddc41742b186fbf18b5dee1e9075cb Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Thu, 27 Nov 2025 07:17:53 +0900 +Subject: [PATCH] Have HAVE_SYS_SOCKET_H defined by configure + +Fixes a build error with musl: +pa-pal-plugins/1.0/recipe-sysroot/usr/include/pulsecore/core-util.h:303:58: error: unknown type name 'socklen_t'; did you mean 'locale_t'? + 303 | int pa_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen); + | ^ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + modules/pa-pal-plugins/configure.ac | 2 ++ + utils/pa_bt_audio/configure.ac | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/modules/pa-pal-plugins/configure.ac b/modules/pa-pal-plugins/configure.ac +index 3498de3..648272b 100644 +--- a/modules/pa-pal-plugins/configure.ac ++++ b/modules/pa-pal-plugins/configure.ac +@@ -83,6 +83,8 @@ AC_ARG_WITH( + [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulseaudio/modules"]) + AC_SUBST(modlibexecdir) + ++AC_CHECK_HEADERS([sys/socket.h]) ++ + AC_CONFIG_FILES([ \ + Makefile \ + ]) +diff --git a/utils/pa_bt_audio/configure.ac b/utils/pa_bt_audio/configure.ac +index 7d85f6d..44b2b55 100644 +--- a/utils/pa_bt_audio/configure.ac ++++ b/utils/pa_bt_audio/configure.ac +@@ -45,6 +45,8 @@ PKG_CHECK_MODULES([LIBPULSE], [libpulse]) + AC_SUBST([LIBPULSE_CFLAGS]) + AC_SUBST([LIBPULSE_LIBS]) + ++AC_CHECK_HEADERS([sys/socket.h]) ++ + AC_CONFIG_FILES([ \ + Makefile + pabtaudio.pc diff --git a/recipes-multimedia/audio/pa-pal-plugins_1.0.bb b/recipes-multimedia/audio/pa-pal-plugins_1.0.bb index c771c716..f6b6338f 100644 --- a/recipes-multimedia/audio/pa-pal-plugins_1.0.bb +++ b/recipes-multimedia/audio/pa-pal-plugins_1.0.bb @@ -8,9 +8,12 @@ SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/pu SRCBRANCH = "audio-algos.lnx.1.0.r1-rel" SRCREV = "35adad85a280ea8dc72f5687c1a70ddc9833758c" -SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins" +SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins \ + file://0001-Fixed-Build-Error-in-clang.patch;patchdir=${UNPACKDIR}/audio/opensource/pulseaudio-plugins \ + file://0002-Have-HAVE_SYS_SOCKET_H-defined-by-configure.patch;patchdir=${UNPACKDIR}/audio/opensource/pulseaudio-plugins \ +" -S = "${WORKDIR}/audio/opensource/pulseaudio-plugins/modules/pa-pal-plugins" +S = "${UNPACKDIR}/audio/opensource/pulseaudio-plugins/modules/pa-pal-plugins" DEPENDS = "qcom-agm pulseaudio qcom-pal qcom-pal-headers qcom-vui-interface-header" EXTRA_OECONF = " --with-pa_version=17.0 --without-pa-support-card-status" From 8489a07a6cca4e0d470b247d6d19b748b560d31a Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Fri, 28 Nov 2025 15:31:55 +0900 Subject: [PATCH 09/10] qcom-pa-pal-acd: Fix error when building with musl Have HAVE_SYS_SOCKET_H defined by configure. Signed-off-by: Jaeyoon Jung --- .../0001-Remove-__unused-macro.patch | 109 ++++++++++++++++++ .../audio/qcom-pa-pal-acd_git.bb | 6 +- 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 recipes-multimedia/audio/qcom-pa-pal-acd/0001-Remove-__unused-macro.patch diff --git a/recipes-multimedia/audio/qcom-pa-pal-acd/0001-Remove-__unused-macro.patch b/recipes-multimedia/audio/qcom-pa-pal-acd/0001-Remove-__unused-macro.patch new file mode 100644 index 00000000..3b599466 --- /dev/null +++ b/recipes-multimedia/audio/qcom-pa-pal-acd/0001-Remove-__unused-macro.patch @@ -0,0 +1,109 @@ +From 3ce7167837ec02cf00c88dcd1a4ad26d095de655 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Fri, 28 Nov 2025 10:52:35 +0900 +Subject: [PATCH] Remove __unused macro + +Use __attribute__((unused)) in place of __unused instead as it may cause +a error as when building with musl as below: +In file included from qcom-pa-pal-acd/audio/opensource/pulseaudio-plugins/test/acd/pa_pal_acd_test.cpp:21: +In file included from qcom-pa-pal-acd/git/recipe-sysroot/usr/include/sys/stat.h:23: +qcom-pa-pal-acd/git/recipe-sysroot/usr/include/bits/stat.h:17:19: error: expected member name or ';' after declaration specifiers + 17 | unsigned __unused[2]; + | ~~~~~~~~ ^ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + test/acd/Makefile.am | 4 ++-- + test/acd/pa_pal_acd_test.cpp | 4 ++-- + utils/pa_pal_voiceui/Makefile.am | 4 ++-- + utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp | 4 ++-- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/test/acd/Makefile.am b/test/acd/Makefile.am +index 1d9d2fb..957abd7 100644 +--- a/test/acd/Makefile.am ++++ b/test/acd/Makefile.am +@@ -8,7 +8,7 @@ AM_CPPFLAGS = -Wundef \ + lib_LTLIBRARIES = libpapalacd.la + libpapalacd_la_SOURCES = pa_pal_acd.cpp + libpapalacd_la_CPPFLAGS = @VUI_INTF_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ +-libpapalacd_la_CPPFLAGS += $(AM_CPPFLAGS) -DNDEBUG -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ -std=c++11 ++libpapalacd_la_CPPFLAGS += $(AM_CPPFLAGS) -DNDEBUG @PAL_CFLAGS@ -std=c++11 + libpapalacd_la_CPPFLAGS += $(GIO_CFLAGS) + libpapalacd_la_LDFLAGS = -shared -module -version-number @LT_VERSION_NUMBER@ + libpapalacd_la_LDFLAGS += $(GIO_LIBS) +@@ -16,7 +16,7 @@ libpapalacd_la_LDFLAGS += $(GIO_LIBS) + ###Generate test app #### + bin_PROGRAMS = pa_pal_acd_test + pa_pal_acd_test_SOURCES = pa_pal_acd_test.cpp +-pa_pal_acd_test_CPPFLAGS = $(AM_CPPFLAGS) -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ -std=c++11 ++pa_pal_acd_test_CPPFLAGS = $(AM_CPPFLAGS) @PAL_CFLAGS@ -std=c++11 + pa_pal_acd_test_CPPFLAGS += $(GIO_CFLAGS) + pa_pal_acd_test_CPPFLAGS += $(GLIB_CFLAGS) -include glib.h + pa_pal_acd_test_CPPFLAGS += @VUI_INTF_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ +diff --git a/test/acd/pa_pal_acd_test.cpp b/test/acd/pa_pal_acd_test.cpp +index bd8e2a0..6d52043 100644 +--- a/test/acd/pa_pal_acd_test.cpp ++++ b/test/acd/pa_pal_acd_test.cpp +@@ -116,7 +116,7 @@ static int startIndex = 0; + static int endIndex = 0; + bool exit_loop = false; + +-static void sigint_handler(int sig __unused) { ++static void sigint_handler(int sig __attribute__((unused))) { + event_received = true; + exit_loop = true; + } +@@ -163,7 +163,7 @@ static void *event_handler_thread(void *context) { + return NULL; + } + +-static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __unused) { ++static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __attribute__((unused))) { + + int rc = 0; + pthread_attr_t attr; +diff --git a/utils/pa_pal_voiceui/Makefile.am b/utils/pa_pal_voiceui/Makefile.am +index ecf6e79..223b49a 100644 +--- a/utils/pa_pal_voiceui/Makefile.am ++++ b/utils/pa_pal_voiceui/Makefile.am +@@ -8,7 +8,7 @@ AM_CPPFLAGS = -Wundef \ + + lib_LTLIBRARIES = libpapalvoiceui.la + libpapalvoiceui_la_SOURCES = pa_pal_voiceui.cpp +-libpapalvoiceui_la_CPPFLAGS = $(AM_CPPFLAGS) -DNDEBUG -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ -std=c++11 ++libpapalvoiceui_la_CPPFLAGS = $(AM_CPPFLAGS) -DNDEBUG @PAL_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ -std=c++11 + libpapalvoiceui_la_CPPFLAGS += $(GIO_CFLAGS) + libpapalvoiceui_la_LDFLAGS = -shared -module -version-number @LT_VERSION_NUMBER@ + libpapalvoiceui_la_LDFLAGS += $(GIO_LIBS) +@@ -16,6 +16,6 @@ libpapalvoiceui_la_LDFLAGS += $(GIO_LIBS) + ###Generate test app #### + bin_PROGRAMS = pa_pal_voiceui_test + pa_pal_voiceui_test_SOURCES = pa_pal_voiceui_test.cpp +-pa_pal_voiceui_test_CPPFLAGS = $(AM_CPPFLAGS) -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ @PALHEADERS_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ -std=c++11 ++pa_pal_voiceui_test_CPPFLAGS = $(AM_CPPFLAGS) @PAL_CFLAGS@ @PALHEADERS_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ -std=c++11 + pa_pal_voiceui_test_CPPFLAGS += $(GLIB_CFLAGS) -include glib.h + pa_pal_voiceui_test_LDADD = libpapalvoiceui.la $(GLIB_LIBS) +diff --git a/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp b/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp +index ee83c24..43ffc81 100644 +--- a/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp ++++ b/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp +@@ -228,7 +228,7 @@ static int startIndex = 0; + static int endIndex = 0; + bool exit_loop = false; + +-static void sigint_handler(int sig __unused) { ++static void sigint_handler(int sig __attribute__((unused))) { + event_received = true; + exit_loop = true; + } +@@ -437,7 +437,7 @@ static void *event_handler_thread(void *context) { + return NULL; + } + +-static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __unused) { ++static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __attribute__((unused))) { + + int rc = 0; + pthread_attr_t attr; diff --git a/recipes-multimedia/audio/qcom-pa-pal-acd_git.bb b/recipes-multimedia/audio/qcom-pa-pal-acd_git.bb index fefd2261..62b94855 100644 --- a/recipes-multimedia/audio/qcom-pa-pal-acd_git.bb +++ b/recipes-multimedia/audio/qcom-pa-pal-acd_git.bb @@ -9,9 +9,11 @@ SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/pu SRCBRANCH = "audio-algos.lnx.1.0.r1-rel" SRCREV = "35adad85a280ea8dc72f5687c1a70ddc9833758c" -SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins" +SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins \ + file://0001-Remove-__unused-macro.patch;patchdir=${UNPACKDIR}/audio/opensource/pulseaudio-plugins \ +" -S = "${WORKDIR}/audio/opensource/pulseaudio-plugins/test/acd" +S = "${UNPACKDIR}/audio/opensource/pulseaudio-plugins/test/acd" DEPENDS = "pulseaudio glib-2.0 qcom-pal qcom-vui-interface-header qcom-pal-headers" EXTRA_OECONF = "--with-glib" From f28dd4566995d02a036114d50c7405f619af53cc Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Fri, 28 Nov 2025 15:33:15 +0900 Subject: [PATCH 10/10] qcom-pa-pal-voiceui: Fix error when building with musl Remove __unused macro. Use 0 over NULL for int type. Signed-off-by: Jaeyoon Jung --- .../0001-Remove-__unused-macro.patch | 109 ++++++++++++++++++ .../0002-Use-0-over-NULL-for-int-type.patch | 29 +++++ .../audio/qcom-pa-pal-voiceui_git.bb | 7 +- 3 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 recipes-multimedia/audio/qcom-pa-pal-voiceui/0001-Remove-__unused-macro.patch create mode 100644 recipes-multimedia/audio/qcom-pa-pal-voiceui/0002-Use-0-over-NULL-for-int-type.patch diff --git a/recipes-multimedia/audio/qcom-pa-pal-voiceui/0001-Remove-__unused-macro.patch b/recipes-multimedia/audio/qcom-pa-pal-voiceui/0001-Remove-__unused-macro.patch new file mode 100644 index 00000000..b212b650 --- /dev/null +++ b/recipes-multimedia/audio/qcom-pa-pal-voiceui/0001-Remove-__unused-macro.patch @@ -0,0 +1,109 @@ +From ee3b2334108d4deb24b5e1a25b08d69f2110c271 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Fri, 28 Nov 2025 10:03:09 +0900 +Subject: [PATCH] Remove __unused macro + +Use __attribute__((unused)) in place of __unused instead as it may cause +a error as when building with musl as below: +In file included from qcom-pa-pal-voiceui/git/audio/opensource/pulseaudio-plugins/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp:46: +In file included from qcom-pa-pal-voiceui/git/recipe-sysroot/usr/include/sys/stat.h:23: +qcom-pa-pal-voiceui/git/recipe-sysroot/usr/include/bits/stat.h:17:19: error: expected member name or ';' after declaration specifiers + 17 | unsigned __unused[2]; + | ~~~~~~~~ ^ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + test/acd/Makefile.am | 4 ++-- + test/acd/pa_pal_acd_test.cpp | 4 ++-- + utils/pa_pal_voiceui/Makefile.am | 4 ++-- + utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp | 4 ++-- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/test/acd/Makefile.am b/test/acd/Makefile.am +index 1d9d2fb..957abd7 100644 +--- a/test/acd/Makefile.am ++++ b/test/acd/Makefile.am +@@ -8,7 +8,7 @@ AM_CPPFLAGS = -Wundef \ + lib_LTLIBRARIES = libpapalacd.la + libpapalacd_la_SOURCES = pa_pal_acd.cpp + libpapalacd_la_CPPFLAGS = @VUI_INTF_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ +-libpapalacd_la_CPPFLAGS += $(AM_CPPFLAGS) -DNDEBUG -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ -std=c++11 ++libpapalacd_la_CPPFLAGS += $(AM_CPPFLAGS) -DNDEBUG @PAL_CFLAGS@ -std=c++11 + libpapalacd_la_CPPFLAGS += $(GIO_CFLAGS) + libpapalacd_la_LDFLAGS = -shared -module -version-number @LT_VERSION_NUMBER@ + libpapalacd_la_LDFLAGS += $(GIO_LIBS) +@@ -16,7 +16,7 @@ libpapalacd_la_LDFLAGS += $(GIO_LIBS) + ###Generate test app #### + bin_PROGRAMS = pa_pal_acd_test + pa_pal_acd_test_SOURCES = pa_pal_acd_test.cpp +-pa_pal_acd_test_CPPFLAGS = $(AM_CPPFLAGS) -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ -std=c++11 ++pa_pal_acd_test_CPPFLAGS = $(AM_CPPFLAGS) @PAL_CFLAGS@ -std=c++11 + pa_pal_acd_test_CPPFLAGS += $(GIO_CFLAGS) + pa_pal_acd_test_CPPFLAGS += $(GLIB_CFLAGS) -include glib.h + pa_pal_acd_test_CPPFLAGS += @VUI_INTF_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ +diff --git a/test/acd/pa_pal_acd_test.cpp b/test/acd/pa_pal_acd_test.cpp +index bd8e2a0..6d52043 100644 +--- a/test/acd/pa_pal_acd_test.cpp ++++ b/test/acd/pa_pal_acd_test.cpp +@@ -116,7 +116,7 @@ static int startIndex = 0; + static int endIndex = 0; + bool exit_loop = false; + +-static void sigint_handler(int sig __unused) { ++static void sigint_handler(int sig __attribute__((unused))) { + event_received = true; + exit_loop = true; + } +@@ -163,7 +163,7 @@ static void *event_handler_thread(void *context) { + return NULL; + } + +-static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __unused) { ++static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __attribute__((unused))) { + + int rc = 0; + pthread_attr_t attr; +diff --git a/utils/pa_pal_voiceui/Makefile.am b/utils/pa_pal_voiceui/Makefile.am +index ecf6e79..223b49a 100644 +--- a/utils/pa_pal_voiceui/Makefile.am ++++ b/utils/pa_pal_voiceui/Makefile.am +@@ -8,7 +8,7 @@ AM_CPPFLAGS = -Wundef \ + + lib_LTLIBRARIES = libpapalvoiceui.la + libpapalvoiceui_la_SOURCES = pa_pal_voiceui.cpp +-libpapalvoiceui_la_CPPFLAGS = $(AM_CPPFLAGS) -DNDEBUG -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ -std=c++11 ++libpapalvoiceui_la_CPPFLAGS = $(AM_CPPFLAGS) -DNDEBUG @PAL_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ @PALHEADERS_CFLAGS@ -std=c++11 + libpapalvoiceui_la_CPPFLAGS += $(GIO_CFLAGS) + libpapalvoiceui_la_LDFLAGS = -shared -module -version-number @LT_VERSION_NUMBER@ + libpapalvoiceui_la_LDFLAGS += $(GIO_LIBS) +@@ -16,6 +16,6 @@ libpapalvoiceui_la_LDFLAGS += $(GIO_LIBS) + ###Generate test app #### + bin_PROGRAMS = pa_pal_voiceui_test + pa_pal_voiceui_test_SOURCES = pa_pal_voiceui_test.cpp +-pa_pal_voiceui_test_CPPFLAGS = $(AM_CPPFLAGS) -D__unused=__attribute__\(\(__unused__\)\) @PAL_CFLAGS@ @PALHEADERS_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ -std=c++11 ++pa_pal_voiceui_test_CPPFLAGS = $(AM_CPPFLAGS) @PAL_CFLAGS@ @PALHEADERS_CFLAGS@ @VUI_INTERFACE_HEADERS_CFLAGS@ -std=c++11 + pa_pal_voiceui_test_CPPFLAGS += $(GLIB_CFLAGS) -include glib.h + pa_pal_voiceui_test_LDADD = libpapalvoiceui.la $(GLIB_LIBS) +diff --git a/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp b/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp +index ee83c24..43ffc81 100644 +--- a/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp ++++ b/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp +@@ -228,7 +228,7 @@ static int startIndex = 0; + static int endIndex = 0; + bool exit_loop = false; + +-static void sigint_handler(int sig __unused) { ++static void sigint_handler(int sig __attribute__((unused))) { + event_received = true; + exit_loop = true; + } +@@ -437,7 +437,7 @@ static void *event_handler_thread(void *context) { + return NULL; + } + +-static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __unused) { ++static void eventCallback(struct pal_st_recognition_event *event, void *sessionHndl __attribute__((unused))) { + + int rc = 0; + pthread_attr_t attr; diff --git a/recipes-multimedia/audio/qcom-pa-pal-voiceui/0002-Use-0-over-NULL-for-int-type.patch b/recipes-multimedia/audio/qcom-pa-pal-voiceui/0002-Use-0-over-NULL-for-int-type.patch new file mode 100644 index 00000000..473c2dd2 --- /dev/null +++ b/recipes-multimedia/audio/qcom-pa-pal-voiceui/0002-Use-0-over-NULL-for-int-type.patch @@ -0,0 +1,29 @@ +From 74d00b04e692bab7ac7c12ca4c1a5be3bb3dcd49 Mon Sep 17 00:00:00 2001 +From: Jaeyoon Jung +Date: Fri, 28 Nov 2025 10:30:57 +0900 +Subject: [PATCH] Use 0 over NULL for int type + +Fixes: +../audio/opensource/pulseaudio-plugins/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp:584:25: error: cannot initialize a variable of type 'pa_qst_ses_handle_t' (aka 'int') with an rvalue of type 'std::nullptr_t' + 584 | pa_qst_ses_handle_t ses_handle = NULL; + | ^ ~~~~ + +Upstream-Status: Pending +Signed-off-by: Jaeyoon Jung +--- + utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp b/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp +index 43ffc81..9f53c41 100644 +--- a/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp ++++ b/utils/pa_pal_voiceui/pa_pal_voiceui_test.cpp +@@ -581,7 +581,7 @@ int main(int argc, char *argv[]) { + struct pal_device pal_dev; + struct pal_stream_attributes pal_stream_attr; + struct sm_session_data *ses_data = NULL; +- pa_qst_ses_handle_t ses_handle = NULL; ++ pa_qst_ses_handle_t ses_handle = 0; + uint8_t *payload = NULL; + pal_param_payload *rec_config_payload = NULL; + pal_param_payload *sound_model_payload = NULL; diff --git a/recipes-multimedia/audio/qcom-pa-pal-voiceui_git.bb b/recipes-multimedia/audio/qcom-pa-pal-voiceui_git.bb index 92eb3a6f..6d4861b1 100644 --- a/recipes-multimedia/audio/qcom-pa-pal-voiceui_git.bb +++ b/recipes-multimedia/audio/qcom-pa-pal-voiceui_git.bb @@ -9,9 +9,12 @@ SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/pu SRCBRANCH = "audio-algos.lnx.1.0.r1-rel" SRCREV = "35adad85a280ea8dc72f5687c1a70ddc9833758c" -SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins" +SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=audio/opensource/pulseaudio-plugins \ + file://0001-Remove-__unused-macro.patch;patchdir=${UNPACKDIR}/audio/opensource/pulseaudio-plugins \ + file://0002-Use-0-over-NULL-for-int-type.patch;patchdir=${UNPACKDIR}/audio/opensource/pulseaudio-plugins \ +" -S = "${WORKDIR}/audio/opensource/pulseaudio-plugins/utils/pa_pal_voiceui" +S = "${UNPACKDIR}/audio/opensource/pulseaudio-plugins/utils/pa_pal_voiceui" DEPENDS = "pulseaudio glib-2.0 qcom-pal qcom-pal-headers qcom-vui-interface-header"