diff options
Diffstat (limited to 'scripts/makelst')
-rwxr-xr-x | scripts/makelst | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/scripts/makelst b/scripts/makelst index 34bd72391238..4fc80f2b7e19 100755 --- a/scripts/makelst +++ b/scripts/makelst | |||
@@ -1,31 +1,31 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/sh |
2 | # A script to dump mixed source code & assembly | 2 | # A script to dump mixed source code & assembly |
3 | # with correct relocations from System.map | 3 | # with correct relocations from System.map |
4 | # Requires the following lines in Rules.make. | 4 | # Requires the following lines in makefile: |
5 | # Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | ||
6 | # William Stearns <wstearns@pobox.com> | ||
7 | #%.lst: %.c | 5 | #%.lst: %.c |
8 | # $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -g -c -o $*.o $< | 6 | # $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -g -c -o $*.o $< |
9 | # $(TOPDIR)/scripts/makelst $*.o $(TOPDIR)/System.map $(OBJDUMP) | 7 | # $(srctree)/scripts/makelst $*.o $(objtree)/System.map $(OBJDUMP) |
10 | # | 8 | # |
11 | # Copyright (C) 2000 IBM Corporation | 9 | # Copyright (C) 2000 IBM Corporation |
12 | # Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | 10 | # Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) |
11 | # William Stearns <wstearns@pobox.com> | ||
13 | # | 12 | # |
14 | 13 | ||
15 | t1=`$3 --syms $1 | grep .text | grep " F " | head -n 1` | 14 | # awk style field access |
15 | field() { | ||
16 | shift $1 ; echo $1 | ||
17 | } | ||
18 | |||
19 | t1=`$3 --syms $1 | grep .text | grep -m1 " F "` | ||
16 | if [ -n "$t1" ]; then | 20 | if [ -n "$t1" ]; then |
17 | t2=`echo $t1 | gawk '{ print $6 }'` | 21 | t2=`field 6 $t1` |
18 | if [ ! -r $2 ]; then | 22 | if [ ! -r $2 ]; then |
19 | echo "No System.map" >&2 | 23 | echo "No System.map" >&2 |
20 | t7=0 | ||
21 | else | 24 | else |
22 | t3=`grep $t2 $2` | 25 | t3=`grep $t2 $2` |
23 | t4=`echo $t3 | gawk '{ print $1 }'` | 26 | t4=`field 1 $t3` |
24 | t5=`echo $t1 | gawk '{ print $1 }'` | 27 | t5=`field 1 $t1` |
25 | t6=`echo $t4 - $t5 | tr a-f A-F` | 28 | t6=`printf "%lu" $((0x$t4 - 0x$t5))` |
26 | t7=`( echo ibase=16 ; echo $t6 ) | bc` | ||
27 | fi | 29 | fi |
28 | else | ||
29 | t7=0 | ||
30 | fi | 30 | fi |
31 | $3 -r --source --adjust-vma=$t7 $1 | 31 | $3 -r --source --adjust-vma=${t6:-0} $1 |