control.hss 1.7 KB

12345678910111213141516171819202122232425262728293031323334
  1. [Main]
  2. Title=Symbols to Control the Linker
  3. Subsections=control_ref_all, control_tigcc_native, control_nostub, control_nostub_dll, control_fargo, control_flash_os, control_library, control_calc, control_flag, control_version, control_lib_min_version, control_ld_use_fline_jumps, control_ld_use_4byte_fline_jumps, control_ld_omit_bss_init, control_ld_ignore_global_imports
  4. [Top]
  5. In addition to options specified in the command line, the TIGCC linker can
  6. be controlled using special symbol names. They should be used directly only
  7. in assembly programs; C programs should rely on the appropriate library
  8. facilities if they are available.
  9. <BR><BR>
  10. These are the symbols the linker treats as control symbols:
  11. [Bottom]
  12. Symbols can be created in a variety of ways; they can be:
  13. <UL>
  14. <LI>labels;</LI>
  15. <LI>undefined exported symbols;</LI>
  16. <LI>imported (used but undefined) symbols;</LI>
  17. <LI>common symbols.</LI>
  18. </UL>
  19. Not all assemblers support all types of symbols; for example, the
  20. <A HREF="$$INFOLINK(a68k)">A68k assembler</A> does not support exporting
  21. symbols which are not defined somewhere in the same file. This assembler is
  22. also somewhat special from the linker's point of view: It only outputs
  23. exported and imported symbols by default; local labels can be supplied in a
  24. symbol table, but since it is optional, the linker does not use it to receive
  25. control information.
  26. <BR><BR>
  27. If a symbol is detected as a control symbol, it is not imported into the
  28. internal data structures as usual. There are two reasons for this: First,
  29. if a user accidentally defines a control symbol somewhere (some traditional
  30. control symbol names are quite short), the resulting error can help detect
  31. this problem. Second, if common symbols are used, they would waste space in
  32. the executable otherwise.