lk man page on Ultrix

Man page or keyword search:  
man Server   3690 pages
apropos Keyword Search (all sections)
Output format
Ultrix logo
[printable version]

lk(1)									 lk(1)

       lk - link editor

       lk [option...] file...

       The  command combines several object programs into one, resolves exter‐
       nal references, and searches libraries.	In the simplest case,  several
       object  files  are given, and combines them, producing an object module
       which can be executed.  The output  of  is  always  a  standard	ULTRIX
       object module.  This file is made executable only if no errors occurred
       during the load.

       The argument routines are linked together in the order specified.   The
       entry point of the output is the beginning of the first routine, unless
       the -e option is specified.

       If the argument is a library, it is searched only once at the point  it
       is  encountered	in the argument list.  Only those routines defining an
       unresolved external reference are loaded.  If a routine from a  library
       references  another routine in the library and the library has not been
       processed by the referenced routine must appear after  the  referencing
       routine	in  the	 library.  Thus the order of programs within libraries
       may be important.  The first member of a library should be a file named
       `__.SYMDEF',  which  is a dictionary for the library as produced by The
       dictionary is searched repeatedly to satisfy as many references as pos‐

       The  symbols  `_etext', `_edata' and `_end' (`etext', `edata' and `end'
       in C) are reserved, and if referred to, are set to the  first  location
       above  the  program, the first location above initialized data, and the
       first location above all data in that order.  It is an error to	define
       these symbols.

       Like  the  linker, the linker can process ULTRIX object modules, files,
       archived libraries (.a files), and ranlib-generated indexed  libraries.
       Unlike  the linker, however, the linker can also process object modules
       generated by the VAX FORTRAN compiler.  All command options can also be
       specified on the command.

       The  command  has  several  options.  Except for -l, they should appear
       before the file names.

       -D number	   Sets data segment length. The `number' is a	number
			   specifying  the desired length of the data segment.
			   The linker pads the data  segment  to  this	length
			   with zero bytes.

       -e symbol	   Take the argument as the name of the entry point of
			   the loaded program.	Location 0 is the default.

       -H number	   Takes number argument as a decimal integer, adds it
			   to end of text, and starts data section at a higher

       -K		   Produces  full  load	 map,  cross-referencing   all
			   defined symbols.

       -Ldir		   Add	dir  to	 the  list  of	directories  in	 which
			   libraries are searched for.	Directories  specified
			   with	 -L  are searched before the standard directo‐

       -lx		   Abbreviation for the	 library  name	`/lib/libx.a',
			   where x is a string.	 If that does not exist, tries
			   `/usr/lib/libx.a' A library is  searched  when  its
			   name	 is  encountered,  so the placement of a -l is

       -M		   Produces full load map, consisting of a module  and
			   program  section  synopsis and  symbol cross-refer‐
			   ence.  Only symbols that are referenced  appear  in
			   the cross-reference.	 Use -K to cross-reference all

       -N		   Do not make text portion  read  only	 or  sharable.
			   (Use magic number 0407.)

       -n		   Arranges  (by giving the output file a 0410 ``magic
			   number'') that when the output  file	 is  executed,
			   the	text portion is read-only and shared among all
			   users executing the file.  This involves moving the
			   data	 areas	up  to	the  first  possible 1024 byte
			   boundary following the end of the text.

       -o name		   Takes the name argument after -o as the name of the
			   output file, instead of

       -S		   Strips  the	output	by removing all symbols except
			   locals and globals.

       -s		   Removes the symbol table  and  relocation  bits  to
			   save	 space.	  This	impairs	 the usefulness of the
			   debuggers.  This information can also be removed by

       -T number	   Takes the argument as a  hexadecimal	 number	 which
			   sets	 the  text segment origin.  The default origin
			   is 0.

       -t		   Displays the name of each file as it is processed.

       -u symbol	   Enters argument as undefined symbol in  symbol  ta‐
			   ble.	  This	is  useful for loading from a library,
			   since initially the symbol table is	empty  and  an
			   unresolved reference is needed to force the loading
			   of the first routine.

       -X		   Saves local symbols except for  those  whose	 names
			   begin  with `L'.  This option is used by to discard
			   internally-generated labels while retaining symbols
			   local to routines.

       -x		   Suppresses  saving nonglobal symbols in output sym‐
			   bol table;  enters  only  external  symbols.	  This
			   option saves some space in the output file.

       -Yenvironment	   Adjust  the magic number in the output file so that
			   the program runs in	the  specified	environment  .
			   The	parameter  can	be POSIX, SYSTEM_FIVE, or BSD.
			   The parameter sets the program's execution environ‐
			   ment	 to  conform  with one of the three standards.
			   This parameter overrides the	 PROG_ENV  environment
			   variable, if it is present.	If neither this param‐
			   eter nor the PROG_ENV variable is present, -YBSD is

       -ysym		   Indicates  each file in which sym appears, its type
			   and whether the  file  defines  or  references  it.
			   Many	 such  options may be given to trace many sym‐
			   bols.  (It is usually necessary to begin  sym  with
			   an  `_',  as	 external C and PASCAL variables begin
			   with underscores.)

       -z		   Loads process on demand  from  the  resulting  exe‐
			   cutable  file  (413	format) rather than preloaded.
			   This is the default.	 It results  in	 a  1024  byte
			   header  on  the  output file followed by a text and
			   data segment, whose size  is	 a  multiple  of  1024
			   bytes  (being  padded out with nulls in the file if
			   necessary).	With this format  the  first  few  BSS
			   segment  symbols may actually appear, from the out‐
			   put of to live in the data  segment.	  This	avoids
			   wasting  the space which results from the data seg‐
			   ment size roundup.

       The linker does not support the following options: -A, -d, or -r.

       The command pads the images which are to be demand loaded from the file
       system to the next page boundary.

       When  linking  code containing GFLOAT instructions, the GFLOAT versions
       of libc and/or the math library must be used  rather  than  the	normal
       DFLOAT versions.	 Link to these by using -lcg and/or -lmg.

       The  compiler  and  the	linker	cannot	detect the use of mixed double
       floating point types, and your program may produce erroneous results.

       /lib/lib*.a	      libraries
       /usr/lib/lib*.a	      libraries
       /usr/local/lib/lib*.a  libraries
       a.out		      output file		      map file

See Also
       ar(1), as(1), cc(1), ld(1), ranlib(1)

				      VAX				 lk(1)

List of man pages available for Ultrix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net