README
资源名称:nasm-0.98.zip [点击查看]
上传用户:yuppie_zhu
上传日期:2007-01-08
资源大小:535k
文件大小:6k
源码类别:
编译器/解释器
开发平台:
C/C++
- RDOFF Utils v0.3
- ================
- The files contained in this directory are the C source code of a set
- of tools (and general purpose library files) for the manipulation of
- RDOFF version 2 object files. Note that these programs (with the
- exception of 'rdfdump') will NOT work with version 1 object files. See
- the subdirectory v1 for programs that perform that task.
- Note: If you do not have a v1 subdirectory, you may have unpacked the
- ZIP file without specifying the 'restore directory structure' option -
- delete these files, and run your ZIP extracter again with this option
- turned on ('-d' for PKUNZIP).
- RDOFF version 1 is no longer really supported, you should be using
- v2 instead now.
- There is also a 'Changes' file, which documents the differences between
- RDOFF 1 and 2, and an 'rdoff2.txt' file, with complete documentation for the
- new format.
- Here is a brief summary of the programs' usage:
- rdfdump
- =======
- This tool prints a list of the header records in an RDOFF object in
- human-readable form, and optionally prints a hex dump of the contents
- of the segments.
- Usage:
- rdfdump [-v] filename
- The -v flag specifies that the hex dump (see above) should be printed.
- Changes from previous versions:
- * rdfdump supports both version 1 and 2 of RDOFF.
- * rdfdump now gives warnings if the RDOFF2 format is violated (it
- looks for incorrect lengths for header records, and checks the
- overall length count at the start of the file)
- ldrdf
- =====
- This tool is a version of unix 'ld' (or DOS 'link') for use with RDOFF
- files. It is capable of linking RDOFF objects, and libraries produced
- with the 'rdlib' utility discussed below.
- In normal usage, its command line takes the form:
- ldrdf [-o output-file] object files [-llibrary ...]
- Libraries must be specified with their path as no search is performed.
- Modules in libraries are not linked to the program unless they are
- referred to.
- Most of its options are not implemented, but those that are are listed here:
- -v increase verbosity level. Currently 4 verbosity levels are
- available: default (which only prints error information), normal
- (which prints information about the produced object, -v), medium
- (which prints information about what the program is doing, -v -v)
- and high (which prints all available information, -v -v -v).
- -p change alignment value to which multiple segments combigned into
- a single segment should be aligned (must be either 1, 2, 4, 8,
- 16, 32 or 256. Default is 16).
- The default output filename is 'aout.rdx'.
- rdx
- ===
- This program simply loads and executes an RDOFF object, by calling
- '_main', which it expects to be a C-style function, which will accept
- two parameters, argc and argv in normal C style.
- rdflib
- ======
- This program creates a library file for use with ldrdf.
- It is supplied with a shell script 'makelib' which should probably be used
- to create libraries.
- Usage:
- rdflib command library [optional arguments]
- Valid commands are:
- c Create (or truncate) the library
- a Add a module (requires a filename and a name to give the
- module, ie 'rdflib a libc.rdl strcpy.rdf strcpy' puts the
- file 'strcpy.rdf' into 'libc.rdl', and calls it 'strcpy'.
- x Extract (arguments are the opposite to the 'a' command,
- ie you'd do 'rdflib x libc.rdl strcpy strcpy.rdf to get
- a copy of strcpy.rdf back out again...)
- t List modules in the library
- A remove command will be added soon (it is already documented
- as existing, but I haven't had time to implement it... if anyone
- else wants to do this, they're welcome to. The file format should be
- amply documented in the source code... look at 'rdflib.c' and 'rdlib.c',
- and the relevant sections of 'ldrdf.c' to see how libraries can be
- handled).
- Library functions
- =================
- The files 'rdoff.c', 'rdoff.h', 'rdfload.c' and 'rdfload.h' contain
- code which you may find useful. They retain the same interface as
- the previous version, so any code that used them previously should
- still work OK (maybe). 'rdoff.c' contains at the top a line:
- #define STRICT_ERRORS
- Comment this line out if you wish to use record types other than the
- 7 predefined types; it will then not report such records as an error,
- but accept them gracefully, and read them byte for byte into
- a 'generic record' (see the definition of GenericRec in 'rdoff.h').
- If you are using these functions to write RDF modules (rather than
- just reading them), then please note the existance of a new function
- 'rdfaddsegment(rdf_headerbuf,long)'. This must be called once for
- each segment in your object, to tell the header writing functions
- how long the segment is.
- BUGS
- ====
- This product has recently undergone a major revision, and as such there
- are probably several bugs left over from the testing phase (although the
- previous version had quite a few that have now been fixed!). Could you
- please report any bugs to me at the address below, including the following
- information:
- - A description of the bug
- - What you think the program should be doing
- - Which programs you are using
- - Which operating system you are using, and which C compiler was used to
- compile the programs (or state that the pre-compiled versions were used).
- - If appropriate, any of the following:
- * source code (preferably cut down to a minimum that will still assemble
- and show the bug)
- * the output of rdfdump on produced modules (or send the module if the
- problem is in code generated)
- * exact descriptions of error messages/symptoms/etc
- TODO
- ====
- There are still various things unimplemented that I would like to add.
- If you want to find out what these are, search near the top of each *.c
- file for a comment containing the word 'TODO'. A brief list is given here:
- - Improve the performace of ldrdf (there are several enhancements I can think
- of that wouldn't be too hard to add)
- - Stop assuming that we're on a little endian machine
- - Make everything work with both formats (?)
- - Add extra functions to ldrdf (strip symbols/keep symbol list)
- - Check for more bugs
- One last thing I have to say: good luck! Whatever it is that you want to use
- RDOFF for, I hope its a success. People out there are using it for many
- diverse applications, from operating system boot-loaders to loadable modules
- in games. Whatever your application is, I hope that it works, and that you
- have a good time writing it.
- Julian Hall <jules@earthcorp.com>