mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-12-21 09:19:31 +08:00
e0c059ab4e
Export/import/common label size is increased from 33 to 64. Fixed the bug that caused wrong behavior of rdfgetheaderrec() if label length was 32. Changed error codes from numeric values to symbolic constants. Moved some routines from rdfdump.c to rdoff.c. They will be utilized also by rdfdisasm, which is being developed.
138 lines
3.4 KiB
Plaintext
138 lines
3.4 KiB
Plaintext
\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 Zaporogets @email{yuriz@@ukr.net}
|
|
@author Julian Hall @email{jules@@dsf.org.uk}
|
|
@end titlepage
|
|
|
|
@ifinfo
|
|
Copyright @copyright{} 2002-2004 Netwide Assembler Project.
|
|
Written by Yuri Zaporogets @email{yuriz@@users.sf.net}
|
|
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
|