3 # Copyright (c) 2013 Qualcomm Atheros, Inc.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted (subject to the limitations in the
8 # disclaimer below) provided that the following conditions are met:
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
13 # * Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the
18 # * Neither the name of Qualcomm Atheros nor the names of its
19 # contributors may be used to endorse or promote products derived
20 # from this software without specific prior written permission.
22 # NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
23 # GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
24 # HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
25 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
26 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
31 # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
32 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
33 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
34 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 # This script is intended for use with separately linked ROM and RAM.
37 # It creates EITHER a linker script that satisfies references made by RAM
38 # applications to ROM symbols OR a linker script that forces symbols to
39 # be included in a ROM image.
41 # The option "--addrs" causes the RAM linkage script to be generated
42 # and the option "--externs" causes the ROM linkage script to be generated.
45 # make_ld.sh --addrs athos.rom.out athos.rom.symbols > rom.addrs.ld
46 # make_ld.sh --externs athos.rom.symbols > rom.externs.ld
52 echo $progname '{--addrs ROM_ELF_Image | --externs} symbol_file'
56 addr0=`echo $1 | sed 's/
\r$//'`
57 addr=0x`nm $image_file | grep -w $addr0 | cut -d ' ' -f 1`
58 if [ "$addr" != "0x" ]
60 echo PROVIDE \( $addr0 = $addr \)\;
65 echo EXTERN \( $1 \)\;
71 if [ "$script_choice"=="--addrs" ]
76 if [ ! -r "$image_file" ]
78 echo "Cannot read ELF image: $image_file"
82 elif [ "$script_choice"=="--externs" ]
87 if [ ! -r "$symbol_file" ]
89 echo "Cannot read symbol list from: $symbol_file"
96 for i in `cat $symbol_file`