Linker Options
7-12
7.4.6
Make a Symbol Global (–g
global_symbol Option)
The –h option makes all global symbols static. If you have a symbol that you
want to remain global and you use the –h option, you can use the –g option
to declare that symbol to be global. The –g option overrides the effect of the
–h option for the symbol that you specify. The syntax for the –g option is:
–g
global_symbol
7.4.7
Make All Global Symbols Static (–h Option)
The –h option makes all global symbols defined with the .global assembler
directive static. Static symbols are not visible to externally linked modules. By
making global symbols static, global symbols are essentially hidden. This
allows external symbols with the same name (in different files) to be treated
as unique.
The –h option effectively nullifies all .global assembler directives. All symbols
become local to the module in which they are defined, so no external
references are possible. For example, assume that b1.obj, b2.obj, and b3.obj
are related and reference a global variable GLOB. Also assume that d1.obj,
d2.obj, and d3.obj are related and reference a separate global variable GLOB.
By using the –h option and partial linking, you can link the related files without
conflict.
lnk500
–h –r b1.obj b2.obj b3.obj –o bpart.out
lnk500
–h –r d1.obj d2.obj d3.obj –o dpart.out
The –h option guarantees that bpart.out and dpart.out do not have global
symbols and therefore, that two distinct versions of GLOB exist. The –r option
is used to allow bpart.out and dpart.out to retain their relocation entries. These
two partially linked files can then be linked together safely with the following
command:
lnk500
bpart.out dpart.out –o system.out
7.4.8
Define Heap Size (–heap
constant Option)
The C compiler uses an uninitialized section called .sysmem for the C runtime
memory pool used by malloc( ). You can set the size of this memory pool at
link time by using the –heap option. Specify the size in words as a constant
immediately after the option:
lnk500 –heap 0x0400 /* defines a heap of 1K words */
The linker creates the .sysmem section only if there is a .sysmem section in
one of the input files.
Summary of Contents for TMS320C54x
Page 38: ......
Page 39: ......
Page 40: ......
Page 41: ......
Page 42: ......
Page 43: ......
Page 44: ......
Page 45: ......
Page 46: ......
Page 47: ......
Page 48: ......
Page 49: ......
Page 50: ......
Page 51: ......
Page 52: ......
Page 53: ......
Page 54: ......
Page 55: ......
Page 56: ......
Page 57: ......
Page 58: ......
Page 59: ......
Page 60: ......
Page 61: ......
Page 62: ......
Page 276: ......
Page 277: ......
Page 278: ......
Page 279: ......
Page 280: ......
Page 281: ......
Page 282: ......
Page 283: ......
Page 284: ......
Page 285: ......
Page 286: ......
Page 287: ......
Page 288: ......
Page 289: ......
Page 290: ......
Page 291: ......
Page 292: ......
Page 293: ......
Page 294: ......
Page 295: ......
Page 296: ......
Page 297: ......
Page 298: ......
Page 299: ......
Page 300: ......
Page 301: ......
Page 302: ......