]> Zhao Yanbai Git Server - minix.git/commitdiff
merge datasizes and unstack
authorBen Gras <ben@minix3.org>
Thu, 5 Aug 2010 14:09:06 +0000 (14:09 +0000)
committerBen Gras <ben@minix3.org>
Thu, 5 Aug 2010 14:09:06 +0000 (14:09 +0000)
commands/Makefile
commands/datasizes/Makefile [deleted file]
commands/datasizes/datasizes.sh [deleted file]
commands/unstack/Makefile
commands/unstack/unstack.sh

index 03de6582609a92b0824129b759b13a1981289035..978ccefb4658078881a4d7444da44ab967d1275d 100644 (file)
@@ -7,7 +7,7 @@ SUBDIR= aal add_route adduser advent arp ash at autil awk \
        binpackages binsizes bzip2 bzip2recover cal calendar \
        cat cawf cd  cdprobe checkhier chmem \
        chmod chown chroot ci cksum cleantmp clear cmp co \
-       comm compress cp crc cron crontab cut datasizes date \
+       comm compress cp crc cron crontab cut date \
        dd de decomp16 DESCRIBE dev2name devsize df dhcpd \
        dhrystone diff dirname dis88 du dumpcore easypack \
        ed eject elle elvis env expand factor file \
diff --git a/commands/datasizes/Makefile b/commands/datasizes/Makefile
deleted file mode 100644 (file)
index 95e6110..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-SCRIPTS= datasizes.sh
-MAN=
-
-.include <bsd.prog.mk>
diff --git a/commands/datasizes/datasizes.sh b/commands/datasizes/datasizes.sh
deleted file mode 100644 (file)
index 2c45a67..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-if [ $# -ne 1 ]
-then   echo "Usage: $0 <executable>"
-       exit 1
-fi
-
-if file $1 | grep NSYM >/dev/null 2>&1; then
-  NM="gnm --radix=d"
-else
-  NM="acknm -d"
-fi
-
-$NM -n $1 | grep ' [bBdD] [^.]' | awk '{ if (lastpos) printf "%10ld kB  %s\n", ($1-lastpos)/1024, lastname; lastpos=$1; lastname=$3 }' | sort -n
index 13cbdce357a54a140c4747bd19bcb279dcbddf3a..9527eb3354b2180c6b10be0102ce1f58ebef32b0 100644 (file)
@@ -1,4 +1,6 @@
 SCRIPTS= unstack.sh
 MAN=
 
+LINKS+=$(BINDIR)/unstack $(BINDIR)/datasizes
+
 .include <bsd.prog.mk>
index 648f7609267eb14ac8b3bb1a0b435e46688076a4..1be8c93c49c895c02eec2d6a5a7637cdc650a3b0 100644 (file)
@@ -1,26 +1,71 @@
 #!/bin/sh
 
+# Look at /usr/pkg/bin first in case there is an old nm in /usr/bin
+PATH=/usr/pkg/bin:$PATH:/usr/gnu/bin
+
+# Check usage
 if [ $# -lt 1 ]
-then   echo "Usage: $0 <executable> [0x... [0x... ] ]"
+then   echo "Usage: unstack <executable> [0x... [0x... ] ]"
+       echo "       datasizes <executable>"
        exit 1
 fi
 
-PATH=$PATH:/usr/gnu/bin:/usr/pkg/bin
-
-if file $1 | grep NSYM >/dev/null 2>&1; then
-  NM="gnm --radix=d"
-else
-  NM="acknm -d"
-fi
+# Check invocation mode
+case "`basename $0`" in
+       datasizes)
+               mode=data
+               ;;
+       unstack)
+               mode=stack
+               ;;
+       *)
+               echo "Invoked as $0?"
+               exit 1
+               ;;
+esac
 
+# Get executable name
 executable=$1
 shift
 
-while [ $# -gt 0 ]
-do     dec="`printf %d $1`"
-       $NM -n $executable | grep ' [Tt] [^.]' | awk '
-         {  if($1 > '$dec') { printf "%s+0x%x\n", name, '$dec'-offset; exit }
-            name=$3; offset=$1
-         }'
-       shift
-done
+# gnu nm can be gnm or nm
+if which gnm >/dev/null 2>&1
+then   GNM=gnm
+else   GNM=nm
+fi
+
+# Invoke gnu nm or ack nm?
+if file $executable | grep NSYM >/dev/null 2>&1
+then   NM="$GNM --radix=d"
+else   NM="acknm -d"
+fi
+
+# Invoked as unstack?
+if [ $mode = stack ]
+then
+       while [ $# -gt 0 ]
+       do      dec="`printf %d $1`"
+               $NM -n $executable | grep ' [Tt] [^.]' | awk '
+                 {  if($1 > '$dec') { printf "%s+0x%x\n", name, '$dec'-offset; exit }
+                    name=$3; offset=$1
+                 }'
+               shift
+       done
+
+       exit 0
+fi
+
+# Invoked as datasizes?
+if [ $mode = data ]
+then
+       $NM -n $executable |
+               grep ' [bBdD] [^.]' | awk '{ if (lastpos) printf "%10ld kB  %s\n", ($1-lastpos)/1024, lastname; lastpos=$1; lastname=$3 }' | sort -n
+
+       exit 0
+fi
+
+# Can't happen.
+echo "Impossible invocation."
+
+exit 1
+