123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- # configure.tgt -- target configuration for gold -*- sh -*-
- # Copyright (C) 2006-2015 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_RS3_LE
- targ_size=32
- targ_big_endian=false
- targ_extra_big_endian=true
- ;;
- mips*-*-*)
- targ_obj=mips
- targ_machine=EM_MIPS
- targ_size=32
- targ_big_endian=true
- targ_extra_big_endian=false
- ;;
- *)
- targ_obj=UNKNOWN
- ;;
- esac
|