diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/configure.tgt | 195 |
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= ;; |