| # configure.tgt -- target configuration for gold -*- sh -*- |
| |
| # Copyright (C) 2006-2024 Free Software Foundation, Inc. |
| # Written by Ian Lance Taylor <iant@google.com>. |
| |
| # This file is part of gold. |
| |
| # This program is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 3 of the License, or |
| # (at your option) any later version. |
| |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| |
| # You should have received a copy of the GNU General Public License |
| # along with this program; if not, write to the Free Software |
| # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
| # MA 02110-1301, USA. |
| |
| # This script handles target configuration for gold. This is shell |
| # code invoked by the autoconf generated configure script. Putting |
| # this in a separate file lets us skip running autoconf when modifying |
| # target specific information. |
| |
| # This file switches on the shell variable ${targ}, which is a |
| # canonicalized GNU configuration triplet. It sets the following |
| # shell variables: |
| |
| # targ_obj object file to include in the link, with no extension |
| # targ_extra_obj extra object file to include |
| # targ_machine ELF machine code for this target |
| # targ_size size of this target--32 or 64 |
| # targ_extra_size extra targ_size setting for the target |
| # targ_big_endian whether the target is big-endian--true or false |
| # targ_extra_big_endian extra targ_big_endian setting for the target |
| # targ_osabi EI_OSABI value |
| |
| # If the target is not recognized targ_obj is set to "UNKNOWN". |
| |
| targ_extra_obj= |
| targ_machine= |
| targ_size= |
| targ_extra_size= |
| targ_big_endian= |
| targ_extra_big_endian= |
| targ_osabi=ELFOSABI_NONE |
| case "$targ" in |
| i?86-*) |
| targ_obj=i386 |
| targ_machine=EM_386 |
| targ_size=32 |
| targ_big_endian=false |
| case "$targ" in |
| i?86-*-freebsd*) |
| targ_osabi=ELFOSABI_FREEBSD |
| ;; |
| esac |
| ;; |
| x86_64*) |
| targ_obj=x86_64 |
| targ_extra_obj=i386 |
| targ_machine=EM_X86_64 |
| targ_size=64 |
| targ_extra_size=32 |
| targ_big_endian=false |
| case "$targ" in |
| x86_64-*-freebsd*) |
| targ_osabi=ELFOSABI_FREEBSD |
| ;; |
| esac |
| ;; |
| tilegx*) |
| targ_obj=tilegx |
| targ_machine=EM_TILEGX |
| targ_size=64 |
| targ_extra_size=32 |
| targ_big_endian=false |
| targ_extra_big_endian=true |
| ;; |
| sparc-*) |
| targ_obj=sparc |
| targ_machine=EM_SPARC |
| targ_size=32 |
| targ_extra_size=64 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| sparc64-*) |
| targ_obj=sparc |
| targ_machine=EM_SPARCV9 |
| targ_size=64 |
| targ_extra_size=32 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| powerpc-*) |
| targ_obj=powerpc |
| targ_machine=EM_PPC |
| targ_size=32 |
| targ_extra_size=64 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| powerpcle-*) |
| targ_obj=powerpc |
| targ_machine=EM_PPC |
| targ_size=32 |
| targ_extra_size=64 |
| targ_big_endian=false |
| targ_extra_big_endian=true |
| ;; |
| powerpc64-*) |
| targ_obj=powerpc |
| targ_machine=EM_PPC64 |
| targ_size=64 |
| targ_extra_size=32 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| powerpc64le-*) |
| targ_obj=powerpc |
| targ_machine=EM_PPC64 |
| targ_size=64 |
| targ_extra_size=32 |
| targ_big_endian=false |
| targ_extra_big_endian=true |
| ;; |
| armeb*-*-*|armbe*-*-*) |
| targ_obj=arm |
| targ_extra_obj=arm-reloc-property |
| targ_machine=EM_ARM |
| targ_size=32 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| arm*-*-*) |
| targ_obj=arm |
| targ_extra_obj=arm-reloc-property |
| targ_machine=EM_ARM |
| targ_size=32 |
| targ_big_endian=false |
| targ_extra_big_endian=true |
| ;; |
| aarch64*-*) |
| targ_obj=aarch64 |
| targ_extra_obj=aarch64-reloc-property |
| targ_machine=EM_AARCH64 |
| targ_size=64 |
| targ_extra_size=32 |
| targ_big_endian=false |
| targ_extra_big_endian=true |
| ;; |
| mips*el*-*-*|mips*le*-*-*) |
| targ_obj=mips |
| targ_machine=EM_MIPS |
| targ_size=32 |
| targ_extra_size=64 |
| targ_big_endian=false |
| targ_extra_big_endian=true |
| ;; |
| mips*-*-*) |
| targ_obj=mips |
| targ_machine=EM_MIPS |
| targ_size=32 |
| targ_extra_size=64 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| s390-*-*) |
| targ_obj=s390 |
| targ_machine=EM_S390 |
| targ_size=32 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| s390x-*-*) |
| targ_obj=s390 |
| targ_machine=EM_S390 |
| targ_size=64 |
| targ_big_endian=true |
| targ_extra_big_endian=false |
| ;; |
| *) |
| targ_obj=UNKNOWN |
| ;; |
| esac |