Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ld86(1)			    General Commands Manual		       ld86(1)

NAME
       ld86 - Linker for as86(1)

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

       -7     produce Seventh Edition UNIX a.out header.

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

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

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.

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

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

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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ld86&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help