[comp.sys.amiga.programmer] Linker hunk types

dej@qpoint.amiga.ocunix.on.ca (David Jones) (01/16/91)

I have a couple of questions concerning the output from the SAS/C compiler.

First, if two C modules declare global variables, the compiler treats them
as offsets from A4.  When the modules are linked, the linker reserves
space for the globals of each module in the global space.  However,
in order to do so, the linker must know how much global space each module
consumes.  The compiler therefore outputs some hunks which tell blink
that certain variables are local and that these variables require so much
space.  I believe this is called base-relative addressing but I'm not sure.

Second, the compiler and assembler output debug information so that CPR
can effectively display the program being debugged.  It does so by using
debug hunks.  In the AmigaDOS manual, it says that any information can
be put into debug hunks.  I have seen debuggers (I think MetaScope is one)
that read "standard debug hunks".

Questions:

Are the formats for base-relative addressing hunks and debug hunks
Commodore standards which were developed after the AmigaDOS manual was
published, or are they SAS/Lattice proprietary standards?

In either case, does anyone have (and is willing to share) or know where I
can my hands on such specifications?

Thanks in advance to anyone who replies.
--



	David Jones	UUCP:	dej@qpoint.amiga.ocunix.on.ca
			Fido:	1:163/109.8