Up to parent directory




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
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.
Blink3.a Block linker.
Conv.a Convert UNIX object code to block object code.
Extract file from library:
Arch0.a     Dummy
Arch1.a     Charles River Data Systems Unos
Arch4.a     Torch Unisoft
Arch5.a     Hewlett Packard
Arch6.a     Motorola Unix System V
Arch7.a     AT&T
Arch9.a     Minimum, Amiga, Macintosh, NeXT, maybe Atari.
Arch10.a     Sun

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.
  1. On machine #, the command file L#.s builds an executable Link# for the same machine.
  2. On any machine, the command file L#c.s builds an executable Link#c for a normally different machine #.
  3. 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/