SYNOPSIS

       ld86   [-03MNdimrstyz[-]]  [-llib_extension]  [-o outfile]
       [-Ccrtfile]    [-Llibdir]     [-Olibfile]     [-Ttextaddr]
       [-Hheapsize] [-Ddataaddr] infile...



DESCRIPTION

       This  linker understands only the object files produced by
       the as86 assembler, it can link them into either an impure
       or a separate I&D executable.

       The linking defaults are everything off or none except for
       -0 and the output file is a.out.  There is not a  standard
       library location defined in the linker.



OPTIONS

       -0     produce header with 16-bit magic

       -3     produce header with 32-bit magic

       -d     delete  the  header  from the output file, used for
              MSDOS  COM  files.  As  a  side  effect  this  also
              includes  -s  as  there's  nowhere  to put a symbol
              table.

       -Cx    add file libdir-from-search/crtx.o to list of files
              linked

       -D     data  base  address follows (in format suitable for
              strtoul)

       -H     the top of heap (initial stack) address (in  format
              suitable for strtoul)

       -Lx    add  dir  name x to the head of the list of library
              dirs searched

       -M     print symbols linked on stdout

       -N     Create a native Linux OMAGIC output  file.  If  the
              contents  are  i386  code  the binary can be either
              linked by GCC or  executed  by  linux.  If  the  -z
              option  is  also included the linker can generate a
              QMAGIC executable.

       -Ox    add library libdir-from-search/x to list  of  files
              linked

       -T     text  base  address follows (in format suitable for
              strtoul)

              if possible.

       -t     trace modules being looked at on stdout

       -y     Alter the symbol tables to add  label  'extensions'
              so  that  labels with more than 8 characters can be
              stored in elks executables.

       -z     produce   "unmapped   zero   page"   or    "QMAGIC"
              executables

       All  the  options not taking an argument may be turned off
       by following the option letter by a '-', as for cc1.


PREDEFINED LABELS

       The linker predefines several labels that can be  imported
       into user programs.

       __etext
              Standard  C  variable  for  the  end  of  the  text
              segment.

       __edata
              Standard C variable for the end of  the  initilised
              data.

       __end  Standard C variable for the end of the bss area.

       __segoff
              The  offset  within the executable file between the
              start of the text segment and the start of the data
              segment  in 16 byte 'paragraphs'. Note this is zero
              for impure (tiny model) executables and is adjusted
              for executables that don't start at offset 0 within
              the segment.

       __segXDL
              The lowest address with data in  segment  'X'.  (eg
              __seg0DL  is  for segment zero or the text segment,
              __seg3DL is for the data segment) The value 'X'  is
              a hex digit.

       __segXDH
              The top of segment 'X's data area.

       __segXCL
              The   bottom  of  segment  'X's  'common  data'  or
              unitilised data area.  Each  segment  has  both  an
              initilised and unitilised data area.

       __segXCH
              The top of segment 'X's common area.


BUGS

       The linker cannot deal with reverse seeks  caused  by  org
       instructions  in the object file. Unlike previous versions
       the current one traps the error rather than trying to fill
       up the hard disk.

       The  linker  produces  a broken a.out object file if given
       one input and the -r option this is so  it  is  compatible
       with pre-dev86 versions.



                            Apr, 1997                     ld86(1)

Man(1) output converted with man2html