Commit Graph

6 Commits

Author SHA1 Message Date
Stephen Heumann
0b275e5b22 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.
2022-08-30 19:46:22 -05:00
Stephen Heumann
390fd96ede Do not report an error when the segment length equals the bank size.
This is legal per the OMF definition in the GS/OS Reference (and it is accepted by the loader), so it should not be treated as an error.
2021-08-26 22:21:44 -05:00
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
Stephen Heumann
433b4652d7 Accept DVR, LDF, and FST as valid KeepType values.
Note that ORCA/Shell listings use DRV for type $BB, but the File Type Notes specify DVR.
2018-09-13 18:14:09 -05:00
Kelvin Sherlock
c21ae46a4d convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
mikew50
748ae356d7 The ORCA Linker 2.0.3 from the Opus ][ CD 2017-10-01 21:26:59 -06:00