ic960 Compiler Driver
3-41
3
Signed and Unsigned Character Arguments (cs and cu): If you
select
cs, declarations of char are treated as signed char. (This is the
default.)
If you select
cu, declarations of char are treated as unsigned char.
Relaxed and Strict Linkage Definition Arguments (
dc and ds): In
the default relaxed ref-def external linkage model (i.e., the
dc argument),
any variable declared with the
extern keyword is a reference to a
variable and does not define storage. Somewhere in all the modules, a
definition at file-scope must exist. You can have multiple definitions. All
definitions are combined into a single storage location by the linker.
Storage is allocated for initialized variables in the
.data section with the
appropriate initializer. Uninitialized definitions are allocated to the
common sections using the
.comm assembly language directive. At link
time one of the following happens:
• If a variable is defined with an initializer in one module, and without
an initializer in all other modules, the linker allocates space for the
object in the
.data section.
• If no definitions of a variable are initialized, all common references
are combined and allocated to the
.bss section. With the relaxed
ref-def model, you cannot relocate uninitialized variables to named
sections at specific memory locations using the linker configuration
language.
In the strict ref-def model (i.e., using the
ds argument), only one definition
is allowed and all others must be declared with the keyword
extern. You
cannot have more than one definition of an object with external linkage.
Storage is allocated to uninitialized file-scope variables in the
.bss
section. Initialized variables are allocated in the .data section with the
appropriate initializer. Using the strict ref-def model, you can relocate
uninitialized variables to named sections at specific memory locations
using the linker configuration language. For more detailed information
about using the linker, see the i960 Processor Software Utilities User's
Guide.