Commit Graph

16 Commits

Author SHA1 Message Date
Stephen Heumann
76ba56a36b Allow 2-byte RELEXPR records to be used for branches of + or - 64KB.
Previously, the linker gave an error if the relative displacement was more than + or - 32 KB. But 2-byte RELEXPR records are typically used for the operand of the BRL instruction, and since its address calculation wraps around within the program bank, it can effectively address + or - 64KB (i.e. any location within the program bank). Similar reasoning applies to PER, the other instruction using long relative addressing.

This would give an error in code like the following:

bigbrl  start
        brl     later
        ds      33000  ; realistic examples would have actual code here
later   rtl
        end

(This currently also gives an assembler error due to similar logic in ORCA/M, but the output file can be linked anyway.)

This issue can affect very large functions compiled with ORCA/C or ORCA/Pascal, which may sometimes have branches that go more than 32 KB forward or back.
2021-02-19 18:18:47 -06:00
Stephen Heumann
42734c7433 Update linker release notes. 2018-09-15 16:40:45 -05:00
Stephen Heumann
1a643585e8 Update linker version number to 2.0.5. 2018-09-15 16:40:23 -05:00
Stephen Heumann
170fa09ecc Search for object files under both lower- and upper-case extensions.
This enables the linker to work correctly with object files with either extension case (or a mix), so it can work with objects from any of the ORCA languages even on a case-sensitive filesystem.

If two object files differ only in the case of their extension, the one with the lower-case extension will be used, and the one with the upper-case extension will be ignored.
2018-09-15 16:20:18 -05: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
MikeW50
2cdbebe6e6
Merge pull request #4 from ksherlock/ci-update
use lowercase extensions (.root, .a, etc)
2018-03-25 15:35:09 -06:00
MikeW50
9bca07851b
Merge pull request #2 from ksherlock/gg_support
add makefile and build.ninja file for use with Golden Gate.
2018-03-25 15:34:20 -06:00
Kelvin Sherlock
a8528f35b7 use lowercase extensions (.root, .a, etc) for better compatibility with case-sensitive file systems
(ORCA/C and ORCA/Pascal use lowercase extensions for object files. ORCA/M uses uppercase extensions for object files)
2018-01-02 21:35:34 -05:00
Kelvin Sherlock
1ec542fde5 fix typos. 2017-10-23 09:32:39 -04:00
Stephen Heumann
346516654c Update linker release notes. 2017-10-21 22:29:39 -05:00
Stephen Heumann
3099720543 Update linker version number to 2.0.4. 2017-10-21 22:29:26 -05:00
Stephen Heumann
7328e38c27 Fix bug in handling of pathname buffers at the very beginning of a bank. 2017-10-08 20:47:06 -05:00
Stephen Heumann
877e84cdb3 Fix bugs in handling of symbol table entries at the very beginning of a bank.
These bugs could manifest themselves as (at least) bogus "Addressing error" or "expression too complex" messages.
2017-10-08 20:46:55 -05:00
Kelvin Sherlock
ce65f20394 add makefile and ninja file for use with Golden Gate. 2017-10-02 16:01:45 -04: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