Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
98 lines (62 sloc) 2.78 KB
This chapter describes the AmigaOS hunk-format output module which can be
selected with the @option{-Fhunk} option to generate objects and with the
@option{-Fhunkexe} option to generate executable files.
@section Legal
This module is copyright in 2002-2010 by Frank Wille.
This archive may be redistributed without modifications and used
for non-commercial purposes.
Distributing modified versions and commercial usage needs my written
Certain modules may fall under additional copyrights.
@section Additional options for this version
These options are valid for the @code{hunkexe} module only:
@table @option
@item -databss
Try to shorten sections in the output file by removing zero words
without relocation from the end. This technique is only supported
by AmigaOS 2.0 and higher.
@end table
@section General
This output module outputs the @code{hunk} object (standard for @code{M68k}
and extended for @code{PowerPC}) and @code{hunkexe} executable format, which
is a proprietary file format used by AmigaOS and WarpOS.
The @code{hunkexe} module will generate directly executable files, without
the need for another linker run. But you have to make sure that there are
no undefined symbols, common symbols, or unusual relocations (e.g. small
data) left.
It is allowed to define sections with the same name but different
attributes. They will be regarded as different entities.
@section Restrictions
The @code{hunk}/@code{hunkexe} output format is only intended for @code{M68k}
and @code{PowerPC} cpu modules and will abort when used otherwise.
The @code{hunk} module supports the following relocation types:
@itemize @minus
@item absolute, 32-bit
@item absolute, 16-bit
@item absolute, 8-bit
@item relative, 8-bit
@item relative, 14-bit (mask 0xfffc) for PPC branch instructions.
@item relative, 16-bit
@item relative, 24-bit (mask 0x3fffffc) for PPC branch instructions.
@item relative, 32-bit
@item base-relative, 16-bit
@item common symbols are supported as 32-bit absolute and relative
@end itemize
The @code{hunkexe} module supports absolute 32-bit relocations only.
@section Known Problems
Some known problems of this module at the moment:
@itemize @minus
@item The @code{hunkexe} module won't process common symbols and allocate
them in a @code{BSS} section. Use a real linker for that.
@end itemize
@section Error Messages
This module has the following error messages:
@itemize @minus
@item 3001: multiple sections not supported by this format
@item 3002: output module doesn't support cpu <name>
@item 3003: write error
@item 3004: section attributes <attr> not suppported
@item 3005: reloc type <m>, size <n>, mask <mask> (symbol <sym> + <offset>) not supported
@item 3006: reloc type <n> not supported
@end itemize
Jump to Line
Something went wrong with that request. Please try again.