1 \input texinfo @c -*-texinfo-*-
3 @setfilename rdoff.info
4 @settitle Relocatable Dynamic Object File Format (RDOFF)
9 @title Relocatable Dynamic Object File Format (RDOFF)
10 @author Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
11 @author Julian Hall @email{jules@@dsf.org.uk}
15 Copyright @copyright{} 2002-2015 Netwide Assembler Project.
16 Written by Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
17 Based on various sources and notes written by Julian Hall @email{jules@@dsf.org.uk}
18 Distributed under GNU documentation license.
22 @node Top, Overview, (dir), (dir)
25 RDOFF is a Relocatable Dynamic Object File Format.
30 * Overview:: Introduction.
31 * Structure:: Structure of RDOFF file.
32 * Utilities:: Description of RDOFF utilities.
38 RDOFF was designed initially to test the object-file production
39 interface to NASM. It soon became apparent that it could be enhanced
40 for use in serious applications due to its simplicity; code to load
41 and execute an RDOFF object module is very simple. It also contains
42 enhancements to allow it to be linked with a dynamic link library at
43 either run- or load- time, depending on how complex you wish to make
47 @chapter Structure of RDOFF file
49 RDOFF module consists of three parts:
53 @item Header (may be omited)
57 @dfn{Master header} contains signature, version and size information.
59 @dfn{Header} consists of zero or more @ref{Records, records}.
61 @dfn{Sections} represent actual contents of the file. Each section is prepended
64 @node Records, , ,Structure
65 @section Records that may appear in RDOFF header
68 * Relocation:: Relocation records.
69 * Import:: Declaring external symbols.
70 * Export:: Declaring public and exported symbols.
71 * DLL:: Specifying a run-time library name.
72 * BSS:: Reserving space in BSS section.
73 * Segment relocation:: Complexity of relocation in segmented systems.
74 * Far import:: External 'far' symbols.
75 * Module name:: Specifying module name.
76 * Common variable:: Declaring common variables.
77 * Generic record:: Embedding general-purpose data into the header.
81 @subsection Relocation records
84 @subsection Declaring external and imported symbols
87 @subsection Declaring public and exported symbols
90 @subsection Specifying a run-time library name
93 @subsection Reserving space in BSS section
95 @node Segment relocation
96 @subsection Complexity of relocation in segmented systems
99 @subsection External 'far' symbols.
102 @subsection Specifying module name.
104 @node Common variable
105 @subsection Declaring common variables.
108 @subsection Embedding general-purpose data into the header.
112 @chapter RDOFF utilities
115 * rdfdump:: Dump the contents of RDOFF file.
116 * ldrdf:: RDOFF linker.
117 * rdflib:: RDOFF librarian.
118 * rdlar:: New RDOFF librarian/archiver.
119 * rdx:: Load and execute RDOFF module.
123 @section @command{rdfdump} - dump the contents of RDOFF file
126 @section @command{ldrdf} - RDOFF linker
129 @section @command{rdflib} - RDOFF librarian
132 @section @command{rdlar} - new RDOFF librarian/archiver
135 @section @command{rdx} - load and execute RDOFF module