home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / RiscOS / APP / DEVS / C / QSYSTE.ZIP / !QSystem / docs / qlink / qlink.man < prev   
Text File  |  1998-02-07  |  3KB  |  80 lines

  1. NAME
  2.  
  3. qlink - QObject file linker
  4. version 2.06
  5. Sat 07th February 1998
  6.  
  7.  
  8. SYNOPSIS
  9.  
  10. qlink [option|file]...
  11.  
  12.  
  13. DESCRIPTION
  14.  
  15. qlink takes one or more QObject files and links them together into one executable file in AIF (or other) format.
  16.  
  17. qlink is called with a set of options, plus a list of QObject files, which by convention are stored in a subdirectory named 'q'. If there are no arguments, qlink prints a message summarizing its options on the standard error.
  18.  
  19. Options for qlink are as follows:-
  20.  
  21. -addr address    Set the start address of the output file (default 8000).
  22. -codenames    Insert symbol names before CODE symbols.
  23. -creator string    Set the creator string. (Join only).
  24. -datanames    Insert symbol names before DATA/LIT symbols.
  25. -first function    Set the first function (default __aif).
  26. -fussy        Warn about out-of-range references.
  27. -join        Join the QObject files rather than linking them.
  28. -lib file    Treat file as a library file.
  29. -map        Print a symbol map to stderr.
  30. -mapall        Map all symbols, even pseudo-locals.
  31. -multidef    Allow multiple definitions of symbols
  32. -o file        Name the output file (default !RunImage).
  33. -procos        Set the processor/OS string. (Join only).
  34. -symbols file    Write a list of symbols to file.
  35. -t        Debug information printed on stderr.
  36. -throwback    Use throwback rather than stderr.
  37. -type type    Set the type of the output file (default FF8).
  38. -v        Verbose.
  39.  
  40. See a description of the QObject file format for more details.
  41.  
  42. Built-in symbols begin with `Q$$';
  43. qlink supports the following built-in symbols:-
  44.     Q$$StartAddr    the start address (set using -addr)
  45.     Q$$EndAddr    the first free byte after all segments
  46.     Q$$CODE_Offset    the offset of the CODE segment from the start (= 0)
  47.     Q$$CODE_Size    the size of the CODE segment
  48.     Q$$DATA_Offset    \
  49.     Q$$DATA_Size     |
  50.     Q$$LIT_Offset     | similarly
  51.     Q$$LIT_Size     |
  52.     Q$$BSS_Offset     |
  53.     Q$$BSS_Size    /
  54.     Q$$ROBase    base of read-only area (usually 0x8000) (= Q$$StartAddr)
  55.     Q$$ROLimit    limit of read-only area
  56.     Q$$RWBase    base of read/write area (not necessarily equal to Q$$ROLimit)
  57.     Q$$RWLimit    limit of read/write area (= Q$$EndAddr)
  58.  
  59. Errors are reported on stderr, unless -throwback is used.
  60.  
  61. When joining files, the `parent object file' name for each symbol is left as it was; thus when constructing libraries, the filename given to qas must be considered carefully.
  62.  
  63.  
  64. LIMITATIONS
  65.  
  66. qlink cannot link older QObject file formats (0 and 1) - it can only handle version 2 file format.
  67.  
  68. qlink relies on the symbol __aif (or similar) to set up the BSS segment as zero-initialised data using Q$BSS_Offset and Q$$BSS_Size. Symbols in the BSS segment are referenced outside the file, thus memory must be set aside.
  69.  
  70. Throwback can't yet make use of debug info to open correct source file.
  71.  
  72. Can't yet determine when some references to functions plus offset are outside the function.
  73.  
  74. Uses rather a lot of memory (approx. total size of libraries plus double size of output file plus a bit).
  75.  
  76.  
  77. BUGS
  78.  
  79. None so far.
  80.