Annotation of 43BSDReno/share/doc/ucs/sumacc/ld68.1, revision 1.1.1.1

1.1       root        1: .TH LD68 1
                      2: .SU
                      3: .SH NAME
                      4: ld68 \- .b -> b.out linker for the MC68000
                      5: .SH SYNOPSIS
                      6: .B ld68
                      7: [ option ] ... file ...
                      8: .SH DESCRIPTION
                      9: .I Ld68
                     10: combines several
                     11: object programs into one, resolves external
                     12: references, and searches libraries.
                     13: In the simplest case several object
                     14: .I files
                     15: are given, and
                     16: .I ld68
                     17: combines them, producing
                     18: an object module which can be either executed or
                     19: become the input for a further
                     20: .I ld68
                     21: run.
                     22: (In the latter case, the
                     23: .B \-r
                     24: option must be given
                     25: to preserve the relocation bits.)\ 
                     26: The output of
                     27: .I ld68
                     28: is left on
                     29: .BR b.out .
                     30: This file is made executable
                     31: only if no errors occurred during the load.
                     32: .PP
                     33: The argument routines are concatenated in the order
                     34: specified.
                     35: .PP
                     36: The entry point of the output is determined by the first applicable item of the
                     37: following list: the \fB\-e\fP option if given, the value of the symbol _start
                     38: if defined, or the text origin (first instruction).
                     39: .PP
                     40: If any argument is a library, it is searched exactly once
                     41: at the point it is encountered in the argument list.
                     42: Only those routines defining an unresolved external
                     43: reference are loaded.
                     44: If a routine from a library
                     45: references another routine in the library,
                     46: the referenced routine must appear after the
                     47: referencing routine in the library.
                     48: Thus the order of programs within libraries
                     49: may be important.
                     50: .PP
                     51: The symbols `\_etext', `\_edata' and `\_end'
                     52: (`etext', `edata' and `end' in C)
                     53: are reserved, and if referred to,
                     54: are set to the first location above the program,
                     55: the first location above initialized data,
                     56: and the first location above all data respectively.
                     57: It is erroneous to define these symbols.
                     58: .PP
                     59: .I Ld68
                     60: understands several options.
                     61: Except for
                     62: .BR \-l ,
                     63: they should appear before the file names.
                     64: .TP
                     65: .B \-D
                     66: Take the next argument as a decimal number and pad the data segment
                     67: with zero bytes to the indicated length.
                     68: .TP 
                     69: .B  \-d
                     70: Force definition of common storage
                     71: even if the
                     72: .B \-r
                     73: flag is present.
                     74: .TP
                     75: .B \-e
                     76: The following argument is taken to be the
                     77: name of the entry point of the loaded
                     78: program; location 0x1000 is the default.
                     79: .TP
                     80: .B \-f
                     81: Fold case on identifiers.
                     82: That is, upper and lower case letters are not distinguished.
                     83: Used to link with Pascal routines, for example.
                     84: .TP 
                     85: .BI \-l x
                     86: This
                     87: option is an abbreviation for the library name
                     88: .RI `/usr/sun/lib/lib x .a',
                     89: where
                     90: .I x
                     91: is a string.
                     92: A library is searched when its name is encountered,
                     93: so the placement of a
                     94: .B  \-l
                     95: is significant.
                     96: .TP
                     97: .BI  \-v x
                     98: This denotes board version
                     99: .I x
                    100: which may at present only be 'm' for Motorola Design Module.  The default board
                    101: version is the Sun1 prototype, v1.
                    102: .TP
                    103: .B  \-M
                    104: Create a human-readable list of symbols in ``sym.out''.
                    105: .TP
                    106: .B  \-n
                    107: Arrange (by giving the output file a 0410 "magic number") that
                    108: when the output file is executed,
                    109: the text portion will be read-only and shared
                    110: among all users executing the file.
                    111: This involves moving the data areas up to the first
                    112: possible 64K byte boundary following the
                    113: end of the text 
                    114: (not really useful yet).
                    115: .TP 
                    116: .B  \-o
                    117: The
                    118: .I name
                    119: argument after
                    120: .B \-o
                    121: is used as the name of the
                    122: .I ld68
                    123: output file, instead of
                    124: .BR b.out .
                    125: .TP 
                    126: .B \-q
                    127: Quicksort symbols in 
                    128: .BR b.out 
                    129: in ascending numerical order.
                    130: .TP
                    131: .B  \-r
                    132: Generate relocation bits in the output file
                    133: so that it can be the subject of another
                    134: .I ld68
                    135: run.
                    136: This flag also prevents final definitions from being
                    137: given to common symbols,
                    138: and suppresses the `undefined symbol' diagnostics.
                    139: .TP
                    140: .B \-S
                    141: `Strip' the output by removing all symbols except locals and globals.
                    142: .TP 
                    143: .B  \-s
                    144: `Strip' the output, that is, remove the symbol table
                    145: and relocation bits to save space (but impair the
                    146: usefulness of the debuggers).
                    147: This information can also be removed by
                    148: .IR  strip (1).
                    149: .TP
                    150: .B \-T
                    151: The next argument is a hexadecimal number which sets the text segment origin.
                    152: The default origin is 0x1000.
                    153: If you intend to use the output as input to another run of
                    154: ld68, you must specify -T 0.
                    155: .TP
                    156: .B \-B
                    157: The next argument is a hexadecimal number which sets the common/bss segment
                    158: origin.  The default origin is immediately after the data segment.
                    159: .TP 
                    160: .B  \-u
                    161: Take the following argument as a symbol and enter
                    162: it as undefined in the symbol table.  This is useful
                    163: for loading wholly from a library, since initially the symbol
                    164: table is empty and an unresolved reference is needed
                    165: to force the loading of the first routine.
                    166: .TP 
                    167: .B  \-X
                    168: Save local symbols
                    169: except for those whose names begin with `L'.
                    170: This option is used by
                    171: .IR cc (1)
                    172: to discard internally-generated labels while
                    173: retaining symbols local to routines.
                    174: .TP 
                    175: .B  \-x
                    176: Do not preserve local
                    177: (non-.globl) symbols in the output symbol table; only enter
                    178: external symbols.
                    179: This option saves some space in the output file.
                    180: .SH FILES
                    181: .ta \w'/usr/local/lib/lib*.a\ \ 'u
                    182: /usr/sun/lib/lib*.a    libraries
                    183: .br
                    184: b.out  output file
                    185: .SH "SEE ALSO"
                    186: ar(1), cc68(1), a68(1)
                    187: .SH BUGS
                    188: The b.out format header does not contain any indication of the
                    189: text segment origin, so if you specify something other than
                    190: the default origin -T 1000, you will have to remember this
                    191: value and specify it again to dl68 when you download. The
                    192: standard Sun monitor cannot netload files with origins other
                    193: than 1000, so you must either use dl68 or write a special
                    194: loader for such programs.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.