08/07/86 linkage_editor, le Syntax as a command: le paths {-control arguments} Function: Joins a series of object segments together into a single execution unit resolving external references to the explicitly named segments or segments within the named libraries. Arguments: paths specifications of the input binaries which are to be included in the output binary. Valid formats for a path specification are: Archive Library archives are unbound archives containing object segments which may be used to resolve external references. To specify a library archive, the ".archive" suffix must be included in the name. Directory Library directories may be specified which contain loose object segments to which external references may be resolved. Any archives found in the directory will be expanded and all the components included. Pathname Pathnames to specific segments or archive components may be specified. Starname Starnames specifying groups of loose segments within a directory may be specified, or an archive component starname specifying a set of components within a particular archive. A starname that includes archives will expand each archive. Control arguments: -abort_severity severity, -asv severity specifies the error severity at which the execution should be terminated and must be in the range 0 to 3. Severity 4 errors are not recoverable and are terminated immediately. See the notes below for a description of error severities. If no abort severity is specified, a value of 3 is used. An abort severity of 0 will generate the tables and attempt to resolve links but will stop before generating any output. -automatic_segnames, -asn specifies that entrypoint names are to be automatically added to the containing block as segnames so that a reference to the entrypoint name alone will resolve to the correct block. (Default) -component_size pages, -compsz pages specifies the maximum number of pages which a single component of the output object should contain. This value is used to determine at what point the transition is made from single segment to MSF and the size of an individual MSF component. If this control argument is not specified, a value of 255 pages is used. -delete {entrypoint}, -dl {entrypoint} deletes the named entrypoint from the output binary. If no entrypoint name is given, all entrypoints will be deleted, with the exception of the definition for "main_" and its associated segnames, if present. This definition can be removed with an explicit -delete main_ control argument. -display_severity severity, -dsv severity sets the display severity to the given value. The display severity is the minimum severity error which will cause a message to be displayed. Display severity must be in the range from 1 to 5. The default value is 1. -force, -fc suppresses the query before overwriting a non-object segment or an object segment created by a translator. -library library_specification, -lb library_specification specifies one or more object library routines which the linkage editor will use to resolve external references. The library specification is in the same form and is evaluated in the same manner as the input path specification. -list, -ls create a listing specifying what segments were involved in the creation of the linked segment, the disposition of each input component, and a list of the retained links and definitions. The name of the listing segment will be the same as the output binary with a .list suffix appended. -map Create a map of the input components and where they were placed. The name of the listing segment will be the same as the output binary with a .list suffix appended. -no_automatic_segnames, -nasn do not add entrypoint names to the containing block as segname definitions. This is the same behaviour as the binder and requires that entrypoints be referenced with the name of the containing module (i.e. segment$entrypoint) in order to be resolved internally. -no_force, -nfc query before overwriting a non-object segment, or an object created by a translator. (Default) -no_list, -nls do not produce a listing segment. (Default) -no_version, -nvers do not print out the version of the linkage editor. -output_file pathname, -of pathname specifies the pathname of the output binary to be created. If no -output_file argument is given, the output binary will be created in the working directory with the name a.out. Before generating the output, the linkage editor will check to insure that the target either does not exist, or was a bound object prior to overwriting. If the target is not an object, or was not created by the linkage_editor, the user will be queried before it is overwritten unless the -force argument is given. -retain entrypoint, -ret entrypoint specifies an entrypoint that should be retained. The entrypoint is given in the form segname$entryname. The entrypoint is found by conventional methods, and that definition and all segname definitions for that block are retained in the final output. If no -retain or -delete argument is given, all segnames and entrypoints will be retained. If any -retain arguments are given, all other entrypoint and segname definitions will be deleted, with the exception of a "main_" definition which will always be retained, along with its associated segnames, unless deleted with an explicit -delete main_ control argument. -version, -vers prints out the version of the linkage editor before linking. (Default) Notes: When specifying an entrypoint with a -retain or -delete option, the entrypoint name given is treated as a pair of starnames. One starname for the segname portion and one for the entrypoint name portion. Parts of the entrypoint not given are assumed to be **. If -retain arguments are supplied but no -delete arguments, then a global -delete is assumed. Otherwise a global -retain is assumed. When determining which -retain or -delete option to apply to any given definition, the most rules are applied: 1) The most specific rule is applied first. The following order determines what is the most specific rule most specific: explicit segname and entrypoint star segname and explicit entrypoint any segname and explicit entrypoint explicit segname and star entrypoint star segname and entrypoint any segname and star entrypoint explicit segname and any entrypoint star segname and any entrypoint least specific: any segname and entrypoint where "any" name refers to a star name which matches any name and "star" name refers to a star name which is ambiguous (ie. contains * or ? characters) but does not match all names, and "explicit" name refers to a name with no * or ? characters. 2) entrypoint specs with the same class above, are ordered based on the order they occurred in the input. If two starnames both match a given entrypoint, the first one given on the command line will be used. Examples: -retain bar$foo = -retain bar$foo -retain foo = -retain **$foo -retain bar$ = -retain bar$** -retain = -retain **$** -retain b??$ = -retain b??$** Notes on severity values: The linkage_editor command associates the following severity values to be used by the severity active function: Value Meaning 0 No error. 1 Warning. 2 Correctable error. 3 Fatal error. 4 Unrecoverable error. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved