Introduce debuginfo package

debuginfo package contains stripped debug symbols.
Generating debug symbols have been enabled for Release builds.

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski 2021-01-20 16:25:05 +00:00 committed by Compute-Runtime-Automation
parent 5d2ea72db6
commit 5763b77bb9
5 changed files with 66 additions and 2 deletions

View File

@ -124,6 +124,10 @@ if(MSVC AND ENABLE_VS_FASTLINK)
string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG " /debug:FASTLINK")
endif()
if(UNIX)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -g")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -g")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -g")
set(CMAKE_C_FLAGS_RELEASEINTERNAL "${CMAKE_C_FLAGS_RELEASEINTERNAL} -g")
set(CMAKE_CXX_FLAGS_RELEASEINTERNAL "${CMAKE_CXX_FLAGS_RELEASEINTERNAL} -g")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASEINTERNAL "${CMAKE_SHARED_LINKER_FLAGS_RELEASEINTERNAL} -g")
@ -193,6 +197,16 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${NEO_BINARY_DIR}/lib)
# determine Neo version
include(version.cmake)
# set variables for symbols stripping
if(UNIX)
set_property(GLOBAL PROPERTY DEBUG_SYMBOL_FILES "")
set_property(GLOBAL PROPERTY IGDRCL_SYMBOL_FILE "")
set_property(GLOBAL APPEND PROPERTY NEO_OCL_COMPONENTS_LIST "neo_debug_symbols")
set(STRIP_SYMBOLS_TARGET strip_debug_symbols)
set(DEBUG_SYMBOL_INSTALL_DIR "/usr/lib/debug${CMAKE_INSTALL_FULL_LIBDIR}")
add_custom_target(${STRIP_SYMBOLS_TARGET} ALL)
endif()
# We want to build with the static, multithreaded runtime libraries (as opposed
# to the multithreaded runtime DLLs)
if(MSVC)

View File

@ -491,6 +491,18 @@ if(BUILD_WITH_L0)
)
if(UNIX)
get_filename_component(lib_file_name $<TARGET_FILE:${TARGET_NAME_L0}> NAME_WE)
set(symbols_file_name ${lib_file_name}.debug)
set(debug_symbols_target_name "${STRIP_SYMBOLS_TARGET}_${TARGET_NAME_L0}")
add_custom_target(${debug_symbols_target_name}
COMMAND sh -c "objcopy --only-keep-debug ${lib_file_name} ${symbols_file_name}"
COMMAND sh -c "strip -g ${lib_file_name}"
COMMAND sh -c "objcopy --add-gnu-debuglink=${symbols_file_name} ${lib_file_name}"
)
add_dependencies(${debug_symbols_target_name} ${TARGET_NAME_L0})
add_dependencies(${STRIP_SYMBOLS_TARGET} ${debug_symbols_target_name})
set_property(GLOBAL APPEND PROPERTY DEBUG_SYMBOL_FILES "${symbols_file_name}")
install(TARGETS ${TARGET_NAME_L0}
LIBRARY
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2020 Intel Corporation
# Copyright (C) 2018-2021 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
@ -135,6 +135,18 @@ if(${GENERATE_EXECUTABLE})
)
if(UNIX)
get_filename_component(lib_file_name $<TARGET_FILE:${NEO_DYNAMIC_LIB_NAME}> NAME_WE)
set(symbols_file_name ${lib_file_name}.debug)
set(debug_symbols_target_name "${STRIP_SYMBOLS_TARGET}_${NEO_DYNAMIC_LIB_NAME}")
add_custom_target(${debug_symbols_target_name}
COMMAND sh -c "objcopy --only-keep-debug ${lib_file_name} ${symbols_file_name}"
COMMAND sh -c "strip -g ${lib_file_name}"
COMMAND sh -c "objcopy --add-gnu-debuglink=${symbols_file_name} ${lib_file_name}"
)
add_dependencies(${debug_symbols_target_name} ${NEO_DYNAMIC_LIB_NAME})
add_dependencies(${STRIP_SYMBOLS_TARGET} ${debug_symbols_target_name})
set_property(GLOBAL PROPERTY IGDRCL_SYMBOL_FILE "${symbols_file_name}")
install(FILES
$<TARGET_FILE:${NEO_DYNAMIC_LIB_NAME}>
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2017-2020 Intel Corporation
# Copyright (C) 2017-2021 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
@ -45,6 +45,17 @@ if(UNIX)
)
install(FILES ${NEO_BINARY_DIR}/intel.icd DESTINATION ${OCL_ICD_VENDORDIR} COMPONENT opencl)
get_property(DEBUG_SYMBOL_FILES GLOBAL PROPERTY DEBUG_SYMBOL_FILES)
install(FILES ${DEBUG_SYMBOL_FILES}
DESTINATION ${DEBUG_SYMBOL_INSTALL_DIR}
COMPONENT neo_debug_symbols
)
get_property(IGDRCL_SYMBOL_FILE GLOBAL PROPERTY IGDRCL_SYMBOL_FILE)
install(FILES ${IGDRCL_SYMBOL_FILE}
DESTINATION ${DEBUG_SYMBOL_INSTALL_DIR}/intel-opencl
COMPONENT neo_debug_symbols
)
if(NEO_CPACK_GENERATOR)
set(CPACK_GENERATOR "${NEO_CPACK_GENERATOR}")
else()
@ -106,14 +117,17 @@ if(UNIX)
set(CPACK_DEBIAN_OPENCL_FILE_NAME "intel-opencl_${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-1~${os_codename}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_OCLOC_FILE_NAME "intel-ocloc_${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-1~${os_codename}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_LEVEL-ZERO-GPU_FILE_NAME "intel-level-zero-gpu_${NEO_L0_VERSION_MAJOR}.${NEO_L0_VERSION_MINOR}.${NEO_VERSION_BUILD}-1~${os_codename}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_DEBIAN_NEO_DEBUG_SYMBOLS_FILE_NAME "intel-opencl-debuginfo_${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-1~${os_codename}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set(CPACK_RPM_OPENCL_FILE_NAME "intel-opencl-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-${CPACK_RPM_PACKAGE_RELEASE}%{?dist}.${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
set(CPACK_RPM_OCLOC_FILE_NAME "intel-ocloc-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-${CPACK_RPM_PACKAGE_RELEASE}%{?dist}.${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
set(CPACK_RPM_LEVEL-ZERO-GPU_FILE_NAME "intel-level-zero-gpu-${NEO_L0_VERSION_MAJOR}.${NEO_L0_VERSION_MINOR}.${NEO_VERSION_BUILD}-${CPACK_RPM_PACKAGE_RELEASE}%{?dist}.${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
set(CPACK_RPM_NEO_DEBUG_SYMBOLS_FILE_NAME "intel-opencl-debuginfo-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-${CPACK_RPM_PACKAGE_RELEASE}%{?dist}.${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
set(CPACK_ARCHIVE_OPENCL_FILE_NAME "intel-opencl-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-${os_codename}-${CPACK_PACKAGE_ARCHITECTURE}")
set(CPACK_ARCHIVE_OCLOC_FILE_NAME "intel-ocloc-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-${os_codename}-${CPACK_PACKAGE_ARCHITECTURE}")
set(CPACK_ARCHIVE_LEVEL-ZERO-GPU_FILE_NAME "intel-level-zero-gpu-${NEO_L0_VERSION_MAJOR}.${NEO_L0_VERSION_MINOR}.${NEO_VERSION_BUILD}-${os_codename}_${CPACK_PACKAGE_ARCHITECTURE}")
set(CPACK_ARCHIVE_NEO_DEBUG_SYMBOLS_FILE_NAME "intel-opencl-debuginfo-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}-${os_codename}-${CPACK_PACKAGE_ARCHITECTURE}")
else()
if(CPACK_GENERATOR STREQUAL "DEB")
set(CPACK_PACKAGE_FILE_NAME "intel-compute-runtime_${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_VERSION_BUILD}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")

View File

@ -191,6 +191,18 @@ else()
endif()
if(UNIX)
get_filename_component(lib_file_name $<TARGET_FILE:${OCLOC_NAME}_lib> NAME_WE)
set(symbols_file_name ${lib_file_name}.debug)
set(debug_symbols_target_name "${STRIP_SYMBOLS_TARGET}_${OCLOC_NAME}_lib")
add_custom_target(${debug_symbols_target_name}
COMMAND sh -c "objcopy --only-keep-debug ${lib_file_name} ${symbols_file_name}"
COMMAND sh -c "strip -g ${lib_file_name}"
COMMAND sh -c "objcopy --add-gnu-debuglink=${symbols_file_name} ${lib_file_name}"
)
add_dependencies(${debug_symbols_target_name} ${OCLOC_NAME}_lib)
add_dependencies(${STRIP_SYMBOLS_TARGET} ${debug_symbols_target_name})
set_property(GLOBAL APPEND PROPERTY DEBUG_SYMBOL_FILES "${symbols_file_name}")
set_property(GLOBAL APPEND PROPERTY NEO_OCL_COMPONENTS_LIST ${OCLOC_NAME})
install(FILES $<TARGET_FILE:${OCLOC_NAME}>
DESTINATION ${CMAKE_INSTALL_BINDIR}