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