-STARt


This option specifies the start address of the section.

[Specification format]

-STARt=[(]section[{:|,}section]...[)][{:|,}section]...[/address][,[(]section[{:|,}section]...[)][{:|,}section]...[/address]]...

 

-

Interpretation when omitted

Absolute address sections are allocated from smallest to largest, and then relative address sections starting at the end of the absolute address sections are allocated, in the order of appearance of the input files.

[Detailed description]

-

This option specifies start address address of section section.
Specify address in hexadecimal.

-

Wildcard characters (*, ?) can also be used for section.
The section specified with wildcard characters are expanded in the input order.

-

Two or more sections (specifing by delimiting them with a comma (,)) can be allocated to the same address (i.e., sections are overlaid) by delimiting them with a colon (:).
Sections specified at a single address are allocated in their specified order.
Sections to be overlaid can be changed by enclosing them by parentheses "()".

-

Objects in a single section are allocated in the specified order of the input file and the input library.

-

If the specification of an address is omitted, the section is allocated from address 0.

-

A section that is not specified by the -start option is allocated after the last allocation address.

[Example of use]

-

The example below shows how sections are allocated when the objects are input in the following order (The names enclosed by parentheses are sections in each object).

tp1.obj(.A,.D1,.E)

tp2.obj(.B,.D3,.F)

tp3.obj(.C,.D2,.E,.G)

lib.lib(.E)

 

-

When the -start=.A,.B,.E/400,.C,.D*:.F:.G/8000 option is specified

-

Sections .C, .F, and .G delimited by ":" are allocated to the same address.

-

Sections specified with wildcard characters (in this example, the sections whose names start with ".D") are allocated in the input order.

-

Objects in the sections having the same name (section .E in this example) are allocated in the input order.

-

An input library's sections having the same name (section .E in this example) are allocated after the input objects.

 

-

When the -start=.A,.B,.C,.D1:.D2,.D3,.E,.F:.G/400 option is specified

-

The sections that come immediately after ":" (sections .A, .D2, and .G in this example) are selected as the start and allocated to the same address.

 

-

When the -start=.A,.B,.C,(.D1:.D2,.D3),.E,(.F:.G)/400 option is specified

-

When the sections to be allocated to the same address are enclosed by "()", the sections within "()" are allocated to the address immediately after the sections that come before the "()" (sections .C and .E in this example).

-

The section that comes after the "()" (section .E in this example) is allocated after the last of the sections enclosed by "()".

[Remark]

-

If the -form={object|relocate|library} option or -strip option is specified, this option will be invalid.

-

"()" cannot be nested.

-

One or more colons must be described within "()".
If ":" is not described, "()" cannot be described.

-

If "()" is described, ":" cannot be described outside of "()".

-

When "()" is used in this option, the optimization function of the linker is disabled.