From: Tormod Volden <debian.tormod@gmail.com>
authorAlan Cox <alan@linux.intel.com>
Tue, 20 Feb 2018 14:24:54 +0000 (14:24 +0000)
committerAlan Cox <alan@linux.intel.com>
Tue, 20 Feb 2018 14:24:54 +0000 (14:24 +0000)
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
---
 Kernel/platform-dragon-nx32/Makefile |  1 +
 Kernel/tools/lw-checkmap             | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/Kernel/platform-dragon-nx32/Makefile b/Kernel/platform-dragon-nx32/Makefile
index efea7ab..8a40526 100644
--- a/Kernel/platform-dragon-nx32/Makefile
+++ b/Kernel/platform-dragon-nx32/Makefile
@@ -60,3 +60,4 @@ image:
  devsd.o devsd_discard.o spi.o devscsi.o devscsi_discard.o \
  scsi_tc3.o discard.o
  ../tools/pad256 ../fuzix.bin
+ ../tools/lw-checkmap ../fuzix.map
diff --git a/Kernel/tools/lw-checkmap b/Kernel/tools/lw-checkmap
index f98a552..9402b2f 100755
--- a/Kernel/tools/lw-checkmap
+++ b/Kernel/tools/lw-checkmap
@@ -1,8 +1,14 @@
 :
 # Simple check of map file generated by lwlink (LWTOOLS)
-grep ^Section "$1" | sort -k5 | awk '{
+grep ^Section "$1" | sort -k5 | awk '
+  BEGIN{ errs=0 }
+
+  {
  st=strtonum("0x"$6);
  if (en<st) {printf "free 0x%x-0x%x = %i\n",en,st,st-en};
- if (en>st) {printf "overlap at 0x%x-0x%x!\n",st,en};
+ if (en>st) {printf "overlap at 0x%x-0x%x!\n",st,en; errs++};
  en=st+strtonum("0x"$8);
-}'
+  }
+
+  END{ if (errs>0) {exit 1}; }
+'
--
2.7.4

Kernel/platform-dragon-nx32/Makefile
Kernel/tools/lw-checkmap

index efea7ab..8a40526 100644 (file)
@@ -60,3 +60,4 @@ image:
        devsd.o devsd_discard.o spi.o devscsi.o devscsi_discard.o \
        scsi_tc3.o discard.o
        ../tools/pad256 ../fuzix.bin
+       ../tools/lw-checkmap ../fuzix.map
index f98a552..9402b2f 100755 (executable)
@@ -1,8 +1,14 @@
 :
 # Simple check of map file generated by lwlink (LWTOOLS)
-grep ^Section "$1" | sort -k5 | awk '{
+grep ^Section "$1" | sort -k5 | awk '
+  BEGIN{ errs=0 }
+
+  {
        st=strtonum("0x"$6);
        if (en<st) {printf "free 0x%x-0x%x = %i\n",en,st,st-en};
-       if (en>st) {printf "overlap at 0x%x-0x%x!\n",st,en};
+       if (en>st) {printf "overlap at 0x%x-0x%x!\n",st,en; errs++};
        en=st+strtonum("0x"$8);
-}'
+  }
+
+  END{ if (errs>0) {exit 1}; }
+'