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:
Stephen Heumann 2022-08-30 19:39:58 -05:00
parent 085c7c46ca
commit 0b275e5b22
2 changed files with 4 additions and 1 deletions

View File

@ -7,6 +7,9 @@ Updated 2022
2.1.0 B1 1. The linker can now automatically divide a large program into
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
address calculation for a BRL instruction if it branched
forward or backward more than 32 KB. Since the address

View File

@ -268,7 +268,7 @@ st1 lda segType or in the or flags
sta loadType
lda segType mask out missing and flags
and #$E200
ora #$3DFF
ora #$1DFF
and loadType
sta loadType
lda loadType get the type without flags