README 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. *******
  2. This file is getting obsolete. RDOFF documentation is written in Texinfo now.
  3. Directory doc/ contains Texinfo source (rdoff.texi) and makefile for creating
  4. different output formats (info, HTML, PostScript and PDF).
  5. *******
  6. RDOFF Utilities, version 0.3.2
  7. ==============================
  8. The files contained in this directory are the C source code of a set
  9. of tools (and general purpose library files) for the manipulation of
  10. RDOFF version 2 object files. Note that these programs (with the
  11. exception of 'rdfdump') will NOT work with version 1 object files.
  12. Version 1 of RDOFF is no longer supported.
  13. There is also a 'doc' directory with 'v1-v2' file, which documents the
  14. differences between RDOFF 1 and 2, and an 'rdoff2.texi' (texinfo source),
  15. with complete documentation for the new format.
  16. Here is a brief summary of the programs' usage:
  17. rdfdump
  18. =======
  19. This tool prints a list of the header records in an RDOFF object in
  20. human-readable form, and optionally prints a hex dump of the contents
  21. of the segments.
  22. Usage:
  23. rdfdump [-v] filename
  24. The -v flag specifies that the hex dump (see above) should be printed.
  25. Changes from previous versions:
  26. * rdfdump supports both version 1 and 2 of RDOFF.
  27. * rdfdump now gives warnings if the RDOFF2 format is violated (it
  28. looks for incorrect lengths for header records, and checks the
  29. overall length count at the start of the file)
  30. ldrdf
  31. =====
  32. This tool is a version of unix 'ld' (or DOS 'link') for use with RDOFF
  33. files. It is capable of linking RDOFF objects, and libraries produced
  34. with the 'rdlib' utility discussed below.
  35. In normal usage, its command line takes the form:
  36. ldrdf [-o output-file] object files [-llibrary ...]
  37. Modules in libraries are not linked to the program unless they are
  38. referred to.
  39. Most of its options are not implemented, but those that are are listed here:
  40. -2 redirect all output from stderr to stdout. It is useful for some
  41. systems which don't have such a redirection in shell (e.g. DOS).
  42. -v increase verbosity level. Currently 4 verbosity levels are
  43. available: default (which only prints error information), normal
  44. (which prints information about the produced object, -v), medium
  45. (which prints information about what the program is doing, -v -v)
  46. and high (which prints all available information, -v -v -v).
  47. -a change alignment value to which multiple segments combigned into
  48. a single segment should be aligned (must be either 1, 2, 4, 8,
  49. 16, 32 or 256. Default is 16).
  50. -s strip exported symbols from output file. Symbols marked as
  51. SYM_GLOBAL are never stripped.
  52. -x warn about unresolved symbols.
  53. -xe issue an error when at least one symbol is unresolved.
  54. -o name write output to file <name>. The default output filename
  55. is 'aout.rdx'.
  56. -j path specify search path for object files. Default path is a
  57. current directory.
  58. -L path specify search path for libraries. Default path is a
  59. current directory.
  60. -g file embed 'file' as a first header record with type 'generic'.
  61. rdx
  62. ===
  63. This program simply loads and executes an RDOFF object, by calling
  64. '_main', which it expects to be a C-style function, which will accept
  65. two parameters, argc and argv in normal C style.
  66. rdflib
  67. ======
  68. This program creates a library file for use with ldrdf.
  69. It is supplied with a shell script 'makelib' which should probably be used
  70. to create libraries.
  71. Usage:
  72. rdflib command library [optional arguments]
  73. Valid commands are:
  74. c Create (or truncate) the library
  75. a Add a module (requires a filename and a name to give the
  76. module, ie 'rdflib a libc.rdl strcpy.rdf strcpy' puts the
  77. file 'strcpy.rdf' into 'libc.rdl', and calls it 'strcpy'.
  78. x Extract (arguments are the opposite to the 'a' command,
  79. ie you'd do 'rdflib x libc.rdl strcpy strcpy.rdf to get
  80. a copy of strcpy.rdf back out again...)
  81. t List modules in the library
  82. d Delete modules from library
  83. r Replace a module in library with a new file
  84. Library functions
  85. =================
  86. The files 'rdoff.c', 'rdoff.h', 'rdfload.c' and 'rdfload.h' contain
  87. code which you may find useful. They retain the same interface as
  88. the previous version, so any code that used them previously should
  89. still work OK (maybe). 'rdoff.c' contains at the top a line:
  90. #define STRICT_ERRORS
  91. Comment this line out if you wish to use record types other than the
  92. 7 predefined types; it will then not report such records as an error,
  93. but accept them gracefully, and read them byte for byte into
  94. a 'generic record' (see the definition of GenericRec in 'rdoff.h').
  95. If you are using these functions to write RDF modules (rather than
  96. just reading them), then please note the existance of a new function
  97. 'rdfaddsegment(rdf_headerbuf,long)'. This must be called once for
  98. each segment in your object, to tell the header writing functions
  99. how long the segment is.
  100. BUGS
  101. ====
  102. This product has recently undergone a major revision, and as such there
  103. are probably several bugs left over from the testing phase (although the
  104. previous version had quite a few that have now been fixed!). Could you
  105. please report any bugs to maintainers at the addresses below, including the
  106. following information:
  107. - A description of the bug
  108. - What you think the program should be doing
  109. - Which programs you are using
  110. - Which operating system you are using, and which C compiler was used to
  111. compile the programs (or state that the pre-compiled versions were used).
  112. - If appropriate, any of the following:
  113. * source code (preferably cut down to a minimum that will still assemble
  114. and show the bug)
  115. * the output of rdfdump on produced modules (or send the module if the
  116. problem is in code generated)
  117. * exact descriptions of error messages/symptoms/etc
  118. TODO
  119. ====
  120. There are still various things unimplemented that we would like to add.
  121. If you want to find out what these are, search near the top of each *.c
  122. file for a comment containing the word 'TODO'. A brief list is given here:
  123. - Improve the performace of ldrdf (there are several enhancements I can think
  124. of that wouldn't be too hard to add)
  125. - Stop assuming that we're on a little endian machine
  126. - Check for more bugs
  127. MAINTAINERS
  128. ===========
  129. Yuri Zaporozhets <r_tty@yahoo.co.uk> - primary maintainer
  130. Julian Hall <jules@dsf.org.uk> - original designer and author