1# configure.tgt -- target configuration for gold -*- sh -*- 2 3# Copyright (C) 2006-2014 Free Software Foundation, Inc. 4# Written by Ian Lance Taylor <iant@google.com>. 5 6# This file is part of gold. 7 8# This program is free software; you can redistribute it and/or modify 9# it under the terms of the GNU General Public License as published by 10# the Free Software Foundation; either version 3 of the License, or 11# (at your option) any later version. 12 13# This program is distributed in the hope that it will be useful, 14# but WITHOUT ANY WARRANTY; without even the implied warranty of 15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16# GNU General Public License for more details. 17 18# You should have received a copy of the GNU General Public License 19# along with this program; if not, write to the Free Software 20# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 21# MA 02110-1301, USA. 22 23# This script handles target configuration for gold. This is shell 24# code invoked by the autoconf generated configure script. Putting 25# this in a separate file lets us skip running autoconf when modifying 26# target specific information. 27 28# This file switches on the shell variable ${targ}, which is a 29# canonicalized GNU configuration triplet. It sets the following 30# shell variables: 31 32# targ_obj object file to include in the link, with no extension 33# targ_extra_obj extra object file to include 34# targ_machine ELF machine code for this target 35# targ_size size of this target--32 or 64 36# targ_extra_size extra targ_size setting for the target 37# targ_big_endian whether the target is big-endian--true or false 38# targ_extra_big_endian extra targ_big_endian setting for the target 39# targ_osabi EI_OSABI value 40 41# If the target is not recognized targ_obj is set to "UNKNOWN". 42 43targ_extra_obj= 44targ_machine= 45targ_size= 46targ_extra_size= 47targ_big_endian= 48targ_extra_big_endian= 49targ_osabi=ELFOSABI_NONE 50case "$targ" in 51i?86-*) 52 targ_obj=i386 53 targ_machine=EM_386 54 targ_size=32 55 targ_big_endian=false 56 case "$targ" in 57 i?86-*-freebsd*) 58 targ_osabi=ELFOSABI_FREEBSD 59 ;; 60 esac 61 ;; 62x86_64*) 63 targ_obj=x86_64 64 targ_extra_obj=i386 65 targ_machine=EM_X86_64 66 targ_size=64 67 targ_extra_size=32 68 targ_big_endian=false 69 case "$targ" in 70 x86_64-*-freebsd*) 71 targ_osabi=ELFOSABI_FREEBSD 72 ;; 73 esac 74 ;; 75tilegx*) 76 targ_obj=tilegx 77 targ_machine=EM_TILEGX 78 targ_size=64 79 targ_extra_size=32 80 targ_big_endian=false 81 targ_extra_big_endian=true 82 ;; 83sparc-*) 84 targ_obj=sparc 85 targ_machine=EM_SPARC 86 targ_size=32 87 targ_extra_size=64 88 targ_big_endian=true 89 targ_extra_big_endian=false 90 ;; 91sparc64-*) 92 targ_obj=sparc 93 targ_machine=EM_SPARCV9 94 targ_size=64 95 targ_extra_size=32 96 targ_big_endian=true 97 targ_extra_big_endian=false 98 ;; 99powerpc-*) 100 targ_obj=powerpc 101 targ_machine=EM_PPC 102 targ_size=32 103 targ_extra_size=64 104 targ_big_endian=true 105 targ_extra_big_endian=false 106 ;; 107powerpcle-*) 108 targ_obj=powerpc 109 targ_machine=EM_PPC 110 targ_size=32 111 targ_extra_size=64 112 targ_big_endian=false 113 targ_extra_big_endian=true 114 ;; 115powerpc64-*) 116 targ_obj=powerpc 117 targ_machine=EM_PPC64 118 targ_size=64 119 targ_extra_size=32 120 targ_big_endian=true 121 targ_extra_big_endian=false 122 ;; 123powerpc64le-*) 124 targ_obj=powerpc 125 targ_machine=EM_PPC64 126 targ_size=64 127 targ_extra_size=32 128 targ_big_endian=false 129 targ_extra_big_endian=true 130 ;; 131armeb*-*-*|armbe*-*-*) 132 targ_obj=arm 133 targ_extra_obj=arm-reloc-property 134 targ_machine=EM_ARM 135 targ_size=32 136 targ_big_endian=true 137 targ_extra_big_endian=false 138 ;; 139arm*-*-*) 140 targ_obj=arm 141 targ_extra_obj=arm-reloc-property 142 targ_machine=EM_ARM 143 targ_size=32 144 targ_big_endian=false 145 targ_extra_big_endian=true 146 ;; 147aarch64*-*) 148 targ_obj=aarch64 149 targ_extra_obj=aarch64-reloc-property 150 targ_machine=EM_AARCH64 151 targ_size=64 152 targ_extra_size=32 153 targ_big_endian=false 154 targ_extra_big_endian=true 155 ;; 156mips*el*-*-*|mips*le*-*-*) 157 targ_obj=mips 158 targ_machine=EM_MIPS_RS3_LE 159 targ_size=32 160 targ_big_endian=false 161 targ_extra_big_endian=true 162 ;; 163mips*-*-*) 164 targ_obj=mips 165 targ_machine=EM_MIPS 166 targ_size=32 167 targ_big_endian=true 168 targ_extra_big_endian=false 169 ;; 170*) 171 targ_obj=UNKNOWN 172 ;; 173esac 174