| Symbols Built into the TIGCC Linker

Previous | The TIGCC Linker | Next

The TIGCC linker is capable of resolving references to certain built-in symbols. These symbols act just like normal externally defined symbols; for example, it is possible to specify an offset to be added to the symbol in the reference. The symbols may resolve to numbers or addresses. The kind of symbol should be obvious for each individual symbol; for example, it does not make sense to jump to __ld_bss_size because it resolves to a number. All numbers have to be used as immediate values; if a symbol resolves to a number, treating it as an address and reading the value at this address will return garbage.
The following symbol names are treated as built-in symbol names, and resolved in a special way:

- _ROM_CALL_...
- tiamsapi_...
- _RAM_CALL_...
- _extraramaddr@..., _extraramaddr__...
- ...@????, ...__????
- __ld_calc_const_...
- __ld_entry_point
- __ld_entry_point_plus_0x8000
- __ld_program_size
- __ld_constructors_start
- __ld_constructors_end
- __ld_constructors_size
- __ld_constructor_count
- __ld_destructors_start
- __ld_destructors_end
- __ld_destructors_size
- __ld_destructor_count
- __ld_reloc_count
- __ld_data_start
- __ld_data_end
- __ld_data_size
- __ld_data_ref_count
- __ld_bss_start
- __ld_bss_end
- __ld_bss_size
- __ld_bss_ref_count
- __ld_rom_call_count
- __ld_ram_call_count
- __ld_lib_count
- __ld_referenced_lib_count
- __ld_export_count
- __ld_nostub_comment_count
- __ld_has_...
- __ld_file_version
- __ld_kernel_flags
- __ld_kernel_bss_table
- __ld_kernel_export_table
- __ld_data_var_name_end
- __ld_hardware_id
- _exit
- _comment
- _extraram
- _library