aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog4
-rw-r--r--ld/configure.tgt195
2 files changed, 100 insertions, 99 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index f97cba2..ad52197 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,9 @@
2019-11-07 Alan Modra <amodra@gmail.com>
+ * configure.tgt: Order targets by cpu.
+
+2019-11-07 Alan Modra <amodra@gmail.com>
+
* testsuite/ld-aarch64/aarch64-elf.exp: Run tests requiring pie
or shared library support only when check_shared_lib_support.
* testsuite/ld-aarch64/bti-pac-plt-1.d: Likewise.
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 608db30..aaeda30 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -40,10 +40,8 @@ targ_extra_ofiles="ldelf.o ldelfgen.o"
targ64_extra_emuls=
targ64_extra_libpath=
-# Please try to keep this table in alphabetic order - it makes it
-# much easier to lookup a specific archictecture. Naturally any
-# architecture variants should be kept together even if their names
-# break the alpha sorting.
+# Please try to keep this table more or less in alphabetic order - it
+# makes it much easier to lookup a specific archictecture.
case "${targ}" in
aarch64_be-*-elf) targ_emul=aarch64elfb
targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf"
@@ -104,6 +102,8 @@ alpha*-*-openbsd*) targ_emul=elf64alpha
alpha*-*-*vms*) targ_emul=alphavms
targ_extra_ofiles=
;;
+am33_2.0-*-linux*) targ_emul=elf32am33lin # mn10300 variant
+ ;;
arc*-*-elf*) targ_emul=arcelf
targ_extra_emuls="arcelf_prof arclinux arclinux_nps arclinux_prof arcv2elf arcv2elfx"
;;
@@ -275,10 +275,7 @@ frv-*-*linux*) targ_emul=elf32frvfd
frv-*-*) targ_emul=elf32frv
targ_extra_emuls="elf32frvfd"
;;
-moxie-*-moxiebox*) targ_emul=moxiebox
- targ_extra_ofiles=ldelfgen.o
- ;;
-moxie-*-*) targ_emul=elf32moxie
+ft32-*-*) targ_emul=elf32ft32
targ_extra_ofiles=ldelfgen.o
;;
h8300-*-elf* | h8300-*-rtems*)
@@ -319,10 +316,6 @@ i[3-7]86-*-aros*) targ_emul=elf_i386
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
targ_extra_ofiles=
;;
@@ -337,23 +330,9 @@ i[3-7]86-*-linux-*) targ_emul=elf_i386
targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
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/'`
- ;;
-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/'`
- ;;
i[3-7]86-*-redox*) targ_emul=elf_i386
targ_extra_emuls=elf_x86_64
;;
-x86_64-*-redox*) targ_emul=elf_x86_64
- targ_extra_emuls=elf_i386
- ;;
i[3-7]86-*-sysv[45]*) targ_emul=elf_i386
targ_extra_emuls=elf_iamcu
;;
@@ -361,12 +340,6 @@ 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
;;
-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/'`
- ;;
i[3-7]86-*-unixware) targ_emul=elf_i386
targ_extra_emuls=elf_iamcu
;;
@@ -383,23 +356,6 @@ i[3-7]86-*-knetbsd*-gnu)
i[3-7]86-*-netbsdpe*) targ_emul=i386pe
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} | \
- sed -e 's/x86_64/i386/'`
- case "${tdir_elf_iamcu}" in
- *-netbsdelf*) ;;
- *) tdir_elf_iamcu=`echo ${tdir_elf_iamcu} | \
- sed -e 's/netbsd/netbsdelf/'`;;
- esac
- tdir_elf_i386=`echo ${targ_alias} | \
- sed -e 's/x86_64/i386/'`
- case "${tdir_elf_i386}" in
- *-netbsdelf*) ;;
- *) tdir_elf_i386=`echo ${tdir_elf_i386} | \
- sed -e 's/netbsd/netbsdelf/'`;;
- esac
- ;;
i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu
targ_extra_emuls=elf_i386
;;
@@ -407,33 +363,13 @@ i[3-7]86-*-elf* | i[3-7]86-*-rtems*)
targ_emul=elf_i386
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"
- targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
- 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"
;;
-x86_64-*-dragonfly*) targ_emul=elf_x86_64
- 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"
;;
-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"
- targ_extra_libpath="elf_i386_fbsd"
- tdir_elf_i386_fbsd=`echo ${targ_alias} \
- | sed -e 's/x86_64/i386/'`
- tdir_elf_iamcu=`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-*-gnu*) targ_emul=elf_i386
targ_extra_emuls=elf_iamcu
;;
@@ -458,19 +394,6 @@ i[3-7]86-*-cygwin*) targ_emul=i386pe ;
i[3-7]86-*-mingw32*) targ_emul=i386pe ;
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"
- ;;
-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'
- ;;
-x86_64-*-mingw*) targ_emul=i386pep ;
- targ_extra_emuls=i386pe
- 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"
;;
@@ -489,11 +412,6 @@ i[3-7]86-*-nacl*) targ_emul=elf_i386_nacl
targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
targ64_extra_libpath=$targ64_extra_emuls
;;
-x86_64-*-nacl*) targ_emul=elf32_x86_64_nacl
- targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl armelf_nacl armelfb_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
;;
@@ -545,9 +463,6 @@ 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"
;;
@@ -669,20 +584,24 @@ mips*-*-sysv4*) targ_emul=elf32btsmip
mmix-*-*) targ_emul=mmo
targ_extra_emuls=elf64mmix
;;
-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
+moxie-*-moxiebox*) targ_emul=moxiebox
+ targ_extra_ofiles=ldelfgen.o
+ ;;
+moxie-*-*) targ_emul=elf32moxie
targ_extra_ofiles=ldelfgen.o
;;
msp430-*-*) targ_emul=msp430elf
targ_extra_emuls="msp430X"
targ_extra_ofiles=ldelfgen.o
;;
+mt-*elf) targ_emul=elf32mt
+ targ_extra_ofiles=ldelfgen.o
+ ;;
nds32*le-*-elf*) targ_emul=nds32elf
targ_extra_emuls="nds32elf16m nds32belf nds32belf16m"
;;
@@ -861,6 +780,9 @@ rl78-*-*) targ_emul=elf32rl78
;;
rx-*-*) targ_emul=elf32rx
;;
+s12z-*-*) targ_emul=m9s12zelf
+ targ_extra_ofiles=ldelfgen.o
+ ;;
s390x-*-linux*) targ_emul=elf64_s390
targ_extra_emuls=elf_s390
targ_extra_libpath=$targ_extra_emuls
@@ -994,9 +916,6 @@ tilegxbe-*-*) targ_emul=elf64tilegx_be
;;
tilepro-*-*) targ_emul=elf32tilepro
;;
-ft32-*-*) targ_emul=elf32ft32
- targ_extra_ofiles=ldelfgen.o
- ;;
v850*-*-*) targ_emul=v850_rh850
targ_extra_emuls=v850
;;
@@ -1011,16 +930,94 @@ vax-*-linux-*) targ_emul=elf32vax
;;
visium-*-elf) targ_emul=elf32visium
;;
+x86_64-*-rdos*) targ_emul=elf64rdos
+ ;;
+x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi
+ ;;
+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/'`
+ ;;
+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/'`
+ ;;
+x86_64-*-redox*) targ_emul=elf_x86_64
+ targ_extra_emuls=elf_i386
+ ;;
+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/'`
+ ;;
+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} | \
+ sed -e 's/x86_64/i386/'`
+ case "${tdir_elf_iamcu}" in
+ *-netbsdelf*) ;;
+ *) tdir_elf_iamcu=`echo ${tdir_elf_iamcu} | \
+ sed -e 's/netbsd/netbsdelf/'`;;
+ esac
+ tdir_elf_i386=`echo ${targ_alias} | \
+ sed -e 's/x86_64/i386/'`
+ case "${tdir_elf_i386}" in
+ *-netbsdelf*) ;;
+ *) tdir_elf_i386=`echo ${tdir_elf_i386} | \
+ sed -e 's/netbsd/netbsdelf/'`;;
+ esac
+ ;;
+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"
+ targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+ ;;
+x86_64-*-dragonfly*) targ_emul=elf_x86_64
+ targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om"
+ ;;
+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"
+ targ_extra_libpath="elf_i386_fbsd"
+ tdir_elf_i386_fbsd=`echo ${targ_alias} \
+ | sed -e 's/x86_64/i386/'`
+ tdir_elf_iamcu=`echo ${targ_alias} \
+ | sed -e 's/x86_64/i386/'`
+ tdir_elf_i386=`echo ${targ_alias} \
+ | sed -e 's/x86_64/i386/'`
+ ;;
+x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
+ targ_extra_emuls=i386pe ;
+ 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'
+ ;;
+x86_64-*-mingw*) targ_emul=i386pep ;
+ targ_extra_emuls=i386pe
+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
+ ;;
+x86_64-*-nacl*) targ_emul=elf32_x86_64_nacl
+ targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl armelf_nacl armelfb_nacl"
+ targ_extra_libpath=$targ_extra_emuls
+ tdir_elf_i386_nacl=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+ ;;
xc16x-*-elf) targ_emul=elf32xc16x
targ_extra_emuls="elf32xc16xl elf32xc16xs"
;;
+xgate-*-*) targ_emul=xgateelf
+ targ_extra_ofiles=ldelfgen.o
+ ;;
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=
;;