man pages section 1: User Commands

Exit Print View

Updated: July 2014

ld86 (1)


ld86 - Linker for as86(1)


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


User Commands                                             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 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.

     -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

     -D   data base  address  follows  (in  format  suitable  for

     -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

     -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 linked

     -T   text  base  address  follows  (in  format  suitable for

SunOS 5.11            Last change: Apr, 1997                    1

User Commands                                             ld86(1)

     -i   separate I&D output

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

     -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 programs.

          Standard C variable for the end of the text segment.

          Standard C variable for the end of the initilised data.

          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

          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.

SunOS 5.11            Last change: Apr, 1997                    2

User Commands                                             ld86(1)

          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 area.

          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

     |Availability   | developer/bcc    |
     |Stability      | Uncommitted      |
     This   software   was   built   from   source  available  at   The   original
     community       source       was       downloaded       from

SunOS 5.11            Last change: Apr, 1997                    3

User Commands                                             ld86(1)

     Further  information about this software can be found on the
     open        source        community        website        at

SunOS 5.11            Last change: Apr, 1997                    4