From f541df77d5741286e8b9802a5ea497b75b1db6f0 Mon Sep 17 00:00:00 2001 From: Aditya Rathi Date: Wed, 3 Jun 2026 10:54:42 +0530 Subject: [PATCH 1/3] build/cmake: Fix stale FastRPC SDK paths in hexagon toolchain HEXAGON_SDK_REMOTE_INCLUDES and HEXAGON_SDK_RPCMEM_INCLUDES were hardcoded to a libs/common/ layout that does not exist in either Hexagon SDK 4.x or SDK 6.x releases. In SDK 4.5.0 and 6.x, FastRPC components live under ipc/fastrpc/. Point HEXAGON_SDK_REMOTE_INCLUDES to ipc/fastrpc/remote/ship and HEXAGON_SDK_RPCMEM_INCLUDES to ipc/fastrpc/rpcmem/inc to match the actual SDK directory layout. Signed-off-by: Aditya Rathi --- scripts/cmake/hexagon-toolchain.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/cmake/hexagon-toolchain.cmake b/scripts/cmake/hexagon-toolchain.cmake index d8cf2b6f..a5fcf81c 100644 --- a/scripts/cmake/hexagon-toolchain.cmake +++ b/scripts/cmake/hexagon-toolchain.cmake @@ -35,8 +35,8 @@ message(STATUS "Preparing Hexagon ${V_ARCH} build with\n\tToolchain: ${CONFIG_HE set(HEXAGON_SDK_INCLUDES ${HEXAGON_SDK_ROOT}/incs) set(HEXAGON_SDK_STDDEF_INCLUDES ${HEXAGON_SDK_ROOT}/incs/stddef) -set(HEXAGON_SDK_REMOTE_INCLUDES ${HEXAGON_SDK_ROOT}/libs/common/remote/ship/hexagon_Debug_dynamic_toolv81_v65) -set(HEXAGON_SDK_RPCMEM_INCLUDES ${HEXAGON_SDK_ROOT}/libs/common/rpcmem/hexagon_Debug_dynamic_toolv81_v65/ship) +set(HEXAGON_SDK_REMOTE_INCLUDES ${HEXAGON_SDK_ROOT}/ipc/fastrpc/remote/ship) +set(HEXAGON_SDK_RPCMEM_INCLUDES ${HEXAGON_SDK_ROOT}/ipc/fastrpc/rpcmem/inc) set(HEXAGON_SDK_QURT_INCLUDES ${HEXAGON_SDK_ROOT}/rtos/qurt/computev65/include/qurt) set(HEXAGON_SDK_AUDIO_INCLUDES ${HEXAGON_SDK_ROOT}/incs/audio) set(HEXAGON_LIB_DIR ${HEXAGON_TOOLS_ROOT}/Tools/target/hexagon/lib) From 30dbf6cdafa1f1f10577957ab46dc89e24159827 Mon Sep 17 00:00:00 2001 From: Aditya Rathi Date: Wed, 3 Jun 2026 11:00:27 +0530 Subject: [PATCH 2/3] build/cmake: Fix hardcoded computev65 in HEXAGON_SDK_QURT_INCLUDES HEXAGON_SDK_QURT_INCLUDES was hardcoded to computev65/include/qurt. Hexagon SDK 6.x ships QuRT headers from computev68 onwards; the absence of computev65 causes a fatal missing header build error. Derive the path dynamically as computev${V_ARCH_NUM}/include/qurt by extracting the numeric suffix from V_ARCH at configure time. Signed-off-by: Aditya Rathi --- scripts/cmake/hexagon-toolchain.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/cmake/hexagon-toolchain.cmake b/scripts/cmake/hexagon-toolchain.cmake index a5fcf81c..efa5719a 100644 --- a/scripts/cmake/hexagon-toolchain.cmake +++ b/scripts/cmake/hexagon-toolchain.cmake @@ -37,7 +37,8 @@ set(HEXAGON_SDK_INCLUDES ${HEXAGON_SDK_ROOT}/incs) set(HEXAGON_SDK_STDDEF_INCLUDES ${HEXAGON_SDK_ROOT}/incs/stddef) set(HEXAGON_SDK_REMOTE_INCLUDES ${HEXAGON_SDK_ROOT}/ipc/fastrpc/remote/ship) set(HEXAGON_SDK_RPCMEM_INCLUDES ${HEXAGON_SDK_ROOT}/ipc/fastrpc/rpcmem/inc) -set(HEXAGON_SDK_QURT_INCLUDES ${HEXAGON_SDK_ROOT}/rtos/qurt/computev65/include/qurt) +string(REGEX REPLACE "^v" "" V_ARCH_NUM "${V_ARCH}") +set(HEXAGON_SDK_QURT_INCLUDES ${HEXAGON_SDK_ROOT}/rtos/qurt/computev${V_ARCH_NUM}/include/qurt) set(HEXAGON_SDK_AUDIO_INCLUDES ${HEXAGON_SDK_ROOT}/incs/audio) set(HEXAGON_LIB_DIR ${HEXAGON_TOOLS_ROOT}/Tools/target/hexagon/lib) set(HEXAGON_ISS_DIR ${HEXAGON_TOOLS_ROOT}/Tools/lib/iss) From a1bed696b1889dff58b536c3a4344136892c03bc Mon Sep 17 00:00:00 2001 From: Aditya Rathi Date: Wed, 3 Jun 2026 11:00:43 +0530 Subject: [PATCH 3/3] build/cmake: Extend V_ARCH validation list for Hexagon SDK 6.x variants The V_ARCH check only covered up to v66, causing a fatal CMake error for any arch variant introduced in Hexagon SDK 6.x. Add v68, v69, v73, v75, v79 and v81 to the allowed list, matching arch variants present in the SDK 6.x toolchain and QuRT headers. Signed-off-by: Aditya Rathi --- scripts/cmake/hexagon-toolchain.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/cmake/hexagon-toolchain.cmake b/scripts/cmake/hexagon-toolchain.cmake index efa5719a..31061d94 100644 --- a/scripts/cmake/hexagon-toolchain.cmake +++ b/scripts/cmake/hexagon-toolchain.cmake @@ -2,7 +2,7 @@ # VARIABLES: # # V_ARCH: Hexagon Architecture version number -# Supported Values: v5, v55, v60, v61, v62, v65, v66 +# Supported Values: v5, v55, v60, v61, v62, v65, v66, v68, v69, v73, v75, v79, v81 # # HEXAGON_TOOLS_ROOT: Path to Hexagon Toolchain # @@ -26,7 +26,7 @@ if (NOT HEXAGON_TOOLS_ROOT AND CONFIG_HEXAGON_TOOLS_ROOT) set(HEXAGON_TOOLS_ROOT ${CONFIG_HEXAGON_TOOLS_ROOT}) endif() -if (NOT V_ARCH MATCHES "^(v5|v55|v60|v61|v62|v65|v66)") +if (NOT V_ARCH MATCHES "^(v5|v55|v60|v61|v62|v65|v66|v68|v69|v73|v75|v79|v81)") message(FATAL_ERROR " Please specify valid Hexagon processor version.\n") endif()