Linker/linker.notes
Stephen Heumann aa9a585d19 Do not give spurious errors about segment alignment.
This would happen if a later object segment had a more restrictive alignment than previous object segments that contribute to the same load segment, as in the following example:

s1      start
        jsl s2
        rtl
        end

        align   256
s2      start
        rtl
        end

These alignment requirements can be satisfied by just giving the load segment the most restrictive alignment of any object segment (since all alignments are powers of 2) and inserting space as necessary to align the code from each object segment.
2021-03-03 18:41:45 -06:00

59 lines
2.3 KiB
Plaintext

ORCA/Linker 2.0.6
Copyright 1996, Byte Works Inc.
Updated 2021
-- Change List --------------------------------------------------------------
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
calculation for BRL wraps around within the program bank, it
can branch forward or backward by up to 64 KB (to any location
in the program bank), and the linker now allows this.
2. The linker can now link together multiple object segments with
different alignment requirements into a single load segment,
regardless of the order of the object segments. The alignment
of the load segment will be the most restrictive alignment
of any of the object segments, and the alignment requirements
of each object segment will be obeyed. (Previously, an error
would be produced if an object segment processed later had a
more restrictive alignment requirement than an earlier one.)
2.0.5 1. On case-sensitive filesystems (which are not normally used
natively on the Apple IIGS, but may be used through emulation
tools or network file servers), the linker can now find object
files with either upper-case or lower-case file extensions.
(Kelvin Sherlock, Stephen Heumann)
2. KeepType values of "DVR", "LDF", and "FST" are now accepted.
2.0.4 1. Fixed bugs that could cause spurious errors to be reported.
(Stephen Heumann)
2.0.3 1. Fixed bug that caused programs with more than one dynamic
segment to link improperly.
(Ian Brumby)
2. Fixed bug that caused approximately one in 65536 load segments
to be trashed with a random word placed every 14 bytes through
the segment.
2.0.2 1. Fixed bug that caused the linker to step on memory that did
not belong to it when the +m flag was used. The most common
symptom of this bug was crashing during the second or
subsequent compile when using PRIZM.
(Kurtis Carter)
2.0.1 1. Fixed bug that caused the current location counter (* in
assembly language parlance) to be evaluated incorrectly in
some expressions.
-- Documentation Update -----------------------------------------------------
No changes.