diff --git a/eng/native/configuretools.cmake b/eng/native/configuretools.cmake index 7624b31ac46c4f..f42eef16c0bb15 100644 --- a/eng/native/configuretools.cmake +++ b/eng/native/configuretools.cmake @@ -53,6 +53,7 @@ if(NOT WIN32 AND NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_WASI) if(NOT CLR_CMAKE_TARGET_APPLE AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS)) locate_toolchain_exec(objdump CMAKE_OBJDUMP YES) + locate_toolchain_exec(readelf CMAKE_READELF YES) unset(CMAKE_OBJCOPY CACHE) locate_toolchain_exec(objcopy CMAKE_OBJCOPY NO) diff --git a/eng/native/genmoduleindex.sh b/eng/native/genmoduleindex.sh index 399a972d71d9a2..d2cb9bc6aa2d41 100755 --- a/eng/native/genmoduleindex.sh +++ b/eng/native/genmoduleindex.sh @@ -5,7 +5,7 @@ set -euo pipefail if [[ "$#" -lt 2 ]]; then - echo "Usage: genmoduleindex.sh ModuleBinaryFile IndexHeaderFile" + echo "Usage: genmoduleindex.sh ModuleBinaryFile IndexHeaderFile readelfBinaryPath" exit 1 fi @@ -25,16 +25,18 @@ function printIdAsBinary() { case "$(uname -s)" in Darwin) - cmd="dwarfdump -u $1" + cmd="dwarfdump" + arg="-u" pattern='^UUID: ([0-9A-Fa-f\-]+)';; *) - cmd="readelf -n $1" + cmd="$3" + arg="-n" pattern='^[[:space:]]*Build ID: ([0-9A-Fa-f\-]+)';; esac -while read -r line; do +"$cmd" "$arg" "$1" | while read -r line; do if [[ "$line" =~ $pattern ]]; then printIdAsBinary "${BASH_REMATCH[1]//-/}" break fi -done < <(eval "$cmd") > "$2" +done > "$2" diff --git a/src/coreclr/debug/runtimeinfo/CMakeLists.txt b/src/coreclr/debug/runtimeinfo/CMakeLists.txt index b1763b22c1898d..e6d45ada120131 100644 --- a/src/coreclr/debug/runtimeinfo/CMakeLists.txt +++ b/src/coreclr/debug/runtimeinfo/CMakeLists.txt @@ -15,7 +15,7 @@ function(generate_module_index Target ModuleIndexFile) add_custom_command( OUTPUT ${ModuleIndexFile} - COMMAND ${CLR_ENG_NATIVE_DIR}/genmoduleindex${scriptExt} $ ${ModuleIndexFile} + COMMAND ${CLR_ENG_NATIVE_DIR}/genmoduleindex${scriptExt} $ ${ModuleIndexFile} ${CMAKE_READELF} DEPENDS ${Target} COMMENT "Generating ${Target} module index file -> ${ModuleIndexFile}" )