|
@@ -1,150 +0,0 @@
|
|
|
-From 08ad0e3da9f9ab48e423d0aea2af9605190aafe7 Mon Sep 17 00:00:00 2001
|
|
|
-From: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
|
|
|
-Date: Mon, 31 Oct 2022 16:41:43 -0700
|
|
|
-Subject: [PATCH] build: check for backtrace(3) via FindBacktrace
|
|
|
-
|
|
|
-Fixes: #1533
|
|
|
-
|
|
|
-Change-Id: I81bcdb5e65c26f94b174af9b5e6218c14601c50f
|
|
|
-Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
|
|
|
-
|
|
|
-Downloaded from upstream PR:
|
|
|
-https://github.com/intel/media-driver/pull/1536
|
|
|
-
|
|
|
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
|
----
|
|
|
- media_driver/media_top_cmake.cmake | 11 +++++-
|
|
|
- .../common/os/osservice/media_srcs.cmake | 3 ++
|
|
|
- .../linux/common/os/osservice/mos_compat.h.in | 35 +++++++++++++++++++
|
|
|
- .../os/osservice/mos_utilities_specific.cpp | 4 ++-
|
|
|
- 4 files changed, 51 insertions(+), 2 deletions(-)
|
|
|
- create mode 100644 media_softlet/linux/common/os/osservice/mos_compat.h.in
|
|
|
-
|
|
|
-diff --git a/media_driver/media_top_cmake.cmake b/media_driver/media_top_cmake.cmake
|
|
|
-index 1a8b3b242..e71c8630d 100755
|
|
|
---- a/media_driver/media_top_cmake.cmake
|
|
|
-+++ b/media_driver/media_top_cmake.cmake
|
|
|
-@@ -22,6 +22,10 @@ project( media )
|
|
|
-
|
|
|
- find_package(PkgConfig)
|
|
|
- find_package(X11)
|
|
|
-+find_package(Backtrace)
|
|
|
-+
|
|
|
-+# to get access to generated header files
|
|
|
-+include_directories(${CMAKE_BINARY_DIR})
|
|
|
-
|
|
|
- bs_set_if_undefined(LIB_NAME iHD_drv_video)
|
|
|
-
|
|
|
-@@ -381,10 +385,15 @@ set_target_properties(${LIB_NAME} PROPERTIES LINK_FLAGS ${MEDIA_LINK_FLAGS})
|
|
|
- set_target_properties(${LIB_NAME} PROPERTIES PREFIX "")
|
|
|
- set_target_properties(${LIB_NAME_STATIC} PROPERTIES PREFIX "")
|
|
|
-
|
|
|
-+set(MEDIA_LINK_EXTERNAL_LIBS "${PKG_PCIACCESS_LIBRARIES} m pthread dl")
|
|
|
-+if(Backtrace_FOUND)
|
|
|
-+ set(MEDIA_LINK_EXTERNAL_LIBS "${MEDIA_LINK_EXTERNAL_LIBS} ${Backtrace_LIBRARY}")
|
|
|
-+endif()
|
|
|
-+
|
|
|
- bs_ufo_link_libraries_noBsymbolic(
|
|
|
- ${LIB_NAME}
|
|
|
- "${INCLUDED_LIBS}"
|
|
|
-- "${PKG_PCIACCESS_LIBRARIES} m pthread dl"
|
|
|
-+ "${MEDIA_LINK_EXTERNAL_LIBS}"
|
|
|
- )
|
|
|
-
|
|
|
- if (NOT DEFINED INCLUDED_LIBS OR "${INCLUDED_LIBS}" STREQUAL "")
|
|
|
-diff --git a/media_softlet/linux/common/os/osservice/media_srcs.cmake b/media_softlet/linux/common/os/osservice/media_srcs.cmake
|
|
|
-index e90c502f3..4e8aad1d8 100644
|
|
|
---- a/media_softlet/linux/common/os/osservice/media_srcs.cmake
|
|
|
-+++ b/media_softlet/linux/common/os/osservice/media_srcs.cmake
|
|
|
-@@ -18,12 +18,15 @@
|
|
|
- # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
|
- # OTHER DEALINGS IN THE SOFTWARE.
|
|
|
-
|
|
|
-+configure_file(${CMAKE_CURRENT_LIST_DIR}/mos_compat.h.in ${CMAKE_BINARY_DIR}/mos_compat.h)
|
|
|
-+
|
|
|
- set(TMP_SOURCES_
|
|
|
- ${CMAKE_CURRENT_LIST_DIR}/mos_util_debug_specific.cpp
|
|
|
- ${CMAKE_CURRENT_LIST_DIR}/mos_utilities_specific.cpp
|
|
|
- )
|
|
|
-
|
|
|
- set(TMP_HEADERS_
|
|
|
-+ ${CMAKE_BINARY_DIR}/mos_compat.h
|
|
|
- ${CMAKE_CURRENT_LIST_DIR}/mos_utilities_specific.h
|
|
|
- ${CMAKE_CURRENT_LIST_DIR}/mos_util_debug_specific.h
|
|
|
- )
|
|
|
-diff --git a/media_softlet/linux/common/os/osservice/mos_compat.h.in b/media_softlet/linux/common/os/osservice/mos_compat.h.in
|
|
|
-new file mode 100644
|
|
|
-index 000000000..4a04febe5
|
|
|
---- /dev/null
|
|
|
-+++ b/media_softlet/linux/common/os/osservice/mos_compat.h.in
|
|
|
-@@ -0,0 +1,35 @@
|
|
|
-+/*
|
|
|
-+* Copyright (c) 2022, Intel Corporation
|
|
|
-+*
|
|
|
-+* Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
-+* copy of this software and associated documentation files (the "Software"),
|
|
|
-+* to deal in the Software without restriction, including without limitation
|
|
|
-+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
-+* and/or sell copies of the Software, and to permit persons to whom the
|
|
|
-+* Software is furnished to do so, subject to the following conditions:
|
|
|
-+*
|
|
|
-+* The above copyright notice and this permission notice shall be included
|
|
|
-+* in all copies or substantial portions of the Software.
|
|
|
-+*
|
|
|
-+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
|
-+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
-+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
-+* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
|
-+* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
|
-+* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
|
-+* OTHER DEALINGS IN THE SOFTWARE.
|
|
|
-+*/
|
|
|
-+
|
|
|
-+#ifndef __MOS_COMPAT_H__
|
|
|
-+#define __MOS_COMPAT_H__
|
|
|
-+
|
|
|
-+// clib implementations (musl, uClibc) might provide backtrace(3)
|
|
|
-+// in different header files or not provide it all and rely on external
|
|
|
-+// implementations. So, we need to detect which header to be used.
|
|
|
-+#cmakedefine01 Backtrace_FOUND
|
|
|
-+#if Backtrace_FOUND
|
|
|
-+#include <${Backtrace_HEADER}>
|
|
|
-+#endif
|
|
|
-+
|
|
|
-+#endif // __MOS_COMPAT_H__
|
|
|
-+
|
|
|
-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 305a0e01c..02555837a 100644
|
|
|
---- a/media_softlet/linux/common/os/osservice/mos_utilities_specific.cpp
|
|
|
-+++ b/media_softlet/linux/common/os/osservice/mos_utilities_specific.cpp
|
|
|
-@@ -34,13 +34,13 @@
|
|
|
- #include <signal.h>
|
|
|
- #include <unistd.h> // fork
|
|
|
- #include <algorithm>
|
|
|
--#include <execinfo.h> // backtrace
|
|
|
- #include <sys/types.h>
|
|
|
- #include <sys/stat.h> // fstat
|
|
|
- #include <sys/ipc.h> // System V IPC
|
|
|
- #include <sys/types.h>
|
|
|
- #include <sys/sem.h>
|
|
|
- #include <sys/mman.h>
|
|
|
-+#include "mos_compat.h" // libc variative definitions: backtrace
|
|
|
- #include "mos_user_setting.h"
|
|
|
- #include "mos_utilities_specific.h"
|
|
|
- #include "mos_utilities.h"
|
|
|
-@@ -2492,6 +2492,7 @@ void MosUtilities::MosTraceEvent(
|
|
|
- MOS_FreeMemory(pTraceBuf);
|
|
|
- }
|
|
|
- }
|
|
|
-+#if Backtrace_FOUND
|
|
|
- if (m_mosTraceFilter(TR_KEY_CALL_STACK))
|
|
|
- {
|
|
|
- // reserve space for header and stack size field.
|
|
|
-@@ -2511,6 +2512,7 @@ void MosUtilities::MosTraceEvent(
|
|
|
- size_t ret = write(MosUtilitiesSpecificNext::m_mosTraceFd, traceBuf, nLen);
|
|
|
- }
|
|
|
- }
|
|
|
-+#endif
|
|
|
- }
|
|
|
- return;
|
|
|
- }
|