The option ROM header contains a one-byte field indicating the number of 512-byte sectors in the ROM image. Currently it is linked to contain the number of uncompressed sectors, with an instruction to the compressor to correct it. This causes link failure when the uncompressed size of the ROM image is over 128k. Fix by replacing the SUBx compressor fixup with an ADDx fixup that adds the total compressed output length, scaled as requested, to an addend stored in the field where the final length value will be placed. This is similar to the behavior of ELF relocations, and ensures that an overflow error will not be generated unless the compressed size is still too large for the field. This also allows us to do away with the _filesz_pgh and _filesz_sect calculations exported by the linker script. Output tested bitwise identical to the old SUBx mechanism on hd, dsk, lkrn, and rom prefixes, on both 32-bit and 64-bit processors. Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>tags/v0.9.8
|
|
||
146 |
|
146 |
|
147 |
|
147 |
|
148 |
|
148 |
|
149 |
|
|
|
|
149 |
|
|
150 |
|
150 |
|
151 |
|
|
|
|
151 |
|
|
152 |
|
152 |
|
153 |
|
153 |
|
154 |
|
154 |
|
|
|
||
65 |
|
65 |
|
66 |
|
66 |
|
67 |
|
67 |
|
68 |
|
|
|
|
68 |
|
|
69 |
|
69 |
|
70 |
|
70 |
|
71 |
|
|
|
|
71 |
|
|
72 |
|
72 |
|
73 |
|
73 |
|
74 |
|
74 |
|
|
|
||
94 |
|
94 |
|
95 |
|
95 |
|
96 |
|
96 |
|
97 |
|
|
|
|
97 |
|
|
98 |
|
98 |
|
99 |
|
99 |
|
100 |
|
|
|
|
100 |
|
|
101 |
|
101 |
|
102 |
|
102 |
|
103 |
|
103 |
|
|
|
||
30 |
|
30 |
|
31 |
|
31 |
|
32 |
|
32 |
|
33 |
|
|
|
34 |
|
|
|
|
33 |
|
|
|
34 |
|
|
35 |
|
35 |
|
36 |
|
36 |
|
37 |
|
37 |
|
38 |
|
|
|
|
38 |
|
|
39 |
|
39 |
|
40 |
|
40 |
|
41 |
|
41 |
|
42 |
|
|
|
|
42 |
|
|
43 |
|
43 |
|
44 |
|
44 |
|
45 |
|
45 |
|
|
|
||
33 |
|
33 |
|
34 |
|
34 |
|
35 |
|
35 |
|
36 |
|
|
|
|
36 |
|
|
37 |
|
37 |
|
38 |
|
38 |
|
39 |
|
39 |
|
|
|
||
46 |
|
46 |
|
47 |
|
47 |
|
48 |
|
48 |
|
49 |
|
|
|
|
49 |
|
|
50 |
|
50 |
|
51 |
|
51 |
|
52 |
|
52 |
|
|
|
||
61 |
|
61 |
|
62 |
|
62 |
|
63 |
|
63 |
|
64 |
|
|
|
|
64 |
|
|
65 |
|
65 |
|
66 |
|
66 |
|
67 |
|
67 |
|
68 |
|
68 |
|
69 |
|
|
|
|
69 |
|
|
70 |
|
70 |
|
71 |
|
71 |
|
72 |
|
72 |
|
73 |
|
73 |
|
74 |
|
74 |
|
75 |
|
75 |
|
76 |
|
|
|
|
76 |
|
|
77 |
|
77 |
|
78 |
|
78 |
|
79 |
|
79 |
|
80 |
|
|
|
|
80 |
|
|
81 |
|
81 |
|
82 |
|
82 |
|
83 |
|
83 |
|
|
|
||
197 |
|
197 |
|
198 |
|
198 |
|
199 |
|
199 |
|
200 |
|
|
|
201 |
|
|
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
|
205 |
|
|
|
206 |
|
|
|
207 |
|
|
|
208 |
|
|
|
209 |
|
200 |
|
|
|
||
38 |
|
38 |
|
39 |
|
39 |
|
40 |
|
40 |
|
41 |
|
|
|
|
41 |
|
|
42 |
|
42 |
|
43 |
|
43 |
|
44 |
|
44 |
|
|
|
||
49 |
|
49 |
|
50 |
|
50 |
|
51 |
|
51 |
|
52 |
|
|
|
|
52 |
|
|
53 |
|
53 |
|
54 |
|
54 |
|
55 |
|
55 |
|
|
|
||
157 |
|
157 |
|
158 |
|
158 |
|
159 |
|
159 |
|
160 |
|
|
|
161 |
|
|
|
|
160 |
|
|
|
161 |
|
|
|
162 |
|
|
162 |
|
163 |
|
163 |
|
164 |
|
164 |
|
165 |
|
|
|
||
194 |
|
195 |
|
195 |
|
196 |
|
196 |
|
197 |
|
197 |
|
|
|
198 |
|
|
|
|
198 |
|
|
|
199 |
|
|
|
200 |
|
|
199 |
|
201 |
|
200 |
|
202 |
|
201 |
|
203 |
|
|
|
||
207 |
|
209 |
|
208 |
|
210 |
|
209 |
|
211 |
|
210 |
|
|
|
211 |
|
|
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
|
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
215 |
|
217 |
|
216 |
|
|
|
217 |
|
|
|
218 |
|
|
|
219 |
|
|
|
|
218 |
|
|
|
219 |
|
|
|
220 |
|
|
|
221 |
|
|
220 |
|
222 |
|
221 |
|
223 |
|
222 |
|
|
|
|
224 |
|
|
223 |
|
225 |
|
224 |
|
226 |
|
225 |
|
227 |
|
226 |
|
228 |
|
227 |
|
229 |
|
228 |
|
|
|
229 |
|
|
|
230 |
|
|
|
|
230 |
|
|
231 |
|
231 |
|
232 |
|
232 |
|
233 |
|
|
|
234 |
|
|
|
235 |
|
|
|
236 |
|
|
|
237 |
|
|
|
238 |
|
|
|
239 |
|
|
|
240 |
|
|
|
241 |
|
|
|
242 |
|
|
|
243 |
|
|
|
244 |
|
|
|
245 |
|
|
|
246 |
|
|
|
247 |
|
|
|
248 |
|
|
|
249 |
|
|
|
250 |
|
|
|
|
233 |
|
|
|
234 |
|
|
|
235 |
|
|
|
236 |
|
|
|
237 |
|
|
|
238 |
|
|
|
239 |
|
|
|
240 |
|
|
|
241 |
|
|
251 |
|
242 |
|
252 |
|
|
|
|
243 |
|
|
253 |
|
244 |
|
254 |
|
245 |
|
255 |
|
246 |
|
256 |
|
247 |
|
|
248 |
|
|
|
249 |
|
|
|
250 |
|
|
|
251 |
|
|
|
252 |
|
|
|
253 |
|
|
|
254 |
|
|
|
255 |
|
|
|
256 |
|
|
|
257 |
|
|
|
258 |
|
|
|
259 |
|
|
|
260 |
|
|
|
261 |
|
|
|
262 |
|
|
|
263 |
|
|
|
264 |
|
|
|
265 |
|
|
|
266 |
|
|
|
267 |
|
|
|
268 |
|
|
|
269 |
|
|
|
270 |
|
|
|
271 |
|
|
|
272 |
|
|
|
273 |
|
|
|
274 |
|
|
|
275 |
|
|
|
276 |
|
|
|
277 |
|
|
|
278 |
|
|
|
279 |
|
|
|
280 |
|
|
|
281 |
|
|
257 |
|
282 |
|
258 |
|
|
|
259 |
|
|
|
260 |
|
|
|
|
283 |
|
|
|
284 |
|
|
|
285 |
|
|
|
286 |
|
|
261 |
|
287 |
|
262 |
|
288 |
|
263 |
|
289 |
|
264 |
|
290 |
|
265 |
|
291 |
|
266 |
|
|
|
|
292 |
|
|
267 |
|
293 |
|
268 |
|
294 |
|
269 |
|
|
|
|
295 |
|
|
270 |
|
296 |
|
271 |
|
297 |
|
272 |
|
|
|
|
298 |
|
|
273 |
|
299 |
|
274 |
|
300 |
|
275 |
|
|
|
|
301 |
|
|
276 |
|
302 |
|
277 |
|
303 |
|
278 |
|
|
|
|
304 |
|
|
279 |
|
305 |
|
280 |
|
306 |
|
281 |
|
|
|
|
307 |
|
|
282 |
|
308 |
|
283 |
|
309 |
|
284 |
|
310 |
|
|
|
||
291 |
|
317 |
|
292 |
|
318 |
|
293 |
|
319 |
|
294 |
|
|
|
295 |
|
|
|
296 |
|
|
|
|
320 |
|
|
|
321 |
|
|
|
322 |
|
|
297 |
|
323 |
|
298 |
|
324 |
|
299 |
|
325 |
|