summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-02-20 21:20:05 -0800
committerKeith Packard <keithp@keithp.com>2010-02-20 21:20:05 -0800
commita5215c2bd9249a285fc834db0c453fb3e7daed87 (patch)
treebd7dea60caebef8d92d3fb1560d49368248e888d /src
parent18eeb79026f7e5c54bf99435537c024427011a36 (diff)
Add back stack size checking to altos linking phase
This verifies that the stack start specified during the compile will work with the resulting program Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.proto2
-rwxr-xr-xsrc/check-stack7
2 files changed, 5 insertions, 4 deletions
diff --git a/src/Makefile.proto b/src/Makefile.proto
index c98abca6..4f4252ad 100644
--- a/src/Makefile.proto
+++ b/src/Makefile.proto
@@ -177,6 +177,7 @@ include Makefile.defs
CFLAGS += $(PRODUCT_DEF) -I.
NICKLE=nickle
+CHECK_STACK=sh ../check-stack
REL=$(SRC:.c=.rel) ao_product.rel
ADB=$(REL:.rel=.adb)
@@ -207,6 +208,7 @@ all: ../$(PROG)
../$(PROG): $(REL) Makefile Makefile.defs ../Makefile.proto
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(REL) && mv $(PROG) ..
+ $(call quiet,CHECK_STACK) ../ao.h $(@F:.ihx=.mem)
../altitude.h: make-altitude
nickle $< > $@
diff --git a/src/check-stack b/src/check-stack
index 82680b88..1e8044e0 100755
--- a/src/check-stack
+++ b/src/check-stack
@@ -2,12 +2,11 @@
HEADER=$1
MEM=$2
-HEADER_STACK=`awk '/#define AO_STACK_START/ {print $3}' $HEADER | nickle`
-MEM_STACK=`awk '/Stack starts at/ {print $4}' $MEM | nickle`
+HEADER_STACK=`awk '/#define AO_STACK_START/ {print strtonum($3)}' $HEADER`
+MEM_STACK=`awk '/Stack starts at/ {print strtonum ($4)}' $MEM`
if [ "$HEADER_STACK" -lt "$MEM_STACK" ]; then
- MIN=0x`nickle -e "$MEM_STACK # 16"`
- echo "Set AO_STACK_START to at least $MIN"
+ echo $MEM_STACK | awk '{ printf ("Set AO_STACK_START to at least 0x%x\n", $1); }'
exit 1
else
exit 0