X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=ld%2Fconfigure.tgt;h=2bae9099b6aae1f23afa5be74e84aeb7626d1058;hb=7e19db932c4e7b2a3878b7d24610eeb1b39b34e5;hp=d46ed620c179131246bc8365e7d445dc98cdd819;hpb=41ee6d14fd3faf486036cdb9042e432664abfe48;p=binutils-gdb.git diff --git a/ld/configure.tgt b/ld/configure.tgt index d46ed620c17..2bae9099b6a 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -1,6 +1,6 @@ # configure.tgt # -# Copyright (C) 2013-2021 Free Software Foundation, Inc. +# Copyright (C) 2013-2022 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -40,6 +40,43 @@ targ_extra_ofiles="ldelf.o ldelfgen.o" targ64_extra_emuls= targ64_extra_libpath= +# By default the linker will generate warnings if it is creating an +# executable stack or a segment with all three of read, write and +# execute permissions. These settings are not appropriate for all +# targets however, so we can change them here: + +if test "${ac_default_ld_warn_rwx_segments}" = unset; then + case "${targ}" in + # The CRIS default linker script yields just one segment + # as intended, so a rwx segment warning is not helpful. + # The HPPA's and SPARC's PLT sections use a constructed trampoline + # hence it needs to have a RWX segment. + # Many MIPS targets use executable segments. + cris-*-* | crisv32-*-* | \ + hppa*-*-* | \ + mips*-*-* | \ + sparc*-*-*) + ac_default_ld_warn_rwx_segments=0 + ;; + *) + ;; + esac +fi + +if test "${ac_default_ld_warn_execstack}" = 2; then + case "${targ}" in + # The HPPA port needs to support older kernels that + # use executable stacks for signals and syscalls. + # Many MIPS targets use executable stacks. + hppa*-*-* | \ + mips*-*-*) + ac_default_ld_warn_execstack=0 + ;; + *) + ;; + esac +fi + # 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 @@ -77,6 +114,9 @@ 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" ;; +aarch64-*-haiku*) targ_emul=aarch64haiku + targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb armelf_haiku $targ_extra_libpath" + ;; alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) targ_emul=elf64alpha_fbsd targ_extra_emuls="elf64alpha alpha" @@ -199,6 +239,9 @@ arm*-*-conix*) targ_emul=armelf arm*-*-fuchsia*) targ_emul=armelf_fuchsia targ_extra_emuls="armelfb_fuchsia armelf armelfb" ;; +arm*-*-haiku*) targ_emul=armelf_haiku + targ_extra_emuls=armelf + ;; avr-*-*) targ_emul=avr2 targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny" ;; @@ -320,7 +363,7 @@ i[3-7]86-*-bsdi*) targ_emul=i386bsd ;; 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_emuls="elf_x86_64 elf32_x86_64" targ64_extra_libpath="elf_x86_64 elf32_x86_64" ;; i[3-7]86-*-redox*) targ_emul=elf_i386 @@ -330,7 +373,7 @@ i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 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_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64" targ_extra_libpath=$targ_extra_emuls ;; i[3-7]86-*-unixware) targ_emul=elf_i386 @@ -395,6 +438,8 @@ i[3-7]86-*-beospe*) targ_emul=i386beos ;; i[3-7]86-*-beos*) targ_emul=elf_i386_be ;; +i[3-7]86-*-haiku*) targ_emul=elf_i386_haiku + ;; i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;; i[3-7]86-*-chaos) targ_emul=elf_i386_chaos @@ -428,12 +473,12 @@ lm32-*-*linux*) targ_emul=elf32lm32fd lm32-*-*) targ_emul=elf32lm32 targ_extra_emuls="elf32lm32fd" ;; -m32c-*-elf | m32c-*-rtems*) +m32c-*-elf) targ_emul=elf32m32c ;; m32r*le-*-elf*) targ_emul=m32rlelf ;; -m32r*-*-elf* | m32r*-*-rtems*) +m32r*-*-elf*) targ_emul=m32relf ;; m32r*le-*-linux-*) targ_emul=m32rlelf_linux @@ -448,6 +493,8 @@ m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf ;; m68*-*-netbsd*) targ_emul=m68kelfnbsd ;; +m68*-*-haiku*) targ_emul=m68kelf + ;; m68*-*-*) targ_emul=m68kelf ;; mcore-*-pe) targ_emul=mcorepe ; @@ -477,6 +524,9 @@ mips*-sgi-irix6*) targ_emul=elf32bmipn32 targ_extra_emuls="elf32bsmip elf64bmip" targ_extra_libpath=$targ_extra_emuls ;; +mips*el-*-haiku*) targ_emul=elf_mipsel_haiku + targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" + ;; mips*el-*-netbsd*) targ_emul=elf32ltsmip targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip" ;; @@ -733,6 +783,8 @@ powerpc-*-aix*) targ_emul=aixppc powerpc-*-beos*) targ_emul=aixppc targ_extra_ofiles= ;; +powerpc-*-haiku*) targ_emul=elf32ppchaiku + ;; powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;; pru*-*-*) targ_emul=pruelf @@ -869,6 +921,8 @@ sparc64-*-solaris2* | sparcv9-*-solaris2*) targ_extra_libpath=$targ_extra_emuls tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;; +sparc64-*-haiku*) targ_emul=elf64_sparc + ;; sparc64-*-*) targ_emul=elf64_sparc ;; sparc*-*-linux-*) targ_emul=elf32_sparc @@ -936,28 +990,31 @@ x86_64-*-rdos*) targ_emul=elf64rdos ;; x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi ;; +x86_64-*-haiku*) targ_emul=elf_x86_64_haiku + targ_extra_emuls="elf_x86_64 elf_i386_haiku" + ;; 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" + targ_extra_emuls="elf_x86_64 elf_i386 elf_iamcu" + targ_extra_libpath="elf_i386 elf_iamcu elf_x86_64" 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" + targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu" + targ_extra_libpath="elf_i386 elf32_x86_64" 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_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu" targ_extra_libpath=$targ_extra_emuls tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;; x86_64-*-netbsd* | x86_64-*-openbsd*) targ_emul=elf_x86_64 - targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om" + targ_extra_emuls="elf_i386 elf_iamcu" tdir_elf_iamcu=`echo ${targ_alias} | \ sed -e 's/x86_64/i386/' -e 's/aout//'` tdir_elf_i386=`echo ${targ_alias} | \ @@ -965,16 +1022,16 @@ x86_64-*-netbsd* | x86_64-*-openbsd*) ;; x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia* | x86_64-*-genode*) 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" + targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64" + targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64" 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" + targ_extra_emuls="elf_i386 elf_iamcu" ;; 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_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_iamcu" targ_extra_libpath="elf_i386_fbsd" tdir_elf_i386_fbsd=`echo ${targ_alias} \ | sed -e 's/x86_64/i386/'` @@ -996,9 +1053,6 @@ x86_64-*-mingw*) targ_emul=i386pep ; targ_extra_emuls=i386pe targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; -xc16x-*-elf) targ_emul=elf32xc16x - targ_extra_emuls="elf32xc16xl elf32xc16xs" - ;; xgate-*-*) targ_emul=xgateelf targ_extra_ofiles=ldelfgen.o ;; @@ -1016,6 +1070,10 @@ z8k-*-coff) targ_emul=z8002 targ_extra_emuls=z8001 targ_extra_ofiles= ;; +loongarch32-*) targ_emul=elf32loongarch + ;; +loongarch64-*) targ_emul=elf64loongarch + ;; *-*-ieee*) targ_emul=vanilla targ_extra_ofiles= ;;