diff --git a/CMakeLists.txt b/CMakeLists.txt index ef53cc942f7..f3192236c5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,6 +175,7 @@ else() set(CMAKE_STRIP ${TOOLCHAIN_PREFIX}strip) set(CMAKE_AR ${TOOLCHAIN_PREFIX}gcc-ar) set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) + set(CMAKE_CXXFILT ${TOOLCHAIN_PREFIX}c++filt) endif() foreach(lang ASM C CXX OBJC OBJCXX) diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index 285b5ff950f..40f2ee11cda 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -451,7 +451,7 @@ add_dependencies(Kernel kernel_heap) add_custom_command( TARGET Kernel POST_BUILD - COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/mkmap.sh + COMMAND ${CMAKE_COMMAND} -E env CXXFILT=${CMAKE_CXXFILT} sh ${CMAKE_CURRENT_SOURCE_DIR}/mkmap.sh COMMAND ${CMAKE_COMMAND} -E env OBJCOPY=${CMAKE_OBJCOPY} sh ${CMAKE_CURRENT_SOURCE_DIR}/embedmap.sh COMMAND ${CMAKE_OBJCOPY} --only-keep-debug Kernel Kernel.debug COMMAND ${CMAKE_OBJCOPY} --strip-debug Kernel diff --git a/Kernel/mkmap.sh b/Kernel/mkmap.sh index 37970917a35..34198dae737 100644 --- a/Kernel/mkmap.sh +++ b/Kernel/mkmap.sh @@ -2,5 +2,6 @@ tmp=$(mktemp) nm -n Kernel | grep -vE \\.Lubsan_data | awk '{ if ($2 != "a") print; }' | uniq > "$tmp" printf "%08x\n" "$(wc -l "$tmp" | awk '{print $1}')" > kernel.map -c++filt < "$tmp" >> kernel.map +CXXFILT="${CXXFILT:-c++filt}" +"$CXXFILT" < "$tmp" >> kernel.map rm -f "$tmp"