Set position-independent flag only if it is set in all object segments.
Previously, the position-independent attribute bit would be set in a load segment if it was set on the first constituent object segment. Now it is only set in the load segment if it is set in all the constituent object segments. This is consistent with the ORCA linker's general approach of conservatively combining the flags from the object segments.
This commit is contained in:
parent
085c7c46ca
commit
0b275e5b22
|
@ -7,6 +7,9 @@ Updated 2022
|
||||||
2.1.0 B1 1. The linker can now automatically divide a large program into
|
2.1.0 B1 1. The linker can now automatically divide a large program into
|
||||||
segments. See "Auto-Segmentation," below.
|
segments. See "Auto-Segmentation," below.
|
||||||
|
|
||||||
|
2. A load segment is now flagged as position-independent only if
|
||||||
|
all the constituent object segments have that attribute set.
|
||||||
|
|
||||||
2.0.6 1. The linker could give a spurious error about the relative
|
2.0.6 1. The linker could give a spurious error about the relative
|
||||||
address calculation for a BRL instruction if it branched
|
address calculation for a BRL instruction if it branched
|
||||||
forward or backward more than 32 KB. Since the address
|
forward or backward more than 32 KB. Since the address
|
||||||
|
|
2
out.asm
2
out.asm
|
@ -268,7 +268,7 @@ st1 lda segType or in the or flags
|
||||||
sta loadType
|
sta loadType
|
||||||
lda segType mask out missing and flags
|
lda segType mask out missing and flags
|
||||||
and #$E200
|
and #$E200
|
||||||
ora #$3DFF
|
ora #$1DFF
|
||||||
and loadType
|
and loadType
|
||||||
sta loadType
|
sta loadType
|
||||||
lda loadType get the type without flags
|
lda loadType get the type without flags
|
||||||
|
|
Loading…
Reference in New Issue