From ede397ed5b34164b583ed81158e5b49b8fdc1595 Mon Sep 17 00:00:00 2001 From: iximeow Date: Wed, 4 Nov 2015 23:59:52 -0800 Subject: use progressiflyiosh for status instead of ad-hoc --- build_helpers/compile.sh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'build_helpers/compile.sh') diff --git a/build_helpers/compile.sh b/build_helpers/compile.sh index f00549f..fc97a27 100755 --- a/build_helpers/compile.sh +++ b/build_helpers/compile.sh @@ -1,27 +1,31 @@ -#! /bin/sh +#! /bin/bash set -u set -e +. build_helpers/progressif.ly.io.sh + INPATH="$1" INBASEPATH="${INPATH%.*}" # mangle such that no two names conflict (a/b/c and a/b.c conflicting would be no fun) #OUTNAME="$(echo "$INBASEPATH" | sed 's/\./../g' | sed 's/\//._/g')" OUTNAME="src._kernel._main" -echo -n "[*] Building '$INPATH' to 'tmp/$OUTNAME'... " + # $INPATH +track building_src "Building sources to 'tmp/$OUTNAME'... " gcc -T linker.ld -m32 -Wl,--build-id=none -nostartfiles -nostdlib -ffreestanding $INPATH -o "tmp/$OUTNAME".o -echo " OK!" -echo -n "[+] Start address is... " +trackend building_src t +track find_start "Start address is... " BIN_START=$(objdump tmp/src._kernel._main.o -f | grep start | cut -b 15-) -echo "$BIN_START" +# echo "$BIN_START" +trackend find_start t # this actually writes three extra nulls, not sure why... echo "$BIN_START" | xxd -r - | od -t x --endian=little | head | xxd -r - > "bin/$OUTNAME".bin -echo -n "[+] Stripping unnecessary sections... " +track strip_sections "Stripping unnecessary sections... " objcopy -R .note.gnu.build-id -R .comment -O binary "tmp/$OUTNAME".o "tmp/converted_$OUTNAME".bin -echo " OK!" +trackend strip_sections t -echo -n "[+] Joining kernel and start address... " +track relocate_kernel "Joining kernel and start address... " # adjust for the three extra nulls above dd if="tmp/converted_$OUTNAME".bin of="bin/$OUTNAME".bin seek=4 oflag=seek_bytes conv=notrunc 2>/dev/null -echo " OK!" +trackend relocate_kernel t #rm "tmp/$OUTNAME".o -- cgit v1.1