annotate extra/ld @ 583:000381ee2d5c default tip

Guard against single operand multiplication when detecting like terms This *shouldn't* happen, but it apparently does in some pathological cases so guard against a single operand multiplication to prevent a crash.
author William Astle <lost@l-w.ca>
date Mon, 04 Nov 2024 23:48:23 -0700
parents a3711f5ac569
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
1 #!/bin/sh
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
2 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
3 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
4 # Copyright 2009 by William Astle <lost@l-w.ca>
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
5 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
6 #This file is part of LWTOOLS.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
7 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
8 #LWTOOLS is free software: you can redistribute it and/or modify it under the
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
9 #terms of the GNU General Public License as published by the Free Software
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
10 #Foundation, either version 3 of the License, or (at your option) any later
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
11 #version.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
12 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
13 #This program is distributed in the hope that it will be useful, but WITHOUT
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
14 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
15 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
16 #more details.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
17 #
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
18 #You should have received a copy of the GNU General Public License along with
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
19 #this program. If not, see <http://www.gnu.org/licenses/>.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
20
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
21 # this was based somewhat on the "as" script from gcc6809
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
22
79
17d82b46f4c9 Removed excess verbosity from the 'ld' wrapper script
lost@l-w.ca
parents: 72
diff changeset
23 #echo "LWTOOLS-ld $0 $*"
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
24 path_to_lwlink=lwlink
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
25
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
26 # Set defaults. Some are based on the target type, which is
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
27 # determined by the name by which the program was invoked.
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
28 output_file=a.out
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
29 libpaths=
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
30 libs=
179
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
31 stdlibpaths="-L=/usr/local/lib -L=/usr/lib -L=/lib"
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
32 verbose=
179
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
33
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
34 if [ "$verbose" = 1 ]; then
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
35 echo "$0 $@"
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
36 fi
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
37
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
38 case $0 in
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
39 *m6809-coco-*)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
40 options="--format=decb"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
41 # options="-b .text=0x2000 -b .data=0x7000 -b .bss=0x7C00 -b .ctors=0x7F00 -b .dtors=0x7F80 -b vector=0x7FF0"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
42 # aslink_options="-nwxst"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
43 # exe_suffix=.bin
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
44 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
45 *)
395
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
46 options="--format=raw"
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
47 # options="-b .text=0x8000 -b .data=0x1000 -b .bss=0x0100 -b .ctors=0xFD00 -b .dtors=0xFE00 -b vector=0xFFF0"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
48 # aslink_options="-nwxso"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
49 # exe_suffix=.s19
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
50 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
51 esac
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
52
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
53
184
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
54 while [ "$*" != "" ]; do
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
55 arg=$1; shift
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
56 case $arg in
184
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
57 -d|-dc|-dp)
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
58 # force allocation of space to common symbols
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
59 # even if relocatable output file is specified
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
60 # not supported by targets
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
61 ;;
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
62 -X)
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
63 # strip unneeded stuff
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
64 # ignored - really just a no-op
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
65 ;;
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
66 -gn)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
67 # Generate NoICE debug file
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
68 # ignored because debugging not supported by targets
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
69 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
70 -gs)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
71 # Generate SDCC debug file
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
72 # ignored because debugging not supported by targets
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
73 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
74 -o)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
75 output_file=$1; shift
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
76 ;;
423
a3711f5ac569 ld wrapper: Add --oformat option
Tormod Volden <debian.tormod@gmail.com>
parents: 395
diff changeset
77 --oformat=*)
a3711f5ac569 ld wrapper: Add --oformat option
Tormod Volden <debian.tormod@gmail.com>
parents: 395
diff changeset
78 arg=${arg#--oformat=};
a3711f5ac569 ld wrapper: Add --oformat option
Tormod Volden <debian.tormod@gmail.com>
parents: 395
diff changeset
79 options="$options --format=$arg"
a3711f5ac569 ld wrapper: Add --oformat option
Tormod Volden <debian.tormod@gmail.com>
parents: 395
diff changeset
80 ;;
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
81 -L*)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
82 arg=${arg#-L}
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
83 libpaths="$libpaths --library-path=$arg"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
84 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
85 -l*)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
86 arg=${arg#-l}
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
87 libs="$libs --library=$arg"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
88 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
89 --section-start)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
90 section_value=$1; shift
197
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
91 options="$options --section-base=$section_value"
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
92 ;;
197
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
93
395
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
94 -Map=*)
423
a3711f5ac569 ld wrapper: Add --oformat option
Tormod Volden <debian.tormod@gmail.com>
parents: 395
diff changeset
95 arg=${arg#-Map=};
395
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
96 options="$options --map=$arg"
197
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
97 ;;
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
98
395
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
99 --script=*)
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
100 options="$options $arg"
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
101 ;;
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
102 -T)
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
103 options="$options --script=$1"; shift
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
104 ;;
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
105 -Tbss)
197
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
106 options="$options --section-base=.bss=$1"; shift
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
107 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
108 -Tdata)
197
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
109 options="$options --section-base=.data=$1"; shift
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
110 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
111 -Ttext|-Tcode)
197
82957c407577 Fix --section-start handling and add --map to ld wrapper.
William Astle <lost@l-w.ca>
parents: 184
diff changeset
112 options="$options --section-base=.text=$1"; shift
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
113 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
114 -v|--verbose)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
115 verbose=1
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
116 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
117 *crt0.o)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
118 startup_files=$arg
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
119 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
120 -g)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
121 # Ignored by GNU ld; we should do the same
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
122 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
123 -h|--help)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
124 echo "ld (m6809)"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
125 exit 0
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
126 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
127 --format-lwex)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
128 options="$options --format=lwex"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
129 ;;
179
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
130
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
131 --sysroot=*)
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
132 options="$options $arg"
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
133 ;;
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
134
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
135 -nostdlib)
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
136 stdlibpaths=
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
137 ;;
184
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
138
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
139 -e)
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
140 options="$options --entry=$1"
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
141 shift
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
142 ;;
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
143
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
144 --entry)
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
145 options="$options $arg"
6433cb024174 Make ld wrapper more capable
lost@l-w.ca
parents: 179
diff changeset
146 ;;
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
147
395
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
148 --relax)
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
149 ;;
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
150 --start-group)
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
151 ;;
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
152 --end-group)
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
153 ;;
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
154 --gc-sections)
26d2791672b1 Update the "ld" wrapper
William Astle <lost@l-w.ca>
parents: 197
diff changeset
155 ;;
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
156 -*)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
157 echo "ld (m6809): unknown option $arg"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
158 exit 1
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
159 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
160 *)
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
161 input_files="$input_files $arg"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
162 ;;
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
163 esac
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
164 done
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
165
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
166 options="$options -o $output_file"
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
167
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
168 if [ "$verbose" = "1" ]; then
179
606123758641 Added --sysroot support to lwlink and the ld wrapper script
lost@l-w.ca
parents: 79
diff changeset
169 echo "$path_to_lwlink $options $input_files $startup_files $libpaths $stdlibpaths $libs"
72
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
170 fi
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
171
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
172 $path_to_lwlink $options $input_files $startup_files $libpaths $libs
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
173 rc=$?
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
174
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
175 if [ "$rc" != "0" ]; then
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
176 rm -f $output_file
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
177 exit $rc
84eb35251849 Added extra scripts that can be used to run gcc6809 with lwtools as its binutils
lost@l-w.ca
parents:
diff changeset
178 fi