#!/bin/sh
# Convert a binary file to elf format.  Useful for loading with gdb.

case "$#" in
3)	;;
4)	ARCH=$1-
	shift
	;;
*)	echo "Usage: bin2elf [arch] input output address" >&2
	exit 1
	;;
esac

INPUT=$1
OUTPUT=$2
ADDR=$3

touch /tmp/empty.c
${ARCH}gcc -nostartfiles -nostdlib /tmp/empty.c -o $OUTPUT 2> /dev/null
rm /tmp/empty.c

${ARCH}objcopy --remove-section=.text --remove-section=.data --remove-section=.bss --remove-section=.sbss --remove-section=.comment --remove-section=.note --add-section=.bin=$INPUT --adjust-section-vma=.bin=$ADDR --no-adjust-warnings --set-section-flags=.bin=alloc,load,data $OUTPUT 2> /dev/null
