Skip to content

Commit 82af40d

Browse files
joaosaffranjoaosaffran-zzdarkbuck
authored
[CMake] Backport LLVM_USE_SPLIT_DWARF from LLVM (#7927)
Backporting LLVM_USE_SPLIT_DWARF from LLVM to fix gcc debug build Fix: #7929 --------- Co-authored-by: Joao Saffran <[email protected]> Co-authored-by: Michael Liao <[email protected]>
1 parent cf912b3 commit 82af40d

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ stages:
9696
configuration: Debug
9797
CC: gcc-9
9898
CXX: g++-9
99+
CMAKE_OPTS: -DLLVM_USE_SPLIT_DWARF=On
99100
MacOS_Clang_Release:
100101
image: ${{ variables.macOS }}
101102
configuration: Release
@@ -164,4 +165,3 @@ stages:
164165
testResultsFormat: 'JUnit'
165166
testResultsFiles: '**/testresults.xunit.xml'
166167
condition: succeededOrFailed()
167-

cmake/modules/HandleLLVMOptions.cmake

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,9 +567,19 @@ if(LLVM_USE_SANITIZER)
567567
endif()
568568
endif()
569569

570-
# Turn on -gsplit-dwarf if requested
571-
if(LLVM_USE_SPLIT_DWARF)
572-
add_definitions("-gsplit-dwarf")
570+
# Turn on -gsplit-dwarf if requested in debug builds.
571+
if (LLVM_USE_SPLIT_DWARF AND
572+
((uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG") OR
573+
(uppercase_CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")))
574+
# Limit to clang and gcc so far. Add compilers supporting this option.
575+
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
576+
CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
577+
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-gsplit-dwarf>)
578+
include(CheckLinkerFlag)
579+
check_linker_flag(CXX "-Wl,--gdb-index" LINKER_SUPPORTS_GDB_INDEX)
580+
append_if(LINKER_SUPPORTS_GDB_INDEX "-Wl,--gdb-index"
581+
CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
582+
endif()
573583
endif()
574584

575585
add_llvm_definitions( -D__STDC_CONSTANT_MACROS )

0 commit comments

Comments
 (0)