From 7608af13cd61e615e643d08f6ce27cd0ae74028f Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Thu, 30 Dec 2021 17:17:29 +0100 Subject: [PATCH] Kernel: Use the toolchain's `nm` in mkmap.sh By using the binary from our build of binutils, we can be sure that `nm` supports demangling symbols, so we can avoid spawning a separate `c++filt` process. --- Kernel/CMakeLists.txt | 2 +- Kernel/mkmap.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index bce726aa8a..f98f5dd1e7 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -517,7 +517,7 @@ endif() add_custom_command( TARGET Kernel POST_BUILD - COMMAND ${CMAKE_COMMAND} -E env CXXFILT=${SERENITY_CXXFILT} sh ${CMAKE_CURRENT_SOURCE_DIR}/mkmap.sh + COMMAND ${CMAKE_COMMAND} -E env NM=${CMAKE_NM} 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 34198dae73..5400259468 100644 --- a/Kernel/mkmap.sh +++ b/Kernel/mkmap.sh @@ -1,7 +1,7 @@ #!/bin/sh tmp=$(mktemp) -nm -n Kernel | grep -vE \\.Lubsan_data | awk '{ if ($2 != "a") print; }' | uniq > "$tmp" +NM="${NM:-nm}" +"$NM" -C -n Kernel | grep -vE \\.Lubsan_data | awk '{ if ($2 != "a") print; }' | uniq > "$tmp" printf "%08x\n" "$(wc -l "$tmp" | awk '{print $1}')" > kernel.map -CXXFILT="${CXXFILT:-c++filt}" -"$CXXFILT" < "$tmp" >> kernel.map +cat "$tmp" >> kernel.map rm -f "$tmp"