/[gentoo-x86]/eclass/toolchain-funcs.eclass
Gentoo

Diff of /eclass/toolchain-funcs.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.68 Revision 1.73
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2007 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-funcs.eclass,v 1.68 2007/03/15 15:55:59 kevquinn Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-funcs.eclass,v 1.73 2007/07/22 19:59:48 vapier Exp $
4# 4#
5# Maintainer: Toolchain Ninjas <toolchain@gentoo.org> 5# Maintainer: Toolchain Ninjas <toolchain@gentoo.org>
6# 6#
7# This eclass contains (or should) functions to get common info 7# This eclass contains (or should) functions to get common info
8# about the toolchain (libc/compiler/binutils/etc...) 8# about the toolchain (libc/compiler/binutils/etc...)
9 9
10inherit multilib 10___ECLASS_RECUR_TOOLCHAIN_FUNCS="yes"
11[[ -z ${___ECLASS_RECUR_MULTILIB} ]] && inherit multilib
11 12
12DESCRIPTION="Based on the ${ECLASS} eclass" 13DESCRIPTION="Based on the ${ECLASS} eclass"
13 14
14tc-getPROG() { 15tc-getPROG() {
15 local var=$1 16 local var=$1
121 [[ -z ${host} ]] && host=${CTARGET:-${CHOST}} 122 [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}
122 123
123 case ${host} in 124 case ${host} in
124 alpha*) echo alpha;; 125 alpha*) echo alpha;;
125 arm*) echo arm;; 126 arm*) echo arm;;
127 avr*) ninj avr32 avr;;
126 bfin*) ninj blackfin bfin;; 128 bfin*) ninj blackfin bfin;;
127 cris*) echo cris;; 129 cris*) echo cris;;
128 hppa*) ninj parisc hppa;; 130 hppa*) ninj parisc hppa;;
129 i?86*) ninj i386 x86;; 131 i?86*) ninj i386 x86;;
130 ia64*) echo ia64;; 132 ia64*) echo ia64;;
160 && ninj sparc64 sparc \ 162 && ninj sparc64 sparc \
161 || echo sparc 163 || echo sparc
162 ;; 164 ;;
163 vax*) echo vax;; 165 vax*) echo vax;;
164 x86_64*) ninj x86_64 amd64;; 166 x86_64*) ninj x86_64 amd64;;
165 *) echo ${ARCH};; 167
168 # since our usage of tc-arch is largely concerned with
169 # normalizing inputs for testing ${CTARGET}, let's filter
170 # other cross targets (mingw and such) into the unknown.
171 *) echo unknown;;
166 esac 172 esac
167} 173}
168tc-arch-kernel() { 174tc-arch-kernel() {
169 tc-ninja_magic_to_arch kern $@ 175 tc-ninja_magic_to_arch kern $@
170} 176}
171tc-arch() { 177tc-arch() {
172 tc-ninja_magic_to_arch portage $@ 178 tc-ninja_magic_to_arch portage $@
179}
180tc-endian() {
181 local host=$1
182 [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}
183 host=${host%%-*}
184
185 case ${host} in
186 alpha*) echo big;;
187 arm*b*) echo big;;
188 arm*) echo little;;
189 cris*) echo little;;
190 hppa*) echo big;;
191 i?86*) echo little;;
192 ia64*) echo little;;
193 m68*) echo big;;
194 mips*l*) echo little;;
195 mips*) echo big;;
196 powerpc*) echo big;;
197 s390*) echo big;;
198 sh*b*) echo big;;
199 sh*) echo little;;
200 sparc*) echo big;;
201 x86_64*) echo little;;
202 *) echo wtf;;
203 esac
173} 204}
174 205
175# Returns the version as by `$CC -dumpversion` 206# Returns the version as by `$CC -dumpversion`
176gcc-fullversion() { 207gcc-fullversion() {
177 $(tc-getCC "$@") -dumpversion 208 $(tc-getCC "$@") -dumpversion
290# gen_usr_ldscript libfoo.so 321# gen_usr_ldscript libfoo.so
291# 322#
292# Note that you should in general use the unversioned name of 323# Note that you should in general use the unversioned name of
293# the library, as ldconfig should usually update it correctly 324# the library, as ldconfig should usually update it correctly
294# to point to the latest version of the library present. 325# to point to the latest version of the library present.
295_tc_gen_usr_ldscript() { 326gen_usr_ldscript() {
296 local lib libdir=$(get_libdir) output_format="" 327 local lib libdir=$(get_libdir) output_format=""
297 # Just make sure it exists 328 # Just make sure it exists
298 dodir /usr/${libdir} 329 dodir /usr/${libdir}
299 330
300 # OUTPUT_FORMAT gives hints to the linker as to what binary format 331 # OUTPUT_FORMAT gives hints to the linker as to what binary format
322 END_LDSCRIPT 353 END_LDSCRIPT
323 fi 354 fi
324 fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}" 355 fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"
325 done 356 done
326} 357}
327gen_usr_ldscript() { _tc_gen_usr_ldscript "$@" ; }

Legend:
Removed from v.1.68  
changed lines
  Added in v.1.73

  ViewVC Help
Powered by ViewVC 1.1.20