Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / scripts / makelst
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # A script to dump mixed source code & assembly
4 # with correct relocations from System.map
5 # Requires the following lines in makefile:
6 #%.lst: %.c
7 #       $(CC) $(c_flags) -g -c -o $*.o $< &&
8 #       $(srctree)/scripts/makelst $*.o System.map $(OBJDUMP) > $@
9 #
10 # Copyright (C) 2000 IBM Corporation
11 # Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
12 #            William Stearns <wstearns@pobox.com>
13 #
14
15 # awk style field access
16 field() {
17   shift $1 ; echo $1
18 }
19
20 t1=`$3 --syms $1 | grep .text | grep -m1 " F "`
21 if [ -n "$t1" ]; then
22   t2=`field 6 $t1`
23   if [ ! -r $2 ]; then
24     echo "No System.map" >&2
25   else
26     t3=`grep $t2 $2`
27     t4=`field 1 $t3`
28     t5=`field 1 $t1`
29     t6=`printf "%lu" $((0x$t4 - 0x$t5))`
30   fi
31 fi
32 $3 -r --source --adjust-vma=${t6:-0} $1