| \input texinfo @c -*-texinfo-*- |
| @c %**start of header |
| @setfilename rdoff.info |
| @settitle Relocatable Dynamic Object File Format (RDOFF) |
| @afourpaper |
| @c %**end of header |
| |
| @titlepage |
| @title Relocatable Dynamic Object File Format (RDOFF) |
| @author Yuri Zaporozhets @email{r_tty@@yahoo.co.uk} |
| @author Julian Hall @email{jules@@dsf.org.uk} |
| @end titlepage |
| |
| @ifinfo |
| Copyright @copyright{} 2002-2015 Netwide Assembler Project. |
| Written by Yuri Zaporozhets @email{r_tty@@yahoo.co.uk} |
| Based on various sources and notes written by Julian Hall @email{jules@@dsf.org.uk} |
| Distributed under GNU documentation license. |
| @end ifinfo |
| |
| @ifnottex |
| @node Top, Overview, (dir), (dir) |
| @top RDOFF |
| |
| RDOFF is a Relocatable Dynamic Object File Format. |
| |
| @end ifnottex |
| |
| @menu |
| * Overview:: Introduction. |
| * Structure:: Structure of RDOFF file. |
| * Utilities:: Description of RDOFF utilities. |
| @end menu |
| |
| @node Overview |
| @chapter Introduction |
| |
| RDOFF was designed initially to test the object-file production |
| interface to NASM. It soon became apparent that it could be enhanced |
| for use in serious applications due to its simplicity; code to load |
| and execute an RDOFF object module is very simple. It also contains |
| enhancements to allow it to be linked with a dynamic link library at |
| either run- or load- time, depending on how complex you wish to make |
| your loader. |
| |
| @node Structure |
| @chapter Structure of RDOFF file |
| |
| RDOFF module consists of three parts: |
| |
| @itemize |
| @item Master header |
| @item Header (may be omited) |
| @item Sections |
| @end itemize |
| |
| @dfn{Master header} contains signature, version and size information. |
| |
| @dfn{Header} consists of zero or more @ref{Records, records}. |
| |
| @dfn{Sections} represent actual contents of the file. Each section is prepended |
| by a section header. |
| |
| @node Records, , ,Structure |
| @section Records that may appear in RDOFF header |
| |
| @menu |
| * Relocation:: Relocation records. |
| * Import:: Declaring external symbols. |
| * Export:: Declaring public and exported symbols. |
| * DLL:: Specifying a run-time library name. |
| * BSS:: Reserving space in BSS section. |
| * Segment relocation:: Complexity of relocation in segmented systems. |
| * Far import:: External 'far' symbols. |
| * Module name:: Specifying module name. |
| * Common variable:: Declaring common variables. |
| * Generic record:: Embedding general-purpose data into the header. |
| @end menu |
| |
| @node Relocation |
| @subsection Relocation records |
| |
| @node Import |
| @subsection Declaring external and imported symbols |
| |
| @node Export |
| @subsection Declaring public and exported symbols |
| |
| @node DLL |
| @subsection Specifying a run-time library name |
| |
| @node BSS |
| @subsection Reserving space in BSS section |
| |
| @node Segment relocation |
| @subsection Complexity of relocation in segmented systems |
| |
| @node Far import |
| @subsection External 'far' symbols. |
| |
| @node Module name |
| @subsection Specifying module name. |
| |
| @node Common variable |
| @subsection Declaring common variables. |
| |
| @node Generic record |
| @subsection Embedding general-purpose data into the header. |
| |
| |
| @node Utilities |
| @chapter RDOFF utilities |
| |
| @menu |
| * rdfdump:: Dump the contents of RDOFF file. |
| * ldrdf:: RDOFF linker. |
| * rdflib:: RDOFF librarian. |
| * rdlar:: New RDOFF librarian/archiver. |
| * rdx:: Load and execute RDOFF module. |
| @end menu |
| |
| @node rdfdump |
| @section @command{rdfdump} - dump the contents of RDOFF file |
| |
| @node ldrdf |
| @section @command{ldrdf} - RDOFF linker |
| |
| @node rdflib |
| @section @command{rdflib} - RDOFF librarian |
| |
| @node rdlar |
| @section @command{rdlar} - new RDOFF librarian/archiver |
| |
| @node rdx |
| @section @command{rdx} - load and execute RDOFF module |
| |
| @bye |