void-packages/srcpkgs/intel-media-driver/patches/execinfo.patch

59 lines
2.0 KiB
Diff

From b17354142563b45e0ebf427485591426481368fd Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Fri, 29 Jul 2022 19:51:39 +0200
Subject: [PATCH] Fix uClibc build
uClibc does not provide execinfo.h
---
CMakeLists.txt | 6 ++++++
.../linux/common/os/osservice/mos_utilities_specific.cpp | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 053904748..4a3f0869e 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,6 +53,12 @@ option (BUILD_CMRTLIB "Build and Install cmrtlib together with media driver" ON)
option (ENABLE_PRODUCTION_KMD "Enable Production KMD header files" OFF)
+include(CheckIncludeFileCXX)
+check_include_file_cxx("execinfo.h" HAVE_EXECINFO)
+if (HAVE_EXECINFO)
+ add_definitions(-DHAVE_EXECINFO)
+endif()
+
include(GNUInstallDirs)
if (BUILD_CMRTLIB AND NOT CMAKE_WDDM_LINUX)
diff --git a/media_softlet/linux/common/os/osservice/mos_utilities_specific.cpp b/media_softlet/linux/common/os/osservice/mos_utilities_specific.cpp
index bde216b83..120b02d55 100644
--- a/media_softlet/linux/common/os/osservice/mos_utilities_specific.cpp
+++ b/media_softlet/linux/common/os/osservice/mos_utilities_specific.cpp
@@ -34,7 +34,9 @@
#include <signal.h>
#include <unistd.h> // fork
#include <algorithm>
+#ifdef HAVE_EXECINFO
#include <execinfo.h> // backtrace
+#endif
#include <sys/types.h>
#include <sys/stat.h> // fstat
#include <sys/ipc.h> // System V IPC
@@ -2473,6 +2475,7 @@ void MosUtilities::MosTraceEvent(
MOS_FreeMemory(pTraceBuf);
}
}
+#ifdef HAVE_EXECINFO
if (m_mosTraceFilter & (1ULL << TR_KEY_CALL_STACK))
{
// reserve space for header and stack size field.
@@ -2492,6 +2495,7 @@ void MosUtilities::MosTraceEvent(
size_t ret = write(MosUtilitiesSpecificNext::m_mosTraceFd, traceBuf, nLen);
}
}
+#endif
}
return;
}