Go to main content

man pages section 1: User Commands

Exit Print View

Updated: July 2017

ld86 (1)


ld86 - Linker for as86(1)


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


ld86(1)                     General Commands Manual                    ld86(1)

       ld86 - Linker for as86(1)

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

       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

       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.

       -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

       -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 or object file libdir-from-search/x to list of files

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

       -i     separate I&D output

       -lx    add library libdir-from-search/libx.a to list of files linked

       -m     print modules linked on stdout

       -o     output file name follows

       -s     strip symbols

       -r     Generate  a  relocatable  object  from one source object, if the
              linker is given the -N option also the output format will be the
              hosts native format 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.

       The  linker  predefines  several  labels that can be imported into user

              Standard C variable for the end of the text segment.

              Standard C variable for the end of the initilised data.

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

              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.

              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.

              The top of segment 'X's data area.

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

              The top of segment 'X's common area.

              This is the adjusted offset from  segment  0  of  the  start  of
              segment 'X' in 'paragraphs'.

       The 6809 version does not support -i.

       The  previous  versions  of the linker could produce an 8086 executable
       with segments of a size  >64k,  now  only  i386  executables  may  have
       segments this large.

       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.

       See attributes(5) for descriptions of the following attributes:

       |Availability   | developer/bcc    |
       |Stability      | Uncommitted      |
       This    software    was    built    from    source     available     at
       https://java.net/projects/solaris-userland.    The  original  community
       source                was                downloaded                from

       Further information about this software can be found on the open source
       community website at http://homepage.ntlworld.com/robert.debath/dev86/.

                                   Apr, 1997                           ld86(1)