Change rights 644 to 755
[nasm/github.git] / rdoff / doc / rdoff.texi
blob8ba2c684bd9a4f464f0fc0a434de80b26b55b396
1 \input texinfo @c -*-texinfo-*-
2 @c %**start of header
3 @setfilename rdoff.info
4 @settitle Relocatable Dynamic Object File Format (RDOFF)
5 @afourpaper
6 @c %**end of header
8 @titlepage
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}
12 @end titlepage
14 @ifinfo
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.
19 @end ifinfo
21 @ifnottex
22 @node Top, Overview, (dir), (dir)
23 @top RDOFF
25 RDOFF is a Relocatable Dynamic Object File Format.
27 @end ifnottex
29 @menu
30 * Overview::            Introduction.
31 * Structure::           Structure of RDOFF file.
32 * Utilities::           Description of RDOFF utilities.
33 @end menu
35 @node Overview
36 @chapter Introduction
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
44 your loader.
46 @node Structure
47 @chapter Structure of RDOFF file
49 RDOFF module consists of three parts:
51 @itemize
52 @item Master header
53 @item Header (may be omited)
54 @item Sections
55 @end itemize
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
62 by a section header.
64 @node Records, , ,Structure
65 @section Records that may appear in RDOFF header
67 @menu
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.
78 @end menu
80 @node Relocation
81 @subsection Relocation records
83 @node Import
84 @subsection Declaring external and imported symbols
86 @node Export
87 @subsection Declaring public and exported symbols
89 @node DLL
90 @subsection Specifying a run-time library name
92 @node BSS
93 @subsection Reserving space in BSS section
95 @node Segment relocation
96 @subsection Complexity of relocation in segmented systems
98 @node Far import
99 @subsection External 'far' symbols.
101 @node Module name
102 @subsection Specifying module name.
104 @node Common variable
105 @subsection Declaring common variables.
107 @node Generic record
108 @subsection Embedding general-purpose data into the header.
111 @node Utilities
112 @chapter RDOFF utilities
114 @menu
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.
120 @end menu
122 @node rdfdump
123 @section @command{rdfdump} - dump the contents of RDOFF file
125 @node ldrdf
126 @section @command{ldrdf} - RDOFF linker
128 @node rdflib
129 @section @command{rdflib} - RDOFF librarian
131 @node rdlar
132 @section @command{rdlar} - new RDOFF librarian/archiver
134 @node rdx
135 @section @command{rdx} - load and execute RDOFF module
137 @bye