2002-12-04 10:48:07 +08:00
|
|
|
\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)
|
2015-01-19 02:21:14 +08:00
|
|
|
@author Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
|
2002-12-04 10:48:07 +08:00
|
|
|
@author Julian Hall @email{jules@@dsf.org.uk}
|
|
|
|
@end titlepage
|
|
|
|
|
|
|
|
@ifinfo
|
2015-01-19 02:21:14 +08:00
|
|
|
Copyright @copyright{} 2002-2015 Netwide Assembler Project.
|
|
|
|
Written by Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
|
2002-12-04 10:48:07 +08:00
|
|
|
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
|
2003-12-12 14:18:07 +08:00
|
|
|
@subsection Declaring external and imported symbols
|
2002-12-04 10:48:07 +08:00
|
|
|
|
|
|
|
@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
|