# This is the linker target specific file.  This is invoked by the
# autoconf generated configure script.  Putting it in a separate shell
# file lets us skip running autoconf when modifying target specific
# information.

# This file switches on the shell variable ${targ}, and sets the
# following shell variables:
#  targ_emul		name of linker emulation to use
#  targ_extra_emuls	additional linker emulations to provide
#  targ_extra_libpath	additional linker emulations using LIB_PATH
#  targ_extra_ofiles	additional objects needed by the emulation

targ_extra_emuls=
targ_extra_ofiles=

case "${targ}" in
arm-epoc-pe)		targ_emul=arm_epoc_pe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
arm-*-wince)		targ_emul=armpe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
arm-*-pe)		targ_emul=armpe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
arc-*-elf*)		targ_emul=arcelf ;;
avr-*-*)		targ_emul=avr85xx
			targ_extra_emuls="avr1200 avr23xx avr44x4 avr4433 avrmega603 avrmega103 avrmega161" ;;
d10v-*-*)		targ_emul=d10velf ;;
d30v-*-*ext*)		targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
d30v-*-*onchip*)	targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;
d30v-*-*)		targ_emul=d30velf; targ_extra_emuls="d30v_e d30v_o" ;;
sparc64-*-aout*)	targ_emul=sparcaout ;;
sparc64-*-elf*)		targ_emul=elf64_sparc ;;
sparc-sun-sunos4*) 	targ_emul=sun4 ;;
sparclite*-*-elf)	targ_emul=elf32_sparc ;;
sparclite*-*-coff)	targ_emul=coff_sparc ;;
sparclite*-fujitsu-*)	targ_emul=sparcaout ;;
sparc*-*-aout)		targ_emul=sparcaout ;;
sparc*-*-coff)		targ_emul=coff_sparc ;;
sparc*-*-elf)		targ_emul=elf32_sparc ;;
sparc*-*-sysv4*)	targ_emul=elf32_sparc ;;
sparc*-*-linux*aout*)	targ_emul=sparclinux
			targ_extra_emuls="elf32_sparc sun4"
			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
			tdir_sun4=sparc-sun-sunos4
			;;
sparc64-*-linux-gnu*)	targ_emul=elf64_sparc
			targ_extra_emuls="elf32_sparc sparclinux sun4"
			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
			tdir_sparclinux=${tdir_elf32_sparc}aout
			tdir_sun4=sparc-sun-sunos4
			;;
sparc*-*-linux-gnu*)	targ_emul=elf32_sparc
			targ_extra_emuls="sparclinux elf64_sparc sun4"
			tdir_sparclinux=${targ_alias}aout
			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
			tdir_sun4=sparc-sun-sunos4
			;;
sparc*-*-lynxos*)	targ_emul=sparclynx ;;
sparc64-*-netbsd*)	targ_emul=elf64_sparc ;;
sparc*-*-netbsd*elf*)	targ_emul=elf32_sparc ;;
sparc*-*-netbsd*)	targ_emul=sparcnbsd ;;
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
			targ_emul=elf32_sparc ;;
sparc-*-solaris2*)	targ_emul=elf32_sparc
			targ_extra_emuls="elf64_sparc"
			targ_extra_libpath=$targ_extra_emuls
			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
			;;
sparcv9-*-solaris2* | sparc64-*-solaris2*)
			targ_emul=elf64_sparc
			targ_extra_emuls="elf32_sparc"
			targ_extra_libpath=$targ_extra_emuls
			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
			;;
sparc*-*-solaris2*)	targ_emul=elf32_sparc ;;
sparc*-wrs-vxworks*)	targ_emul=sparcaout ;;
sparc*-*-rtemsaout*)	targ_emul=sparcaout ;;
sparc*-*-rtemself*)	targ_emul=elf32_sparc ;;
sparc*-*-rtems*)	targ_emul=elf32_sparc ;;
i960-wrs-vxworks5.0*)	targ_emul=gld960 ;;
i960-wrs-vxworks5*)	targ_emul=gld960coff ;;
i960-wrs-vxworks*)	targ_emul=gld960 ;;
i960-*-coff)		targ_emul=gld960coff ;;
i960-intel-nindy)	targ_emul=gld960 ;;
i960-*-rtemscoff*)	targ_emul=gld960coff ;;
i960-*-rtemself*)	targ_emul=elf32_i960 ;;
i960-*-rtems*)		targ_emul=gld960coff ;;
i960-*-elf*)		targ_emul=elf32_i960 ;;
m32r-*-*)		targ_emul=m32relf ;;
m68*-sun-sunos[34]*)	targ_emul=sun3 ;;
m68*-wrs-vxworks*)	targ_emul=sun3 ;;
m68*-ericsson-ose)	targ_emul=sun3 ;;
m68*-apple-aux*)	targ_emul=m68kaux ;;
*-tandem-none)		targ_emul=st2000 ;;
i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
i370-*-mvs*) 		targ_emul=mvs ;;
i[3456]86-*-vsta)	targ_emul=vsta ;;
i[3456]86-go32-rtems*)	targ_emul=i386go32 ;;
i[3456]86-*-go32)	targ_emul=i386go32 ;;
i[3456]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
i[3456]86-*-aix*)	targ_emul=i386coff ;;
i[3456]86-*-sco*)	targ_emul=i386coff ;;
i[3456]86-*-isc*)	targ_emul=i386coff ;;
i[3456]86-*-lynxos*)	targ_emul=i386lynx ;;
i[3456]86-*-coff)	targ_emul=i386coff ;;
i[3456]86-*-rtemscoff*) targ_emul=i386coff ;;
i[3456]86-*-rtemself*)  targ_emul=elf_i386 ;;
i[3456]86-*-rtems*)     targ_emul=elf_i386 ;;
i[3456]86-*-bsd)	targ_emul=i386bsd ;;
i[3456]86-*-bsd386)	targ_emul=i386bsd ;;
i[3456]86-*-bsdi*)	targ_emul=i386bsd ;;
i[3456]86-*-aout)	targ_emul=i386aout ;;
i[3456]86-*-linux*aout*)	targ_emul=i386linux
			targ_extra_emuls=elf_i386
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
			;;
i[3456]86-*-linuxoldld)	targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
i[3456]86-*-linux-gnu*)	targ_emul=elf_i386
			targ_extra_emuls=i386linux
			tdir_i386linux=${targ_alias}aout
			;;
i[3456]86-*-sysv[45]*)	targ_emul=elf_i386 ;;
i[3456]86-*-solaris2*)	targ_emul=elf_i386 ;;
i[3456]86-*-unixware)	targ_emul=elf_i386 ;;
i[3456]86-*-solaris*)	targ_emul=elf_i386 ;;
i[3456]86-*-netbsd*)	targ_emul=i386nbsd ;;
i[3456]86-*-netware)	targ_emul=i386nw ;;
i[3456]86-*-elf*)	targ_emul=elf_i386 ;;
i[3456]86-*-freebsdaout* | i[3456]86-*-freebsd[12].* | i[3456]86-*-freebsd[12])
			targ_emul=i386bsd ;;
i[3456]86-*-freebsd*)	targ_emul=elf_i386 ;;
i[3456]86-*-sysv*)	targ_emul=i386coff ;;
i[3456]86-*-ptx*)	targ_emul=i386coff ;;
i[3456]86-*-mach*)	targ_emul=i386mach ;;
i[3456]86-*-gnu*)	targ_emul=elf_i386 ;;
i[3456]86-*-msdos*)	targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
i[3456]86-*-moss*)	targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
i[3456]86-*-winnt*)	targ_emul=i386pe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-pe)		targ_emul=i386pe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-cygwin*)	targ_emul=i386pe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-mingw32*)	targ_emul=i386pe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-interix*)	targ_emul=i386pe_posix;
 			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-beospe*)    targ_emul=i386beos ;;
i[3456]86-*-beos*)	targ_emul=elf_i386_be ;;
i[3456]86-*-vxworks*)	targ_emul=i386aout ;;
m8*-*-*)		targ_emul=m88kbcs ;;
a29k-*-udi)		targ_emul=sa29200 ;;
a29k-*-ebmon)		targ_emul=ebmon29k ;;
a29k-*-*)		targ_emul=a29k ;;
#  arm-*-riscix*)		targ_emul=riscix ;;
arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
armeb-*-aout)		targ_emul=armaoutb ;;
arm-*-coff)		targ_emul=armcoff ;;
arm-*-netbsd*)		targ_emul=armnbsd ;;
arm-*-elf)		targ_emul=armelf ;;
arm-*-oabi)		targ_emul=armelf_oabi ;;
arm*-*-linux-gnu*)	targ_emul=armelf_linux; targ_extra_emuls="armelf_linux26 armelf" ;;
arm*-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm*-*-conix*)		targ_emul=armelf ;;
thumb-*-linux-gnu* | thumb-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
strongarm-*-coff)	targ_emul=armcoff ;;
strongarm-*-elf)	targ_emul=armelf ;;
thumb-*-coff)		targ_emul=armcoff ;;
thumb-*-elf)		targ_emul=armelf ;;
thumb-*-oabi)           targ_emul=armelf_oabi ;;
thumb-epoc-pe)		targ_emul=arm_epoc_pe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
thumb-*-pe)		targ_emul=armpe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
h8300-*-hms* | h8300-*-coff*)
			targ_emul=h8300; targ_extra_emuls="h8300h h8300s"
			;;
h8500-*-hms* | h8500-*-coff*)
			targ_emul=h8500
			targ_extra_emuls="h8500s h8500b h8500m h8500c"
			;;
sh-*-elf* | sh-*-rtemself*)
			targ_emul=shelf
			targ_extra_emuls="shlelf sh shl"
			;;
sh-*-pe)		targ_emul=shpe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
sh-*-rtemscoff* | sh-*-* | sh-*-rtems*)
			targ_emul=sh; targ_extra_emuls=shl ;;
m68k-sony-*)		targ_emul=news ;;
m68k-hp-bsd*)		targ_emul=hp300bsd ;;
m68*-motorola-sysv*)	targ_emul=delta68 ;;
m68*-*-aout)		targ_emul=m68kaout ;;
m68*-*-coff)		targ_emul=m68kcoff ;;
m68*-*-elf)		targ_emul=m68kelf ;;
m68*-*-hpux*)		targ_emul=hp3hpux ;;
m68k-*-linux*aout*)	targ_emul=m68klinux
			targ_extra_emuls=m68kelf
			tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
			;;
m68k-*-linux-gnu*)	targ_emul=m68kelf
			targ_extra_emuls=m68klinux
			tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
			;;
m68*-*-gnu*)		targ_emul=m68kelf ;;
m68*-*-lynxos*)		targ_emul=m68klynx ;;
m68*-hp*-netbsd*)	targ_emul=m68k4knbsd ;;
m68*-*-netbsd*)		targ_emul=m68knbsd ;;
m68*-*-psos*)		targ_emul=m68kpsos ;;
m68*-*-rtemscoff*)	targ_emul=m68kcoff ;;
m68*-*-rtemself)	targ_emul=m68kelf ;;
m68*-*-rtems*)		targ_emul=m68kelf ;;
hppa*w*-*)		targ_emul=elf64hppa ;;
hppa*-*-*elf*)		targ_emul=hppaelf ;;
hppa*-*-linux-gnu*)	targ_emul=hppaelf ;;
hppa*-*-lites*)		targ_emul=hppaelf ;;
hppa*-*-rtems*)		targ_emul=hppaelf ;;
vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
mips*-*-pe)		targ_emul=mipspe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
mips*-dec-ultrix*)	targ_emul=mipslit ;;
mips*-dec-osf*)		targ_emul=mipslit ;;
mips*-sgi-irix5*)	targ_emul=elf32bsmip ;;
mips*-sgi-irix6*)	targ_emul=elf32bmipn32
	                targ_extra_emuls="elf32bsmip elf64bmip"
	                ;;
mips*-sgi-irix*)	targ_emul=mipsbig ;;
mips*el-*-ecoff*)	targ_emul=mipsidtl ;;
mips*-*-ecoff*)		targ_emul=mipsidt ;;
mips*-dec-bsd*)		targ_emul=mipsbsd ;;
mips*-dec-netbsd*)	targ_emul=elf32lmip ;;
mips*-*-bsd*)		targ_emul=mipsbig ;;
mips*vr4300el-*-elf*)	targ_emul=elf32l4300 ;;
mips*vr4300-*-elf*)	targ_emul=elf32b4300 ;;
mips*vr4100el-*-elf*)	targ_emul=elf32l4300 ;;
mips*vr4100-*-elf*)	targ_emul=elf32b4300 ;;
mips*vr5000el-*-elf*)	targ_emul=elf32l4300 ;;
mips*vr5000-*-elf*)	targ_emul=elf32b4300 ;;
mips*el-*-elf*)		targ_emul=elf32elmip ;;
mips*-*-elf*)		targ_emul=elf32ebmip ;;
mips*el-*-rtems*)	targ_emul=elf32elmip ;;
mips*-*-rtems*)		targ_emul=elf32ebmip ;;
mips*el-*-vxworks*)	targ_emul=elf32elmip ;;
mips*-*-vxworks*)	targ_emul=elf32ebmip ;;
mips*el-*-linux-gnu*)	targ_emul=elf32lsmip
			targ_extra_emuls="elf32bsmip mipslit mipsbig"
			;;
mips*-*-linux-gnu*)	targ_emul=elf32bsmip
			targ_extra_emuls="elf32lsmip mipsbig mipslit"
			;;
mips*-*-lnews*)		targ_emul=mipslnews ;;
mn10200-*-*)		targ_emul=mn10200 ;;
mn10300-*-*)		targ_emul=mn10300 ;;
alpha-*-freebsd*)	targ_emul=elf64alpha ;;
alpha*-*-linuxecoff*)	targ_emul=alpha targ_extra_emuls=elf64alpha
			tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'`
			;;
alpha*-*-linux-gnu*)	targ_emul=elf64alpha targ_extra_emuls=alpha
			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
			;;
alpha*-*-osf*)		targ_emul=alpha ;;
alpha*-*-gnu*)		targ_emul=elf64alpha ;;
alpha*-*-netware*)	targ_emul=alpha ;;
alpha*-*-netbsd*)	targ_emul=elf64alpha ;;
z8k-*-coff) 		targ_emul=z8002; targ_extra_emuls=z8001 ;;
ns32k-pc532-mach* | ns32k-pc532-ux*)	targ_emul=pc532macha ;;
ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
powerpc-*-linux-gnu*)	targ_emul=elf32ppclinux; targ_extra_emuls=elf32ppc;
			targ_extra_libpath=elf32ppc ;;
pjl*-*-*)	        targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
pj*-*-*)	        targ_emul=pjelf ;;
powerpc-*-elf* | powerpc-*-eabi* | powerpc-*-sysv* \
  | powerpc-*-netbsd* | powerpc-*-vxworks*)
	targ_emul=elf32ppc ;;
powerpcle-*-elf* | powerpcle-*-eabi* | powerpcle-*-solaris* \
  | powerpcle-*-sysv* | powerpcle-*-vxworks*)
	targ_emul=elf32lppc ;;
powerpcle-*-rtems*)	targ_emul=elf32leppc ;;
powerpc-*-rtems*)	targ_emul=elf32ppc ;;
powerpc-*-macos*)	targ_emul=ppcmacos ;;
powerpc-*-netware*)	targ_emul=ppcnw ;;
powerpcle-*-pe)         targ_emul=ppcpe ;;
powerpcle-*-winnt*)     targ_emul=ppcpe ;;
powerpcle-*-cygwin*)   targ_emul=ppcpe ;;
powerpc-*-aix*)		targ_emul=aixppc ;;
powerpc-*-beos*)	targ_emul=aixppc ;;
rs6000-*-aix*)		targ_emul=aixrs6 ;;
tic30-*-*aout*)		targ_emul=tic30aout ;;
tic30-*-*coff*)		targ_emul=tic30coff ;;
tic80-*-*)		targ_emul=tic80coff ;;
v850-*-*)		targ_emul=v850 ;;
v850e-*-*)		targ_emul=v850 ;;
v850ea-*-*)		targ_emul=v850 ;;
w65-*-*)		targ_emul=w65 ;;
fr30-*-*)		targ_emul=elf32fr30 ;;
mcore-*-pe)		targ_emul=mcorepe ;
			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
mcore-*-elf)		targ_emul=elf32mcore ;;
*-*-ieee*)		targ_emul=vanilla ;;

*)
  echo 2>&1 "*** ld does not support target ${targ}"
  echo 2>&1 "*** see ld/configure.tgt for supported targets"
  exit 1

esac
