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