1# configure.tgt -- target configuration for gold -*- sh -*- 2 3# Copyright 2006, 2007, 2008, 2009 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 ;; 75sparc-*) 76 targ_obj=sparc 77 targ_machine=EM_SPARC 78 targ_size=32 79 targ_extra_size=64 80 targ_big_endian=true 81 targ_extra_big_endian=false 82 ;; 83sparc64-*) 84 targ_obj=sparc 85 targ_machine=EM_SPARCV9 86 targ_size=64 87 targ_extra_size=32 88 targ_big_endian=true 89 targ_extra_big_endian=false 90 ;; 91powerpc-*) 92 targ_obj=powerpc 93 targ_machine=EM_PPC 94 targ_size=32 95 targ_extra_size=64 96 targ_big_endian=true 97 targ_extra_big_endian=false 98 ;; 99powerpc64-*) 100 targ_obj=powerpc 101 targ_machine=EM_PPC64 102 targ_size=64 103 targ_extra_size=32 104 targ_big_endian=true 105 targ_extra_big_endian=false 106 ;; 107armeb*-*-*|armbe*-*-*) 108 targ_obj=arm 109 targ_extra_obj=arm-reloc-property 110 targ_machine=EM_ARM 111 targ_size=32 112 targ_big_endian=true 113 targ_extra_big_endian=false 114 ;; 115arm*-*-*) 116 targ_obj=arm 117 targ_extra_obj=arm-reloc-property 118 targ_machine=EM_ARM 119 targ_size=32 120 targ_big_endian=false 121 targ_extra_big_endian=true 122 ;; 123*) 124 targ_obj=UNKNOWN 125 ;; 126esac 127