aboutsummaryrefslogtreecommitdiff
path: root/ld/configure.tgt
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-09-09 23:07:35 +0930
committerAlan Modra <amodra@gmail.com>2019-09-11 13:44:22 +0930
commitd871d478061f10b0879c688e2fa941407e9137aa (patch)
tree4f564ccc452de8255f2eecfecfb931de03ad2093 /ld/configure.tgt
parentcb7f4b298e5e0a3ab4fb6b13aa89e970478597bc (diff)
downloadgdb-d871d478061f10b0879c688e2fa941407e9137aa.zip
gdb-d871d478061f10b0879c688e2fa941407e9137aa.tar.gz
gdb-d871d478061f10b0879c688e2fa941407e9137aa.tar.bz2
Move elf32.em and elf-generic.em functions
Many ELF linker targets support multiple "emulations" and thus have multiple copies of elf32.em being compiled and linked into ld. This patch moves much of elf32.em and elf-generic.em into files which will be compiled just once, resulting in a 20% decrease in ld size for --enable-targets=all. * Makefile.am (ALL_EMUL_EXTRA_OFILES): Add ldelf and ldelfgen. (CFILES, HFILES, EXTRA_ld_new_SOURCES): Likewise. * configure.tgt: Formatting. (targ_extra_ofiles): Init to ldelf.o ldelfgen.o, reset to just ldelfgen.o for generic ELF targets, and empty for non-ELF. * emultempl/aarch64elf.em (gldaarch64_layout_sections_again): Use ldelf_map_segments. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, aarch64_for_each_input_file_wrapper), (aarch64_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/alphaelf.em (alpha_after_parse): Use ldelf_map_segments. * emultempl/armelf.em (gldarm_layout_sections_again): Likewise. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, arm_for_each_input_file_wrapper), (arm_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/cr16elf.em (cr16elf_after_parse): Use ldelf_map_segments. * emultempl/crxelf.em (crxelf_after_parse): Likewise. Delete declaration. * emultempl/cskyelf.em (gldcsky_layout_sections_again): Use ldelf_map_segments. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, csky_for_each_input_file_wrapper), (csky_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/genelf.em: Include ldelfgen.h. (gld${EMULATION_NAME}_before_allocation): Use ldelf_map_segments. * emultempl/hppaelf.em (hppaelf_after_parse): Likewise. (hppaelf_layout_sections_again): Likewise. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, hppa_for_each_input_file_wrapper), (hppa_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/ia64elf.em (ia64elf_after_parse): Use ldelf_map_segments. * emultempl/m68hc1xelf.em (real_func), (m68hc11_for_each_input_file_wrapper), (m68hc11_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/metagelf.em (metagelf_layout_sections_again): Use ldelf_map_segments. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, metag_for_each_input_file_wrapper), (metag_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/mipself.em (real_func), (mips_for_each_input_file_wrapper), (mips_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/mmo.em: Don't include elf-bfd.h, do include ldelfgen.h. (gld${EMULATION_NAME}_after_allocation): Use ldelf_map_segments. * emultempl/nds32elf.em (nds32_elf_after_parse): Use ldelf_after_parse. (nds32_elf_after_allocation): Comment fix. * emultempl/nios2elf.em (nios2elf_layout_sections_again): Use ldelf_map_segments. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, nios2_for_each_input_file_wrapper), (nios2_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. * emultempl/ppc32elf.em (gld${EMULATION_NAME}_load_symbols): Delete declaration. (ppc_recognized_file): Call ldelf_load_symbols. * emultempl/ppc64elf.em (ppc_layout_sections_again): Likewise. (gld${EMULATION_NAME}_after_allocation): Likewise. (real_func, ppc_for_each_input_file_wrapper), (ppc_lang_for_each_input_file): Delete. (lang_for_each_input_file): Don't define. (gld${EMULATION_NAME}_load_symbols): Don't declare. (ppc64_recognized_file): Call ldelf_load_symbols. * emultempl/riscvelf.em (gld${EMULATION_NAME}_after_allocation): Use ldelf_map_segments. * emultempl/spuelf.em (spu_place_special_section): Use ldelf_place_orphan. * emultempl/tic6xdsbt.em (gld${EMULATION_NAME}_after_allocation): Use ldelf_map_segments. * emultempl/vms.em: Include ldelfgen.h. (gld${EMULATION_NAME}_after_allocation): Use ldelf_map_segments. * emultempl/elf32.em: Remove unnecessary headers, include ldelf.h and ldelfgen.h. Move much of file content to.. * ldelf.c: ..here. New file. * ldelf.h: New file. * emultempl/elf-generic.em: Move gld${EMULATION_NAME}_map_segments.. * ldelfgen.c: ..to here. * ldelfgen.h: New file. * ldlang.c (lang_for_each_input_file): Adjust to only call func on real files. (lang_for_each_file): Likewise. * po/SRC-POTFILES.in: Regenerate. * Makefile.in: Regenerate.
Diffstat (limited to 'ld/configure.tgt')
-rw-r--r--ld/configure.tgt673
1 files changed, 466 insertions, 207 deletions
diff --git a/ld/configure.tgt b/ld/configure.tgt
index c81bc8a..608db30 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -36,7 +36,7 @@
targ_extra_emuls=
targ_extra_libpath=
-targ_extra_ofiles=
+targ_extra_ofiles="ldelf.o ldelfgen.o"
targ64_extra_emuls=
targ64_extra_libpath=
@@ -46,43 +46,63 @@ targ64_extra_libpath=
# break the alpha sorting.
case "${targ}" in
aarch64_be-*-elf) targ_emul=aarch64elfb
- targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
+ targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf"
+ ;;
aarch64-*-elf | aarch64-*-rtems*)
targ_emul=aarch64elf
- targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
+ targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb"
+ ;;
aarch64-*-cloudabi*) targ_emul=aarch64cloudabi
- targ_extra_emuls=aarch64cloudabib ;;
+ targ_extra_emuls=aarch64cloudabib
+ ;;
aarch64-*-freebsd*) targ_emul=aarch64fbsd
- targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
+ targ_extra_emuls="aarch64fbsdb aarch64elf"
+ ;;
aarch64-*-fuchsia*) targ_emul=aarch64elf
- targ_extra_emuls="aarch64elfb armelf armelfb" ;;
+ targ_extra_emuls="aarch64elfb armelf armelfb"
+ ;;
aarch64_be-*-linux-gnu_ilp32)
targ_emul=aarch64linux32b
targ_extra_libpath="aarch64linuxb aarch64linux aarch64linux32 armelfb_linux_eabi armelf_linux_eabi"
- targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
+ targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath"
+ ;;
aarch64-*-linux-gnu_ilp32)
targ_emul=aarch64linux32
targ_extra_libpath="aarch64linux aarch64linuxb aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
- targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath" ;;
+ targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath"
+ ;;
aarch64_be-*-linux*) targ_emul=aarch64linuxb
targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
- targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
+ targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath"
+ ;;
aarch64-*-linux*) targ_emul=aarch64linux
targ_extra_libpath="aarch64linuxb aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
- targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath" ;;
+ targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath"
+ ;;
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
targ_emul=elf64alpha_fbsd
targ_extra_emuls="elf64alpha alpha"
- tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'` ;;
-alpha*-*-linux*ecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
- tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` ;;
-alpha*-*-linux-*) targ_emul=elf64alpha targ_extra_emuls=alpha
- tdir_alpha=`echo ${targ_alias} | sed -e 's/linux\(-gnu\)*/linux\1ecoff/'` ;;
-alpha*-*-osf*) targ_emul=alpha ;;
-alpha*-*-gnu*) targ_emul=elf64alpha ;;
-alpha*-*-netbsd*) targ_emul=elf64alpha_nbsd ;;
-alpha*-*-openbsd*) targ_emul=elf64alpha ;;
+ tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'`
+ ;;
+alpha*-*-linux*ecoff*) targ_emul=alpha
+ targ_extra_emuls=elf64alpha
+ tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'`
+ ;;
+alpha*-*-linux-*) targ_emul=elf64alpha
+ targ_extra_emuls=alpha
+ tdir_alpha=`echo ${targ_alias} | sed -e 's/linux\(-gnu\)*/linux\1ecoff/'`
+ ;;
+alpha*-*-osf*) targ_emul=alpha
+ targ_extra_ofiles=
+ ;;
+alpha*-*-gnu*) targ_emul=elf64alpha
+ ;;
+alpha*-*-netbsd*) targ_emul=elf64alpha_nbsd
+ ;;
+alpha*-*-openbsd*) targ_emul=elf64alpha
+ ;;
alpha*-*-*vms*) targ_emul=alphavms
+ targ_extra_ofiles=
;;
arc*-*-elf*) targ_emul=arcelf
targ_extra_emuls="arcelf_prof arclinux arclinux_nps arclinux_prof arcv2elf arcv2elfx"
@@ -97,29 +117,45 @@ arc*-*-linux*) case "${with_cpu}" in
esac
targ_extra_emuls="${targ_extra_emuls} arclinux_prof arcelf arcelf_prof arcv2elf arcv2elfx"
;;
-arm*-*-cegcc*) targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o"
- LIB_PATH='${tooldir}/lib/w32api' ;;
+arm*-*-cegcc*) targ_emul=arm_wince_pe
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ LIB_PATH='${tooldir}/lib/w32api'
+ ;;
arm-wince-pe | arm-*-wince | arm*-*-mingw32ce*)
- targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
-arm-*-pe) targ_emul=armpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ targ_emul=arm_wince_pe
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
+arm-*-pe) targ_emul=armpe
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
arm*b-*-freebsd*) targ_emul=armelfb_fbsd
- targ_extra_emuls="armelf_fbsd armelf" ;;
+ targ_extra_emuls="armelf_fbsd armelf"
+ ;;
arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
targ_emul=armelf_fbsd
- targ_extra_emuls="armelfb_fbsd armelf" ;;
+ targ_extra_emuls="armelfb_fbsd armelf"
+ ;;
armeb-*-netbsdelf*) targ_emul=armelfb_nbsd;
- targ_extra_emuls="armelf_nbsd armelf" ;;
+ targ_extra_emuls="armelf_nbsd armelf"
+ ;;
arm-*-netbsdelf*) targ_emul=armelf_nbsd;
- targ_extra_emuls="armelfb_nbsd armelf" ;;
-arm-*-nto*) targ_emul=armnto ;;
-arm-*-phoenix*) targ_emul=armelf ;;
+ targ_extra_emuls="armelfb_nbsd armelf"
+ ;;
+arm-*-nto*) targ_emul=armnto
+ ;;
+arm-*-phoenix*) targ_emul=armelf
+ ;;
armeb-*-elf | armeb-*-eabi*)
- targ_emul=armelfb ;;
+ targ_emul=armelfb
+ ;;
arm-*-elf | arm*-*-eabi* | arm-*-rtems*)
- targ_emul=armelf ;;
+ targ_emul=armelf
+ ;;
arm*-*-symbianelf*) targ_emul=armsymbian;;
-arm-*-kaos*) targ_emul=armelf ;;
-arm9e-*-elf) targ_emul=armelf ;;
+arm-*-kaos*) targ_emul=armelf
+ ;;
+arm9e-*-elf) targ_emul=armelf
+ ;;
arm*b-*-linux-*eabi*) targ_emul=armelfb_linux_eabi
targ_extra_emuls=armelf_linux_eabi
targ_extra_libpath=$targ_extra_emuls
@@ -161,8 +197,10 @@ arm*-*-uclinux*) targ_emul=armelf_linux
targ_extra_emuls="armelf armelfb armelfb_linux"
targ_extra_libpath="armelfb_linux"
;;
-arm-*-vxworks) targ_emul=armelf_vxworks ;;
-arm*-*-conix*) targ_emul=armelf ;;
+arm-*-vxworks) targ_emul=armelf_vxworks
+ ;;
+arm*-*-conix*) targ_emul=armelf
+ ;;
arm*-*-fuchsia*) targ_emul=armelf_fuchsia
targ_extra_emuls="armelfb_fuchsia armelf armelfb"
;;
@@ -182,15 +220,19 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfinfd;
targ_extra_emuls="elf32bfin"
targ_extra_libpath=$targ_extra_emuls
;;
-bpf-*-*) targ_emul=elf64bpf ;;
-cr16-*-elf*) targ_emul=elf32cr16 ;;
+bpf-*-*) targ_emul=elf64bpf
+ ;;
+cr16-*-elf*) targ_emul=elf32cr16
+ ;;
cr16c-*-elf*) targ_emul=elf32cr16c
;;
cris-*-*aout*) targ_emul=crisaout
targ_extra_emuls="criself crislinux"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
cris-*-linux-* | crisv32-*-linux-*)
- targ_emul=crislinux ;;
+ targ_emul=crislinux
+ ;;
cris-*-* | crisv32-*-*) targ_emul=criself
targ_extra_emuls="crisaout crislinux"
targ_extra_libpath=$targ_extra_emuls
@@ -198,75 +240,123 @@ cris-*-* | crisv32-*-*) targ_emul=criself
crx-*-elf*) targ_emul=elf32crx
;;
-csky-*-elf*) targ_emul=cskyelf ;;
-csky-*-linux*) targ_emul=cskyelf_linux ;;
+csky-*-elf*) targ_emul=cskyelf
+ ;;
+csky-*-linux*) targ_emul=cskyelf_linux
+ ;;
-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"
+d10v-*-*) targ_emul=d10velf
+ ;;
+d30v-*-*ext*) targ_emul=d30v_e
+ targ_extra_emuls="d30velf d30v_o"
+ targ_extra_ofiles=ldelfgen.o
+ ;;
+d30v-*-*onchip*) targ_emul=d30v_o
+ targ_extra_emuls="d30velf d30v_e"
+ targ_extra_ofiles=ldelfgen.o
+ ;;
+d30v-*-*) targ_emul=d30velf
+ targ_extra_emuls="d30v_e d30v_o"
+ targ_extra_ofiles=ldelfgen.o
;;
dlx-*-elf*) targ_emul=elf32_dlx
+ targ_extra_ofiles=ldelfgen.o
;;
epiphany-*-*) targ_emul=elf32epiphany
targ_extra_emuls="elf32epiphany_4x4"
;;
-fido*-*-elf*) targ_emul=m68kelf ;;
+fido*-*-elf*) targ_emul=m68kelf
+ ;;
fr30-*-*) targ_emul=elf32fr30
+ targ_extra_ofiles=ldelfgen.o
+ ;;
+frv-*-*linux*) targ_emul=elf32frvfd
;;
-frv-*-*linux*) targ_emul=elf32frvfd ;;
-frv-*-*) targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd"
+frv-*-*) targ_emul=elf32frv
+ targ_extra_emuls="elf32frvfd"
;;
moxie-*-moxiebox*) targ_emul=moxiebox
+ targ_extra_ofiles=ldelfgen.o
;;
moxie-*-*) targ_emul=elf32moxie
+ targ_extra_ofiles=ldelfgen.o
;;
h8300-*-elf* | h8300-*-rtems*)
targ_emul=h8300elf;
- targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" ;;
+ targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf"
+ ;;
h8300-*-linux*)
targ_emul=h8300elf_linux;
- targ_extra_emuls="h8300helf_linux h8300self_linux h8300sxelf_linux" ;;
-hppa*64*-*-linux-*) targ_emul=hppa64linux ;;
-hppa*64*-hpux*) targ_emul=elf64hppa ;;
-hppa*-*-linux-*) targ_emul=hppalinux ;;
-hppa*-*-*elf*) targ_emul=hppaelf ;;
-hppa*-*-lites*) targ_emul=hppaelf ;;
-hppa*-*-netbsd*) targ_emul=hppanbsd ;;
+ targ_extra_emuls="h8300helf_linux h8300self_linux h8300sxelf_linux"
+ ;;
+hppa*64*-*-linux-*) targ_emul=hppa64linux
+ ;;
+hppa*64*-hpux*) targ_emul=elf64hppa
+ ;;
+hppa*-*-linux-*) targ_emul=hppalinux
+ ;;
+hppa*-*-*elf*) targ_emul=hppaelf
+ ;;
+hppa*-*-lites*) targ_emul=hppaelf
+ ;;
+hppa*-*-netbsd*) targ_emul=hppanbsd
+ ;;
hppa*-*-openbsd*) targ_emul=hppaobsd
;;
-i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;;
-i[3-7]86-*-go32) targ_emul=i386go32 ;;
-i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
-i[3-7]86-*-lynxos*) targ_emul=i386lynx ;;
+i[3-7]86-*-nto-qnx*) targ_emul=i386nto
+ ;;
+i[3-7]86-*-go32) targ_emul=i386go32
+ targ_extra_ofiles=
+ ;;
+i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32
+ targ_extra_ofiles=
+ ;;
+i[3-7]86-*-lynxos*) targ_emul=i386lynx
+ ;;
i[3-7]86-*-aros*) targ_emul=elf_i386
- targ_extra_emuls=elf_iamcu ;;
+ targ_extra_emuls=elf_iamcu
+ ;;
i[3-7]86-*-rdos*) targ_emul=elf_i386
- targ_extra_emuls=elf_iamcu ;;
-x86_64-*-rdos*) targ_emul=elf64rdos ;;
-x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi ;;
-i[3-7]86-*-bsd) targ_emul=i386bsd ;;
-i[3-7]86-*-bsd386) targ_emul=i386bsd ;;
-i[3-7]86-*-bsdi*) targ_emul=i386bsd ;;
+ targ_extra_emuls=elf_iamcu
+ ;;
+x86_64-*-rdos*) targ_emul=elf64rdos
+ ;;
+x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi
+ ;;
+i[3-7]86-*-bsd) targ_emul=i386bsd
+ targ_extra_ofiles=
+ ;;
+i[3-7]86-*-bsd386) targ_emul=i386bsd
+ targ_extra_ofiles=
+ ;;
+i[3-7]86-*-bsdi*) targ_emul=i386bsd
+ targ_extra_ofiles=
+ ;;
i[3-7]86-*-linux-*) targ_emul=elf_i386
targ_extra_emuls="elf_iamcu"
targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
- targ64_extra_libpath="elf_x86_64 elf32_x86_64" ;;
+ targ64_extra_libpath="elf_x86_64 elf32_x86_64"
+ ;;
x86_64-*-linux-gnux32) targ_emul=elf32_x86_64
targ_extra_emuls="elf_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om"
targ_extra_libpath="elf_i386 elf_iamcu elf_x86_64 elf_l1om elf_k1om"
tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
- tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;;
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
+ ;;
x86_64-*-linux-*) targ_emul=elf_x86_64
targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om"
targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
- tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+ ;;
i[3-7]86-*-redox*) targ_emul=elf_i386
- targ_extra_emuls=elf_x86_64 ;;
+ targ_extra_emuls=elf_x86_64
+ ;;
x86_64-*-redox*) targ_emul=elf_x86_64
- targ_extra_emuls=elf_i386 ;;
+ targ_extra_emuls=elf_i386
+ ;;
i[3-7]86-*-sysv[45]*) targ_emul=elf_i386
- targ_extra_emuls=elf_iamcu ;;
+ targ_extra_emuls=elf_iamcu
+ ;;
i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2
targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
targ_extra_libpath=$targ_extra_emuls
@@ -275,9 +365,11 @@ x86_64-*-solaris2*)
targ_emul=elf_x86_64_sol2
targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu elf_l1om elf_k1om"
targ_extra_libpath=$targ_extra_emuls
- tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+ ;;
i[3-7]86-*-unixware) targ_emul=elf_i386
- targ_extra_emuls=elf_iamcu ;;
+ targ_extra_emuls=elf_iamcu
+ ;;
i[3-7]86-*-solaris*) targ_emul=elf_i386_ldso
targ_extra_emuls="elf_i386"
targ_extra_libpath=$targ_extra_emuls
@@ -286,9 +378,11 @@ i[3-7]86-*-netbsdelf* | \
i[3-7]86-*-netbsd*-gnu* | \
i[3-7]86-*-knetbsd*-gnu)
targ_emul=elf_i386
- targ_extra_emuls="elf_iamcu" ;;
+ targ_extra_emuls="elf_iamcu"
+ ;;
i[3-7]86-*-netbsdpe*) targ_emul=i386pe
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
x86_64-*-netbsd*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om"
tdir_elf_iamcu=`echo ${targ_alias} | \
@@ -304,12 +398,15 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64
*-netbsdelf*) ;;
*) tdir_elf_i386=`echo ${tdir_elf_i386} | \
sed -e 's/netbsd/netbsdelf/'`;;
- esac ;;
+ esac
+ ;;
i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu
- targ_extra_emuls=elf_i386 ;;
+ targ_extra_emuls=elf_i386
+ ;;
i[3-7]86-*-elf* | i[3-7]86-*-rtems*)
targ_emul=elf_i386
- targ_extra_emuls=elf_iamcu ;;
+ targ_extra_emuls=elf_iamcu
+ ;;
x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
@@ -317,12 +414,15 @@ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
;;
i[3-7]86-*-dragonfly*) targ_emul=elf_i386
- targ_extra_emuls="elf_iamcu i386bsd" ;;
+ targ_extra_emuls="elf_iamcu i386bsd"
+ ;;
x86_64-*-dragonfly*) targ_emul=elf_x86_64
- targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om" ;;
+ targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om"
+ ;;
i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
targ_emul=elf_i386_fbsd
- targ_extra_emuls="elf_i386 elf_iamcu i386bsd" ;;
+ targ_extra_emuls="elf_i386 elf_iamcu i386bsd"
+ ;;
x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
targ_emul=elf_x86_64_fbsd
targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_iamcu elf_l1om elf_l1om_fbsd elf_k1om elf_k1om_fbsd"
@@ -332,35 +432,55 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
tdir_elf_iamcu=`echo ${targ_alias} \
| sed -e 's/x86_64/i386/'`
tdir_elf_i386=`echo ${targ_alias} \
- | sed -e 's/x86_64/i386/'` ;;
+ | sed -e 's/x86_64/i386/'`
+ ;;
i[3-7]86-*-gnu*) targ_emul=elf_i386
- targ_extra_emuls=elf_iamcu ;;
-i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
-i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
+ targ_extra_emuls=elf_iamcu
+ ;;
+i[3-7]86-*-msdos*) targ_emul=i386msdos
+ targ_extra_emuls=i386aout
+ targ_extra_ofiles=
+ ;;
+i[3-7]86-*-moss*) targ_emul=i386moss
+ targ_extra_emuls=i386msdos
+ targ_extra_ofiles=
+ ;;
i[3-7]86-*-winnt*) targ_emul=i386pe ;
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
i[3-7]86-*-pe) targ_emul=i386pe ;
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
i[3-7]86-*-cygwin*) targ_emul=i386pe ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;
- test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
+ test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api'
+ ;;
i[3-7]86-*-mingw32*) targ_emul=i386pe ;
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
targ_extra_emuls=i386pe ;
- targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
+ ;;
x86_64-*-cygwin) targ_emul=i386pep ;
targ_extra_emuls=i386pe
targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
- test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
+ test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api'
+ ;;
x86_64-*-mingw*) targ_emul=i386pep ;
targ_extra_emuls=i386pe
- targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
+ ;;
i[3-7]86-*-interix*) targ_emul=i386pe_posix;
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
-i[3-7]86-*-beospe*) targ_emul=i386beos ;;
-i[3-7]86-*-beos*) targ_emul=elf_i386_be ;;
-i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
+i[3-7]86-*-beospe*) targ_emul=i386beos
+ targ_extra_ofiles=
+ ;;
+i[3-7]86-*-beos*) targ_emul=elf_i386_be
+ ;;
+i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks
+ ;;
i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
;;
i[3-7]86-*-nacl*) targ_emul=elf_i386_nacl
@@ -374,46 +494,69 @@ x86_64-*-nacl*) targ_emul=elf32_x86_64_nacl
targ_extra_libpath=$targ_extra_emuls
tdir_elf_i386_nacl=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
;;
-ia16-*-elf*) targ_emul=elf_i386 targ_extra_emuls=i386msdos ;;
-ia64-*-elf*) targ_emul=elf64_ia64 ;;
+ia16-*-elf*) targ_emul=elf_i386
+ targ_extra_emuls=i386msdos
+ ;;
+ia64-*-elf*) targ_emul=elf64_ia64
+ ;;
ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
targ_emul=elf64_ia64_fbsd
- targ_extra_emuls="elf64_ia64" ;;
-ia64-*-netbsd*) targ_emul=elf64_ia64 ;;
-ia64-*-linux*) targ_emul=elf64_ia64 ;;
-ia64-*-*vms*) targ_emul=elf64_ia64_vms ;;
+ targ_extra_emuls="elf64_ia64"
+ ;;
+ia64-*-netbsd*) targ_emul=elf64_ia64
+ ;;
+ia64-*-linux*) targ_emul=elf64_ia64
+ ;;
+ia64-*-*vms*) targ_emul=elf64_ia64_vms
+ targ_extra_ofiles=ldelfgen.o
+ ;;
ia64-*-aix*) targ_emul=elf64_aix
;;
ip2k-*-elf) targ_emul=elf32ip2k
;;
-iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
+iq2000-*-elf) targ_emul=elf32iq2000
+ targ_extra_emuls="elf32iq10"
+ targ_extra_ofiles=ldelfgen.o
;;
-lm32-*-*linux*) targ_emul=elf32lm32fd ;;
-lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
+lm32-*-*linux*) targ_emul=elf32lm32fd
+ ;;
+lm32-*-*) targ_emul=elf32lm32
+ targ_extra_emuls="elf32lm32fd"
;;
m32c-*-elf | m32c-*-rtems*)
targ_emul=elf32m32c
;;
-m32r*le-*-elf*) targ_emul=m32rlelf ;;
+m32r*le-*-elf*) targ_emul=m32rlelf
+ ;;
m32r*-*-elf* | m32r*-*-rtems*)
- targ_emul=m32relf ;;
-m32r*le-*-linux-*) targ_emul=m32rlelf_linux ;;
+ targ_emul=m32relf
+ ;;
+m32r*le-*-linux-*) targ_emul=m32rlelf_linux
+ ;;
m32r*-*-linux-*) targ_emul=m32relf_linux
;;
m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
- targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
+ targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb"
+ ;;
m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf
- targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
-m68*-*-netbsdelf*) targ_emul=m68kelfnbsd ;;
-m68*-*-*) targ_emul=m68kelf ;;
+ targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb"
+ ;;
+m68*-*-netbsdelf*) targ_emul=m68kelfnbsd
+ ;;
+m68*-*-*) targ_emul=m68kelf
+ ;;
s12z-*-*) targ_emul=m9s12zelf
+ targ_extra_ofiles=ldelfgen.o
;;
mcore-*-pe) targ_emul=mcorepe ;
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
mcore-*-elf) targ_emul=elf32mcore
;;
-mep-*-elf) targ_emul=elf32mep ;;
-metag-*-*) targ_emul=elf32metag ;;
+mep-*-elf) targ_emul=elf32mep
+ ;;
+metag-*-*) targ_emul=elf32metag
+ ;;
microblazeel*-linux*) targ_emul="elf32mbel_linux"
targ_extra_emuls="elf32mb_linux"
;;
@@ -426,10 +569,12 @@ microblazeel*) targ_emul=elf32microblazeel
microblaze*) targ_emul=elf32microblaze
targ_extra_emuls=elf32microblazeel
;;
-mips*-sgi-irix5*) targ_emul=elf32bsmip ;;
+mips*-sgi-irix5*) targ_emul=elf32bsmip
+ ;;
mips*-sgi-irix6*) targ_emul=elf32bmipn32
targ_extra_emuls="elf32bsmip elf64bmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*el-*-netbsd*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
;;
@@ -442,73 +587,101 @@ mips64el-*-openbsd*) targ_emul=elf64ltsmip
mips64-*-openbsd*) targ_emul=elf64btsmip
targ_extra_emuls=elf64ltsmip
;;
-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*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-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*)
targ_emul=elf32ltsmip
- targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;;
+ targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
+ ;;
mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
targ_emul=elf32btsmip
- targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
+ targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
+ ;;
mips64*el-ps2-elf*) targ_emul=elf32lr5900n32
targ_extra_emuls="elf32lr5900"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*el-ps2-elf*) targ_emul=elf32lr5900
targ_extra_emuls="elf32lr5900n32"
- targ_extra_libpath=$targ_extra_emuls ;;
-mips*el-*-elf*) targ_emul=elf32elmip ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
+mips*el-*-elf*) targ_emul=elf32elmip
+ ;;
mips*-*-elf* | mips*-*-rtems*)
- targ_emul=elf32ebmip ;;
+ targ_emul=elf32ebmip
+ ;;
mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
- targ_extra_emuls="elf32ebmipvxworks" ;;
+ targ_extra_emuls="elf32ebmipvxworks"
+ ;;
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
- targ_extra_emuls="elf32elmipvxworks" ;;
-mips*-*-windiss) targ_emul=elf32mipswindiss ;;
+ targ_extra_emuls="elf32elmipvxworks"
+ ;;
+mips*-*-windiss) targ_emul=elf32mipswindiss
+ ;;
mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips64*-*-linux-*) targ_emul=elf32btsmipn32
targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*-*-linux-*) targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
targ_emul=elf32ltsmipn32_fbsd
targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
targ_emul=elf32btsmipn32_fbsd
targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
targ_emul=elf32ltsmip_fbsd
targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
targ_emul=elf32btsmip_fbsd
targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*-*-sysv4*) targ_emul=elf32btsmip
;;
mmix-*-*) targ_emul=mmo
targ_extra_emuls=elf64mmix
;;
-am33_2.0-*-linux*) targ_emul=elf32am33lin ;;
-mn10200-*-*) targ_emul=mn10200 ;;
+am33_2.0-*-linux*) targ_emul=elf32am33lin
+ ;;
+mn10200-*-*) targ_emul=mn10200
+ targ_extra_ofiles=ldelfgen.o
+ ;;
mn10300-*-*) targ_emul=mn10300
;;
mt-*elf) targ_emul=elf32mt
+ targ_extra_ofiles=ldelfgen.o
;;
msp430-*-*) targ_emul=msp430elf
targ_extra_emuls="msp430X"
+ targ_extra_ofiles=ldelfgen.o
;;
nds32*le-*-elf*) targ_emul=nds32elf
targ_extra_emuls="nds32elf16m nds32belf nds32belf16m"
@@ -516,27 +689,40 @@ nds32*le-*-elf*) targ_emul=nds32elf
nds32*be-*-elf*) targ_emul=nds32belf
targ_extra_emuls="nds32elf nds32elf16m nds32belf16m"
;;
-nds32*le-*-linux-gnu*) targ_emul=nds32elf_linux ;;
-nds32*be-*-linux-gnu*) targ_emul=nds32belf_linux ;;
-nios2*-*-linux*) targ_emul=nios2linux ;;
-nios2*-*-*) targ_emul=nios2elf ;;
-ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
+nds32*le-*-linux-gnu*) targ_emul=nds32elf_linux
+ ;;
+nds32*be-*-linux-gnu*) targ_emul=nds32belf_linux
+ ;;
+nios2*-*-linux*) targ_emul=nios2linux
+ ;;
+nios2*-*-*) targ_emul=nios2elf
+ ;;
+ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha
+ targ_extra_ofiles=
+ ;;
ns32k-*-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd
+ targ_extra_ofiles=
;;
or1k-*-elf | or1knd-*-elf | or1k-*-rtems* | or1knd-*-rtems*)
- targ_emul=elf32or1k ;;
-or1k-*-linux* | or1knd-*-linux*) targ_emul=elf32or1k_linux ;;
+ targ_emul=elf32or1k
+ ;;
+or1k-*-linux* | or1knd-*-linux*) targ_emul=elf32or1k_linux
+ ;;
pdp11-*-*) targ_emul=pdp11
+ targ_extra_ofiles=
;;
pjl*-*-*) targ_emul=pjlelf
- targ_extra_emuls="elf_i386 elf_iamcu" ;;
+ targ_extra_emuls="elf_i386 elf_iamcu"
+ ;;
pj*-*-*) targ_emul=pjelf
+ targ_extra_ofiles=ldelfgen.o
;;
powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
targ_emul=elf32ppc_fbsd
targ_extra_emuls="elf32ppc elf32ppcsim"
targ_extra_libpath=elf32ppc;
- tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;;
+ tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
+ ;;
powerpc64-*-freebsd*)
targ_emul=elf64ppc_fbsd
targ_extra_emuls="elf64ppc elf32ppc_fbsd elf32ppc"
@@ -546,7 +732,8 @@ powerpc64-*-freebsd*)
;;
powerpc-*-vxworks*)
targ_emul=elf32ppcvxworks
- targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
+ targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
+ ;;
powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
| powerpc*-*-linux* | powerpc*-*-netbsd* | powerpc*-*-openbsd* \
| powerpc*-*-rtems* \
@@ -621,111 +808,171 @@ powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
eval test -n \"\$${td}sim\" || eval ${td}sim="${ta32}"
eval test -n \"\$${td64}\" || eval ${td64}="${ta64}"
;;
-powerpc-*-nto*) targ_emul=elf32ppcnto ;;
-powerpcle-*-nto*) targ_emul=elf32lppcnto ;;
-powerpc-*-macos*) targ_emul=ppcmacos ;;
+powerpc-*-nto*) targ_emul=elf32ppcnto
+ ;;
+powerpcle-*-nto*) targ_emul=elf32lppcnto
+ ;;
+powerpc-*-macos*) targ_emul=ppcmacos
+ targ_extra_ofiles=
+ ;;
powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
targ_emul=ppcpe
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
-powerpc-*-aix[5-9]*) targ_emul=aix5ppc ;;
-powerpc-*-aix*) targ_emul=aixppc ;;
-powerpc-*-beos*) targ_emul=aixppc ;;
-powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
-powerpc-*-lynxos*) targ_emul=ppclynx ;;
-pru*-*-*) targ_emul=pruelf ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
+powerpc-*-aix[5-9]*) targ_emul=aix5ppc
+ targ_extra_ofiles=
+ ;;
+powerpc-*-aix*) targ_emul=aixppc
+ targ_extra_ofiles=
+ ;;
+powerpc-*-beos*) targ_emul=aixppc
+ targ_extra_ofiles=
+ ;;
+powerpc-*-windiss*) targ_emul=elf32ppcwindiss
+ ;;
+powerpc-*-lynxos*) targ_emul=ppclynx
+ ;;
+pru*-*-*) targ_emul=pruelf
+ ;;
riscv32*-*-linux*) targ_emul=elf32lriscv
targ_extra_emuls="elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
riscv-*-* | riscv32*-*-*)
targ_emul=elf32lriscv
targ_extra_emuls="elf64lriscv"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
riscv64*-*-linux*) targ_emul=elf64lriscv
targ_extra_emuls="elf64lriscv_lp64f elf64lriscv_lp64 elf32lriscv elf32lriscv_ilp32f elf32lriscv_ilp32"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
riscv64*-*-*) targ_emul=elf64lriscv
targ_extra_emuls="elf32lriscv"
- targ_extra_libpath=$targ_extra_emuls ;;
-rs6000-*-aix[5-9]*) targ_emul=aix5rs6 ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
+rs6000-*-aix[5-9]*) targ_emul=aix5rs6
+ targ_extra_ofiles=
+ ;;
rs6000-*-aix*) targ_emul=aixrs6
+ targ_extra_ofiles=
+ ;;
+rl78-*-*) targ_emul=elf32rl78
+ ;;
+rx-*-*) targ_emul=elf32rx
;;
-rl78-*-*) targ_emul=elf32rl78 ;;
-rx-*-*) targ_emul=elf32rx ;;
s390x-*-linux*) targ_emul=elf64_s390
targ_extra_emuls=elf_s390
targ_extra_libpath=$targ_extra_emuls
- tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
+ tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'`
+ ;;
s390x-*-tpf*) targ_emul=elf64_s390
- tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
+ tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'`
+ ;;
s390-*-linux*) targ_emul=elf_s390
targ64_extra_emuls=elf64_s390
targ64_extra_libpath=elf64_s390
tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
;;
score-*-elf) targ_emul=score7_elf
- targ_extra_emuls=score3_elf ;;
+ targ_extra_emuls=score3_elf
+ ;;
sh-*-linux*) targ_emul=shlelf_linux
targ_extra_emuls="shelf_linux shlelf_fd shelf_fd"
- targ_extra_libpath=shelf_linux ;;
+ targ_extra_libpath=shelf_linux
+ ;;
sh*eb-*-linux*) targ_emul=shelf_linux
- targ_extra_emuls="shelf_fd" ;;
+ targ_extra_emuls="shelf_fd"
+ ;;
sh*-*-linux*) targ_emul=shlelf_linux
- targ_extra_emuls="shlelf_fd" ;;
+ targ_extra_emuls="shlelf_fd"
+ ;;
sh*l*-*-netbsdelf*) targ_emul=shlelf_nbsd
- targ_extra_emuls=shelf_nbsd ;;
+ targ_extra_emuls=shelf_nbsd
+ ;;
sh*-*-netbsdelf*) targ_emul=shelf_nbsd
- targ_extra_emuls=shlelf_nbsd ;;
+ targ_extra_emuls=shlelf_nbsd
+ ;;
shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
targ_emul=shlelf
- targ_extra_emuls="shelf shl sh" ;;
+ targ_extra_emuls="shelf shl sh"
+ ;;
sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos*)
targ_emul=shelf
- targ_extra_emuls="shlelf sh shl" ;;
+ targ_extra_emuls="shlelf sh shl"
+ ;;
sh-*-uclinux* | sh[12]-*-uclinux*)
targ_emul=shelf_uclinux
- targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd" ;;
+ targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd"
+ ;;
sh-*-vxworks) targ_emul=shelf_vxworks
- targ_extra_emuls=shlelf_vxworks ;;
+ targ_extra_emuls=shlelf_vxworks
+ ;;
sh-*-nto*) targ_emul=shelf_nto
- targ_extra_emuls=shlelf_nto ;;
+ targ_extra_emuls=shlelf_nto
+ ;;
sh-*-pe) targ_emul=shpe ;
- targ_extra_ofiles="deffilep.o pe-dll.o" ;;
-sh-*-*) targ_emul=sh; targ_extra_emuls=shl ;;
+ targ_extra_ofiles="deffilep.o pe-dll.o"
+ ;;
+sh-*-*) targ_emul=sh;
+ targ_extra_emuls=shl
+ targ_extra_ofiles=
+ ;;
sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
targ_emul=elf64_sparc_fbsd
targ_extra_emuls="elf64_sparc elf32_sparc"
targ_extra_libpath=$targ_extra_emuls
- tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
+ tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
+ ;;
sparc64-*-linux-*) targ_emul=elf64_sparc
targ_extra_emuls="elf32_sparc"
targ_extra_libpath=elf32_sparc
- tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
+ tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
+ ;;
sparc64-*-*bsd*) targ_emul=elf64_sparc
- targ_extra_emuls="elf32_sparc" ;;
+ targ_extra_emuls="elf32_sparc"
+ ;;
sparc64-*-solaris2* | sparcv9-*-solaris2*)
targ_emul=elf64_sparc_sol2
targ_extra_emuls="elf64_sparc elf32_sparc_sol2 elf32_sparc"
targ_extra_libpath=$targ_extra_emuls
- tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
-sparc64-*-*) targ_emul=elf64_sparc ;;
+ tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
+ ;;
+sparc64-*-*) targ_emul=elf64_sparc
+ ;;
sparc*-*-linux-*) targ_emul=elf32_sparc
targ_extra_emuls="elf64_sparc"
targ_extra_libpath=elf64_sparc
- tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` ;;
+ tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
+ ;;
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
targ_emul=elf32_sparc_sol2
- targ_extra_emuls=elf32_sparc ;;
+ targ_extra_emuls=elf32_sparc
+ ;;
sparc-*-solaris2*) targ_emul=elf32_sparc_sol2
targ_extra_emuls="elf32_sparc elf64_sparc_sol2 elf64_sparc"
targ_extra_libpath=$targ_extra_emuls
- tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` ;;
-sparc*-*-vxworks*) targ_emul=elf32_sparc_vxworks ;;
-sparc*-*-*) targ_emul=elf32_sparc ;;
-spu-*-elf*) targ_emul=elf32_spu ;;
-tic30-*-*aout*) targ_emul=tic30aout ;;
-tic30-*-*coff*) targ_emul=tic30coff ;;
-tic4x-*-* | c4x-*-*) targ_emul=tic4xcoff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;;
-tic54x-*-* | c54x*-*-*) targ_emul=tic54xcoff ;;
+ tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
+ ;;
+sparc*-*-vxworks*) targ_emul=elf32_sparc_vxworks
+ ;;
+sparc*-*-*) targ_emul=elf32_sparc
+ ;;
+spu-*-elf*) targ_emul=elf32_spu
+ ;;
+tic30-*-*aout*) targ_emul=tic30aout
+ targ_extra_ofiles=
+ ;;
+tic30-*-*coff*) targ_emul=tic30coff
+ targ_extra_ofiles=
+ ;;
+tic4x-*-* | c4x-*-*) targ_emul=tic4xcoff
+ targ_extra_emuls="tic3xcoff tic3xcoff_onchip"
+ targ_extra_ofiles=
+ ;;
+tic54x-*-* | c54x*-*-*) targ_emul=tic54xcoff
+ targ_extra_ofiles=
+ ;;
tic6x-*-elf) targ_emul=elf32_tic6x_elf_le
targ_extra_emuls="elf32_tic6x_elf_be elf32_tic6x_le elf32_tic6x_be"
targ_extra_libpath=$targ_extra_emuls
@@ -735,24 +982,31 @@ tic6x-*-uclinux) targ_emul=elf32_tic6x_linux_le
targ_extra_libpath=$targ_extra_emuls
;;
tic80-*-*) targ_emul=tic80coff
+ targ_extra_ofiles=
;;
tilegx-*-*) targ_emul=elf64tilegx
targ_extra_emuls="elf64tilegx_be elf32tilegx elf32tilegx_be"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
tilegxbe-*-*) targ_emul=elf64tilegx_be
targ_extra_emuls="elf64tilegx elf32tilegx elf32tilegx_be"
- targ_extra_libpath=$targ_extra_emuls ;;
-tilepro-*-*) targ_emul=elf32tilepro ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
+tilepro-*-*) targ_emul=elf32tilepro
+ ;;
ft32-*-*) targ_emul=elf32ft32
+ targ_extra_ofiles=ldelfgen.o
;;
v850*-*-*) targ_emul=v850_rh850
targ_extra_emuls=v850
;;
vax-*-netbsdelf*) targ_emul=elf32vax
- targ_extra_emuls=vaxnbsd ;;
+ targ_extra_emuls=vaxnbsd
+ ;;
vax-*-netbsdaout* | vax-*-netbsd*)
targ_emul=vaxnbsd
- targ_extra_emuls=elf32vax ;;
+ targ_extra_emuls=elf32vax
+ ;;
vax-*-linux-*) targ_emul=elf32vax
;;
visium-*-elf) targ_emul=elf32visium
@@ -765,12 +1019,17 @@ xstormy16-*-*) targ_emul=elf32xstormy16
xtensa*-*-*) targ_emul=elf32xtensa
;;
xgate-*-*) targ_emul=xgateelf
+ targ_extra_ofiles=ldelfgen.o
;;
z80-*-coff) targ_emul=z80
+ targ_extra_ofiles=
;;
-z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001
+z8k-*-coff) targ_emul=z8002
+ targ_extra_emuls=z8001
+ targ_extra_ofiles=
;;
*-*-ieee*) targ_emul=vanilla
+ targ_extra_ofiles=
;;
*)
echo 2>&1 "*** ld does not support target ${targ}"