From e4f05a904694dafdd7c62be0df328ee381a975d1 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Thu, 15 Jul 2021 18:17:58 +1000 Subject: [PATCH] Kernel: Make new kernel build process work on macOS Use objcopy from the toolchain so that the changes introduced in 7236584 will succeed on macOS. Fixes #8768. --- CMakeLists.txt | 1 + Kernel/CMakeLists.txt | 4 ++-- Kernel/embedmap.sh | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e08a3e7967..1cac1a5144 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,6 +167,7 @@ else() set(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}gcc-ranlib) set(CMAKE_STRIP ${TOOLCHAIN_PREFIX}strip) set(CMAKE_AR ${TOOLCHAIN_PREFIX}gcc-ar) + set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) endif() foreach(lang ASM C CXX OBJC OBJCXX) diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index d432da9980..8b2ace0027 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -413,9 +413,9 @@ add_dependencies(${KERNEL_TARGET} kernel_heap) add_custom_command( TARGET ${KERNEL_TARGET} POST_BUILD - COMMAND ${TOOLCHAIN_PREFIX}objcopy -O elf32-i386 ${CMAKE_CURRENT_BINARY_DIR}/${KERNEL_TARGET} ${CMAKE_CURRENT_BINARY_DIR}/Kernel + COMMAND ${CMAKE_OBJCOPY} -O elf32-i386 ${CMAKE_CURRENT_BINARY_DIR}/${KERNEL_TARGET} ${CMAKE_CURRENT_BINARY_DIR}/Kernel COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/mkmap.sh - COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/embedmap.sh + COMMAND ${CMAKE_COMMAND} -E env OBJCOPY=${CMAKE_OBJCOPY} sh ${CMAKE_CURRENT_SOURCE_DIR}/embedmap.sh BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/Kernel ${CMAKE_CURRENT_BINARY_DIR}/kernel.map ) diff --git a/Kernel/embedmap.sh b/Kernel/embedmap.sh index 2f341fd97d..58e33e8a1f 100644 --- a/Kernel/embedmap.sh +++ b/Kernel/embedmap.sh @@ -1,5 +1,6 @@ #!/bin/sh tmp=$(mktemp) (cat kernel.map; printf '%b' '\0') > "$tmp" -objcopy --update-section .ksyms="$tmp" Kernel +OBJCOPY="${OBJCOPY:-objcopy}" +"$OBJCOPY" --update-section .ksyms="$tmp" Kernel rm -f "$tmp"