Vsys/Macintosh/Load/
Up to parent directory
Manuals
Source
Standard IO for the linker is included by assembler directives in
Blink3.a, when it is assembled with a positive machine option
k=#. In the case of the Macintosh, these are:
.SYNO IONAM=/usr/IOst/IOst.a
...
.REXT IONAM
When the machine option is negative, k=-#, the .REXT
directive is skipped, and the linker object file is intended to be run
with the loader, Ldo, whose
standard IO acts as a local surrogate for that missing in the linker.
This is important for cross building, because it allows a linker object
file made on the host with a foreign machine option to be run with
Ldo on the host to link object files into executables for the
foreign machine, including foreign standard IO. See Command
Files below for some examples that cross build the linker itself.
All of the source files used by the systems in this distribution to
build the linker, Blink3.a, Conv.a, and
Arch9.a, include .DIRECT 2_, so cross builds can be
done on systems with the Motorola 68000 cpu.
Command Files
All of the command files below for building the linker are based on
Veltman originals, but
some use different names to help distinguish a direct build for the
local machine on itself from cross builds on the local machine for
other machines.
- On machine #, the command file L#.s builds an
executable Link# for the same machine.
- On any machine, the command file L#c.s builds an
executable Link#c for a normally different machine #.
- On any machine, the command file L#yc.s builds an object
file Link#c.y for a normally foreign target with
negative option k=-#, with no standard IO, to be used
with Ldo for debugging or cross compiling.
As an example of the first two, when the local machine is a Macintosh
and the other machine is a NeXT, the command file L14.s builds
a Macintosh executable Link14; and L15c.s cross builds
a NeXT executable Link15c. The direct command file
L14.s produces a correct Macintosh executable only on a
Macintosh, whereas the cross command file L15c.s builds a
correct NeXT executable on either machine. For production, the
executable Link14 or Link15c would be moved to the
appropriate Macintosh or NeXT folder and renamed as Link.
The command file ML.s is a special case. The Link9
executable it produces is for the Macintosh — the 9
refers to Arch9 rather than the Minimum. We kept the
historical name because it is used in Macintosh command files elsewhere.
The cross build process uses a Link#.y object file built with
k=-#. Some of the command files instead build Link#.y,
or just Link.y, with positive k, for local convenience.
| | | |
L14.s |
|
|
Link14 executable for Macintosh. Builds
under BasiliskII currently fail with relocation errors. Use the
working snapshot version of Link in ../bin/ instead. Builds under
SheepShaver work fine. |
Lyc.s |
|
|
/usr/lib/Link#.y for cross builds with Ldo, for
systems that use Arch9.a.
|
L14c.s |
|
|
Link14c executable for Macintosh. |
L15c.s |
|
|
Link15c executable for NeXT. |
ML.s |
|
|
/usr/MAC/Link9 executable for Macintosh. |
AM.s |
|
|
Link.y for Amiga, 68000 code only. |
Up to Vsys/