#!/usr/bin/env bash set -euo pipefail root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" task01_map="$root/build/task01_libc_without_heap/prog.map" task05_map="$root/build/task05_picolibc_malloc/prog.map" grep -q 'libc.a(strlen.c.o)' "$task01_map" if grep -Eq 'libc_stdlib_malloc.c.o|libc_stdlib_free.c.o|libc_misc_picosbrk.c.o' "$task01_map"; then echo 'FAIL Task01: heap-related archive member entered the image' >&2 exit 1 fi for member in libc_stdlib_malloc.c.o libc_stdlib_free.c.o libc_misc_picosbrk.c.o; do grep -q "$member" "$task05_map" done printf '%s\n' \ 'PASS Task01 map: strlen.c.o present, malloc/free/picosbrk absent' \ 'PASS Task05 map: malloc/free/picosbrk archive members present'