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 14Nov15 17:02:28EST 75K Block linker.
Conv.a 12Feb15 09:44:27EST 47K Convert UNIX object code to block object code.
Extract file from library:
Arch0.a 12Feb15 09:44:23EST 1.3K     Dummy
Arch1.a 12Feb15 09:44:23EST 9.1K     Charles River Data Systems Unos
Arch4.a 12Feb15 09:44:24EST 6.1K     Torch Unisoft
Arch5.a 12Feb15 09:44:24EST 7.0K     Hewlett Packard
Arch6.a 12Feb15 09:44:24EST 6.7K     Motorola Unix System V
Arch7.a 12Feb15 09:44:24EST 6.1K     AT&T
Arch9.a 12Feb15 09:44:25EST 6.1K     Minimum, Amiga, Macintosh, NeXT, maybe Atari.
Arch10.a 12Feb15 09:44:23EST 6.1K     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 15Jul15 12:19:58EDT 187 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 15Jul15 12:19:58EDT 185 /usr/lib/Link#.y for cross builds with Ldo, for systems that use Arch9.a.
L14c.s 15Jul15 16:24:32EDT 227 Link14c executable for Macintosh.
L15c.s 15Jul15 16:24:33EDT 205 Link15c executable for NeXT.
ML.s 15Jul15 12:19:59EDT 132 /usr/MAC/Link9 executable for Macintosh.
AM.s 12Feb15 09:44:22EST 155 Link.y for Amiga, 68000 code only.

Up to Vsys/