# Linker

Description

The linker is responsible to solve the referencement of labels, and eventually append library source codes to the build process.

To disable the automatic inclusion of 'header.s' and 'tail.s', just modify your OSDK_CONFIG.BAT file, and add the following:

    	SET OSDKLINK=-B

Switches

The -d defines the location of the library files. It must be followed by a path:

    	-d /usr/oric/lib/

The -s defines the location of the sources files. It must be followed by a path:

    	-s /sources/oric/demo/

The -o defines the name of the outputed file. It must be followed by the file name. By default the output name will be 'go.s':

    	-o final.s

The -l switch prints out defined labels.Usefull when building lib index files.

The -v switch activates the verbose mode.

The -q switch enables the quiet mode.

The -b switch disables the automatic inclusion of 'header.s' and 'tail.s

The -f inserts a #file directives before each linked file.

Historic

Here is the list of all releases with a short description of things that changed:

Version 0.67

- Error messages now indicate that they came from the Linker, because a generic "Error, can't load xxxx" was not very informative

Version 0.66

- The new macro file generate lines that contain multiple instructions, the linker stopped at the first encountered instruction, this new version correctly parses that

Version 0.65

- Fixed some issues in the token pattern matching used to detect labels resulting in #includes containing relative paths to be incorrectly parsed

Version 0.64

- Fixed the age old problem if includes from assembler sources leading to Unresolved External errors

Version 0.63

Fixed a number of issues in the linker:
- (WIP) The old linked filtered out comments, need to implement this feature as well
- removed some test code
- fixed the loading of symbols from the library index file
- Fixed a problem of text file parsings. Mixed unix/dos carriage return would result in very long lines (containing many lines), leading to some crashes later on.
- Also fixed a problem in reporting the parsed files.

Version 0.059

- Corrected a bug that made it impossible to "link" only one source file

Version 0.058

- Added filtering of all '#' directives
- Added an icon to the executable file to make it more 'OSDK' integrated :)
- Added '-F' option to enable #file directive (requires modified XA assembler)
- Modified the handling of comments to avoid crashes on C and C++ comments

Version 0.057

- Added '-B' option to suppress inclusion of HEADER and TAIL

Version 0.056

- Handling of lines that have more than 180 characters

Before that...

- This program was created and maintained by somebody else :)