#!/usr/bin/env bash set -euo pipefail elf="${1:?usage: check_task03_elf.sh ELF [tool-prefix]}" prefix="${2:-riscv64-unknown-elf-}" nm="${prefix}nm" objdump="${prefix}objdump" test -s "$elf" for symbol in pvPortMalloc vPortFree prvInsertBlockIntoFreeList ucHeap \ heap4_fragmented_checkpoint task03_debug_checkpoint g_task03_pass; do "$nm" -a "$elf" | grep -E "[[:space:]]${symbol}$" >/dev/null done "$objdump" -d "$elf" | grep -E 'addi[[:space:]]+sp,sp,-' >/dev/null printf 'PASS Task 3 links upstream heap_4 and observable checkpoints: %s\n' "$elf"