mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-16 08:11:31 +00:00
66 lines
1.8 KiB
Plaintext
66 lines
1.8 KiB
Plaintext
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
|
OUTPUT_ARCH(i386)
|
|
|
|
/* Linker-generated symbols are prefixed with a double underscore.
|
|
* Decompressor symbols are prefixed with __decompressor_. All other
|
|
* symbols are the same as in the original object file, i.e. the
|
|
* runtime addresses.
|
|
*/
|
|
|
|
ENTRY(_start16)
|
|
|
|
SECTIONS {
|
|
.text : {
|
|
*(.text)
|
|
}
|
|
.payload : {
|
|
__payload_start = .;
|
|
*(.data)
|
|
__payload_end = .;
|
|
}
|
|
|
|
/* _payload_size is the size of the binary image appended to
|
|
* start16, in bytes.
|
|
*/
|
|
__payload_size = __payload_end - __payload_start ;
|
|
|
|
/* _size is the size of the runtime image
|
|
* (start32 + the C code), in bytes.
|
|
*/
|
|
__size = _end - _start ;
|
|
|
|
/* _decompressor_size is the size of the decompressor, in
|
|
* bytes. For a non-compressed image, start16.lds sets
|
|
* _decompressor_uncompressed = _decompressor__start = 0.
|
|
*/
|
|
__decompressor_size = __decompressor_uncompressed - __decompressor__start ;
|
|
|
|
/* image__size is the total size of the image, after
|
|
* decompression and including the decompressor if applicable.
|
|
* It is therefore the amount of memory that start16's payload
|
|
* needs in order to execute, in bytes.
|
|
*/
|
|
__image_size = __size + __decompressor_size ;
|
|
|
|
/* Amount to add to runtime symbols to obtain the offset of
|
|
* that symbol within the image.
|
|
*/
|
|
__offset_adjust = __decompressor_size - _start ;
|
|
|
|
/* Calculations for the stack
|
|
*/
|
|
__stack_size = _estack - _stack ;
|
|
__offset_stack = _stack + __offset_adjust ;
|
|
|
|
/* Some symbols will be larger than 16 bits but guaranteed to
|
|
* be multiples of 16. We calculate them in paragraphs and
|
|
* export these symbols which can be used in 16-bit code
|
|
* without risk of overflow.
|
|
*/
|
|
__image_size_pgh = ( __image_size / 16 );
|
|
__start_pgh = ( _start / 16 );
|
|
__decompressor_size_pgh = ( __decompressor_size / 16 );
|
|
__offset_stack_pgh = ( __offset_stack / 16 );
|
|
}
|
|
|