1 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
4 /* Linker-generated symbols are prefixed with a double underscore.
5 * Decompressor symbols are prefixed with __decompressor_. All other
6 * symbols are the same as in the original object file, i.e. the
22 /* _payload_size is the size of the binary image appended to
25 __payload_size = __payload_end - __payload_start ;
27 /* _size is the size of the runtime image
28 * (start32 + the C code), in bytes.
30 __size = _end - _start ;
32 /* _decompressor_size is the size of the decompressor, in
33 * bytes. For a non-compressed image, start16.lds sets
34 * _decompressor_uncompressed = _decompressor__start = 0.
36 __decompressor_size = __decompressor_uncompressed - __decompressor__start ;
38 /* image__size is the total size of the image, after
39 * decompression and including the decompressor if applicable.
40 * It is therefore the amount of memory that start16's payload
41 * needs in order to execute, in bytes.
43 __image_size = __size + __decompressor_size ;
45 /* Amount to add to runtime symbols to obtain the offset of
46 * that symbol within the image.
48 __offset_adjust = __decompressor_size - _start ;
50 /* Calculations for the stack
52 __stack_size = _estack - _stack ;
53 __offset_stack = _stack + __offset_adjust ;
55 /* Some symbols will be larger than 16 bits but guaranteed to
56 * be multiples of 16. We calculate them in paragraphs and
57 * export these symbols which can be used in 16-bit code
58 * without risk of overflow.
60 __image_size_pgh = ( __image_size / 16 );
61 __start_pgh = ( _start / 16 );
62 __decompressor_size_pgh = ( __decompressor_size / 16 );
63 __offset_stack_pgh = ( __offset_stack / 16 );