diff --git a/common/common.mk b/common/common.mk index 788a3acc..ca953b37 100644 --- a/common/common.mk +++ b/common/common.mk @@ -4,7 +4,7 @@ MAKEFLAGS += -rR include $(TOOLCHAIN_FILE) export CC_FOR_TARGET export LD_FOR_TARGET -export NM_FOR_TARGET +export OBJDUMP_FOR_TARGET export OBJCOPY_FOR_TARGET export READELF_FOR_TARGET diff --git a/common/gensyms.sh b/common/gensyms.sh index d992235b..e79bec74 100755 --- a/common/gensyms.sh +++ b/common/gensyms.sh @@ -28,9 +28,9 @@ TMP4="$(mktemp)" trap 'rm -f "$TMP1" "$TMP2" "$TMP3" "$TMP4"' EXIT -"$NM_FOR_TARGET" -n "$1" | "$GREP" -i ' t ' > "$TMP1" -"$AWK" '{ print $1 }' "$TMP1" > "$TMP2" -"$AWK" '{ print $3 }' "$TMP1" > "$TMP3" +"$OBJDUMP_FOR_TARGET" -t "$1" | ( "$SED" '/[[:<:]]d[[:>:]]/d' 2>/dev/null || "$SED" '/\bd\b/d' ) | sort > "$TMP1" +"$GREP" "F $4" < "$TMP1" | cut -d' ' -f1 > "$TMP2" +"$GREP" "F $4" < "$TMP1" | "$AWK" 'NF{ print $NF }' > "$TMP3" echo ".section .$2_map" > "$TMP4" echo ".globl $2_map" >> "$TMP4" diff --git a/configure.ac b/configure.ac index 8f985868..d2408c3e 100644 --- a/configure.ac +++ b/configure.ac @@ -116,8 +116,8 @@ AC_CHECK_HEADERS([stdint.h stddef.h stdbool.h limits.h inttypes.h stdio.h stdlib AC_ARG_VAR([TOOLCHAIN_FOR_TARGET], [alternative toolchain prefix for Limine (or 'llvm', or 'gnu')]) AC_ARG_VAR([CC_FOR_TARGET], [C compiler command for Limine]) AC_ARG_VAR([LD_FOR_TARGET], [linker command for Limine]) -AC_ARG_VAR([NM_FOR_TARGET], [nm command for Limine]) AC_ARG_VAR([OBJCOPY_FOR_TARGET], [objcopy command for Limine]) +AC_ARG_VAR([OBJDUMP_FOR_TARGET], [objdump command for Limine]) AC_ARG_VAR([READELF_FOR_TARGET], [readelf command for Limine]) rm -rf toolchain-files @@ -171,10 +171,10 @@ else FREESTANDING_CC="$CC_FOR_TARGET" \ WANT_FREESTANDING_LD=yes \ FREESTANDING_LD="$LD_FOR_TARGET" \ - WANT_FREESTANDING_NM=yes \ - FREESTANDING_NM="$NM_FOR_TARGET" \ WANT_FREESTANDING_OBJCOPY=yes \ FREESTANDING_OBJCOPY="$OBJCOPY_FOR_TARGET" \ + WANT_FREESTANDING_OBJDUMP=yes \ + FREESTANDING_OBJDUMP="$OBJDUMP_FOR_TARGET" \ WANT_FREESTANDING_READELF=yes \ FREESTANDING_READELF="$READELF_FOR_TARGET" \ "$SRCDIR/build-aux/freestanding-toolchain/freestanding-toolchain" 2>"toolchain-files/bios-i686-toolchain.mk" || exit 1 @@ -203,10 +203,10 @@ else FREESTANDING_CC="$CC_FOR_TARGET" \ WANT_FREESTANDING_LD=yes \ FREESTANDING_LD="$LD_FOR_TARGET" \ - WANT_FREESTANDING_NM=yes \ - FREESTANDING_NM="$NM_FOR_TARGET" \ WANT_FREESTANDING_OBJCOPY=yes \ FREESTANDING_OBJCOPY="$OBJCOPY_FOR_TARGET" \ + WANT_FREESTANDING_OBJDUMP=yes \ + FREESTANDING_OBJDUMP="$OBJDUMP_FOR_TARGET" \ "$SRCDIR/build-aux/freestanding-toolchain/freestanding-toolchain" 2>"toolchain-files/uefi-i686-toolchain.mk" || exit 1 BUILD_UEFI_IA32="limine-uefi-ia32" NEED_NASM=yes @@ -232,10 +232,10 @@ else FREESTANDING_CC="$CC_FOR_TARGET" \ WANT_FREESTANDING_LD=yes \ FREESTANDING_LD="$LD_FOR_TARGET" \ - WANT_FREESTANDING_NM=yes \ - FREESTANDING_NM="$NM_FOR_TARGET" \ WANT_FREESTANDING_OBJCOPY=yes \ FREESTANDING_OBJCOPY="$OBJCOPY_FOR_TARGET" \ + WANT_FREESTANDING_OBJDUMP=yes \ + FREESTANDING_OBJDUMP="$OBJDUMP_FOR_TARGET" \ "$SRCDIR/build-aux/freestanding-toolchain/freestanding-toolchain" 2>"toolchain-files/uefi-x86_64-toolchain.mk" || exit 1 BUILD_UEFI_X86_64="limine-uefi-x86-64" NEED_NASM=yes @@ -261,10 +261,10 @@ else FREESTANDING_CC="$CC_FOR_TARGET" \ WANT_FREESTANDING_LD=yes \ FREESTANDING_LD="$LD_FOR_TARGET" \ - WANT_FREESTANDING_NM=yes \ - FREESTANDING_NM="$NM_FOR_TARGET" \ WANT_FREESTANDING_OBJCOPY=yes \ FREESTANDING_OBJCOPY="$OBJCOPY_FOR_TARGET" \ + WANT_FREESTANDING_OBJDUMP=yes \ + FREESTANDING_OBJDUMP="$OBJDUMP_FOR_TARGET" \ "$SRCDIR/build-aux/freestanding-toolchain/freestanding-toolchain" 2>"toolchain-files/uefi-aarch64-toolchain.mk" || exit 1 BUILD_UEFI_AARCH64="limine-uefi-aarch64" fi @@ -289,10 +289,10 @@ else FREESTANDING_CC="$CC_FOR_TARGET" \ WANT_FREESTANDING_LD=yes \ FREESTANDING_LD="$LD_FOR_TARGET" \ - WANT_FREESTANDING_NM=yes \ - FREESTANDING_NM="$NM_FOR_TARGET" \ WANT_FREESTANDING_OBJCOPY=yes \ FREESTANDING_OBJCOPY="$OBJCOPY_FOR_TARGET" \ + WANT_FREESTANDING_OBJDUMP=yes \ + FREESTANDING_OBJDUMP="$OBJDUMP_FOR_TARGET" \ "$SRCDIR/build-aux/freestanding-toolchain/freestanding-toolchain" 2>"toolchain-files/uefi-riscv64-toolchain.mk" || exit 1 BUILD_UEFI_RISCV64="limine-uefi-riscv64" fi @@ -317,10 +317,10 @@ else FREESTANDING_CC="$CC_FOR_TARGET" \ WANT_FREESTANDING_LD=yes \ FREESTANDING_LD="$LD_FOR_TARGET" \ - WANT_FREESTANDING_NM=yes \ - FREESTANDING_NM="$NM_FOR_TARGET" \ WANT_FREESTANDING_OBJCOPY=yes \ FREESTANDING_OBJCOPY="$OBJCOPY_FOR_TARGET" \ + WANT_FREESTANDING_OBJDUMP=yes \ + FREESTANDING_OBJDUMP="$OBJDUMP_FOR_TARGET" \ "$SRCDIR/build-aux/freestanding-toolchain/freestanding-toolchain" 2>"toolchain-files/uefi-loongarch64-toolchain.mk" || exit 1 BUILD_UEFI_LOONGARCH64="limine-uefi-loongarch64" fi diff --git a/test/test.mk b/test/test.mk index 60d525ec..647ff093 100644 --- a/test/test.mk +++ b/test/test.mk @@ -1,7 +1,7 @@ include $(TOOLCHAIN_FILE) export CC_FOR_TARGET export LD_FOR_TARGET -export NM_FOR_TARGET +export OBJDUMP_FOR_TARGET export OBJCOPY_FOR_TARGET export READELF_FOR_TARGET