config.host revision 1.1.1.1
1# libgcc host-specific configuration file.
2# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3# 2008, 2009, 2010 Free Software Foundation, Inc.
4
5#This file is part of GCC.
6
7#GCC is free software; you can redistribute it and/or modify it under
8#the terms of the GNU General Public License as published by the Free
9#Software Foundation; either version 3, or (at your option) any later
10#version.
11
12#GCC is distributed in the hope that it will be useful, but WITHOUT
13#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15#for more details.
16
17#You should have received a copy of the GNU General Public License
18#along with GCC; see the file COPYING3.  If not see
19#<http://www.gnu.org/licenses/>.
20
21# This is the libgcc host-specific configuration file
22# where a configuration type is mapped to different system-specific
23# definitions and files.  This is invoked by the autoconf-generated
24# configure script.  Putting it in a separate shell file lets us skip
25# running autoconf when modifying host-specific information.
26
27# This file bears an obvious resemblance to gcc/config.gcc.  The cases
28# should be kept similar, to ease moving library-specific settings
29# from config.gcc to this file.  That is also why tmake_file is
30# left as tmake_file, rather than hmake_file, even though this library
31# switches on ${host}.
32
33# This file switches on the shell variable ${host}, and also uses the
34# following shell variables:
35#
36#  with_*		Various variables as set by configure.
37
38# This file sets the following shell variables for use by the
39# autoconf-generated configure script:
40#
41#  asm_hidden_op	The assembler pseudo-op to use for hide
42#			lists for object files implemented in
43#			assembly (with -fvisibility=hidden for C).
44#			The default is ".hidden".
45#  cpu_type		The name of the cpu, if different from the first
46#			chunk of the canonical host name.
47#  extra_parts		List of extra object files that should be compiled
48#			for this target machine.  This may be overridden
49#			by setting EXTRA_PARTS in a tmake_file fragment.
50#			If either is set, EXTRA_PARTS and
51#			EXTRA_MULTILIB_PARTS inherited from the GCC
52#			subdirectory will be ignored.
53#  tmake_file		A list of machine-description-specific
54#			makefile-fragments, if different from
55#			"$cpu_type/t-$cpu_type".
56
57asm_hidden_op=.hidden
58extra_parts=
59tmake_file=
60
61# Set default cpu_type so it can be updated in each machine entry.
62cpu_type=`echo ${host} | sed 's/-.*$//'`
63case ${host} in
64m32c*-*-*)
65        cpu_type=m32c
66        ;;
67alpha*-*-*)
68	cpu_type=alpha
69	;;
70am33_2.0-*-linux*)
71	cpu_type=mn10300
72	;;
73arm*-*-*)
74	cpu_type=arm
75	;;
76avr-*-*)
77	cpu_type=avr
78	;;    
79bfin*-*)
80	cpu_type=bfin
81	;;
82fido-*-*)
83	cpu_type=m68k
84	;;
85frv*)	cpu_type=frv
86	;;
87moxie*)	cpu_type=moxie
88	;;
89i[34567]86-*-*)
90	cpu_type=i386
91	;;
92x86_64-*-*)
93	cpu_type=i386
94	;;
95ia64-*-*)
96	;;
97hppa*-*-*)
98	cpu_type=pa
99	;;
100lm32*-*-*)
101	cpu_type=lm32
102	;;
103m32r*-*-*)
104        cpu_type=m32r
105        ;;
106m68k-*-*)
107	;;
108mep*-*-*)
109	;;
110mips*-*-*)
111	cpu_type=mips
112	;;
113powerpc*-*-*)
114	cpu_type=rs6000
115	;;
116rs6000*-*-*)
117	;;
118score*-*-*)
119	cpu_type=score
120	;;
121sparc64*-*-*)
122	cpu_type=sparc
123	;;
124sparc*-*-*)
125	cpu_type=sparc
126	;;
127spu*-*-*)
128	cpu_type=spu
129	;;
130s390*-*-*)
131	cpu_type=s390
132	;;
133# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
134sh[123456789lbe]*-*-*)
135	cpu_type=sh
136	;;
137esac
138
139# Common parts for widely ported systems.
140case ${host} in
141*-*-darwin*)
142  asm_hidden_op=.private_extern
143  tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin"
144  ;;
145*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
146  # This is the place-holder for the generic a.out configuration
147  # of FreeBSD.  No actual configuration resides here since
148  # there was only ever a bare-bones ix86 configuration for
149  # a.out and it exists solely in the machine-specific section.
150  # This place-holder must exist to avoid dropping into
151  # the generic ELF configuration of FreeBSD (i.e. it must be
152  # ordered before that section).
153  ;;
154*-*-freebsd*)
155  # This is the generic ELF configuration of FreeBSD.  Later
156  # machine-specific sections may refine and add to this
157  # configuration.
158  ;;
159*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu*)
160  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
161  ;;
162*-*-netbsd*)
163  ;;
164*-*-openbsd*)
165  ;;
166*-*-rtems*)
167  ;;
168*-*-vxworks*)
169  ;;
170*-*-elf)
171  ;;
172esac
173
174case ${host} in
175# Support site-specific machine types.
176*local*)
177	rest=`echo ${host} | sed -e "s/$cpu_type-//"`
178	if test -f $srcdir/config/${cpu_type}/t-$rest
179	then tmake_file=${cpu_type}/t-$rest
180	fi
181	;;
182alpha*-*-linux* | alpha*-*-gnu*)
183	tmake_file="${tmake_file} alpha/t-crtfm"
184	extra_parts="$extra_parts crtfastmath.o"
185	;;
186alpha*-*-freebsd*)
187	;;
188alpha*-*-netbsd*)
189	;;
190alpha*-*-openbsd*)
191	;;
192alpha*-dec-osf[45]*)
193	;;
194alpha64-dec-*vms*)
195	tmake_file="vms/t-vms vms/t-vms64 alpha/t-vms"
196	;;
197alpha*-dec-*vms*)
198	tmake_file="vms/t-vms alpha/t-vms"
199	;;
200arc-*-elf*)
201	;;
202arm-wrs-vxworks)
203	;;
204arm*-*-freebsd*)
205	;;
206arm*-*-netbsdelf*)
207	;;
208arm*-*-netbsd*)
209	;;
210arm*-*-linux*)			# ARM GNU/Linux with ELF
211	;;
212arm*-*-uclinux*)		# ARM ucLinux
213	;;
214arm*-*-ecos-elf)
215	;;
216arm*-*-eabi* | arm*-*-symbianelf* )
217	;;
218arm*-*-rtems*)
219	;;
220arm*-*-elf)
221	;;
222arm*-wince-pe*)
223	;;
224arm-*-pe*)
225	;;
226avr-*-rtems*)
227	;;
228avr-*-*)
229    # Make HImode functions for AVR
230    tmake_file=${cpu_type}/t-avr
231	;;
232bfin*-elf*)
233        ;;
234bfin*-uclinux*)
235        ;;
236bfin*-linux-uclibc*)
237	# No need to build crtbeginT.o on uClibc systems.  Should probably
238	# be moved to the OS specific section above.
239	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
240	;;
241bfin*-*)
242        ;;
243crisv32-*-elf | crisv32-*-none | cris-*-elf | cris-*-none)
244	extra_parts="crtbegin.o crtend.o"
245	;;
246cris-*-linux* | crisv32-*-linux*)
247	;;
248crx-*-elf)
249	;;
250fido-*-elf)
251	;;
252fr30-*-elf)
253	;;
254frv-*-elf)
255	;;
256frv-*-*linux*)
257	;;
258h8300-*-rtems*)
259	;;
260h8300-*-elf*)
261	;;
262hppa*64*-*-linux*)
263	;;
264hppa*-*-linux*)
265	;;
266hppa[12]*-*-hpux10*)
267	;;
268hppa*64*-*-hpux11*)
269	;;
270hppa[12]*-*-hpux11*)
271	;;
272hppa*-*-netbsd*)
273	;;
274i[34567]86-*-darwin*)
275	;;
276x86_64-*-darwin*)
277	tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin"
278	;;
279i[34567]86-*-elf*)
280	;;
281x86_64-*-elf*)
282	;;
283i[34567]86-*-freebsd*)
284	;;
285x86_64-*-freebsd*)
286	;;
287i[34567]86-*-netbsdelf*)
288	;;
289i[34567]86-*-netbsd*)
290	;;
291x86_64-*-netbsd*)
292	;;
293i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
294	;;
295i[34567]86-*-openbsd*)
296	;;
297i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu*)
298	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
299	tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm"
300	;;
301x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
302	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
303	tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm"
304	;;
305i[34567]86-pc-msdosdjgpp*)
306	;;
307i[34567]86-*-lynxos*)
308	;;
309i[3456x]86-*-netware*)
310	case /${with_ld} in
311	*/nwld)
312	 	tmake_file="${tmake_file} i386/t-nwld"
313		;;
314	esac
315	;;
316i[34567]86-*-nto-qnx*)
317	;;
318i[34567]86-*-rtems*)
319	;;
320i[34567]86-*-solaris2*)
321	tmake_file="${tmake_file} i386/t-sol2"
322	case ${host} in
323	*-*-solaris2.1[0-9]*)
324		# Solaris 2.10 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
325		# part of the base system.
326		extra_parts="gmon.o crtbegin.o crtend.o"
327		;;
328	*)
329		extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
330		;;
331	esac
332	;;
333i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
334	;;
335i[34567]86-*-pe)
336	;;
337i[34567]86-*-cygwin* | i[34567]86-*-mingw*)
338	extra_parts="crtbegin.o crtend.o crtfastmath.o"
339	tmake_file="i386/t-cygming i386/t-crtfm"
340	;;
341x86_64-*-mingw*)
342	;;
343i[34567]86-*-interix3*)
344	;;
345ia64*-*-elf*)
346	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
347	tmake_file="ia64/t-ia64"
348	;;
349ia64*-*-freebsd*)
350	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
351	tmake_file="ia64/t-ia64"
352	;;
353ia64*-*-linux*)
354	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
355	tmake_file="ia64/t-ia64 t-softfp ia64/t-fprules-softfp ia64/t-softfp-compat"
356	;;
357ia64*-*-hpux*)
358	;;
359ia64-hp-*vms*)
360	tmake_file="vms/t-vms vms/t-vms64 ia64/t-vms"
361	;;
362iq2000*-*-elf*)
363        ;;
364lm32-*-elf*|lm32-*-rtems*)
365        extra_parts="crtbegin.o crtend.o crti.o crtn.o"
366        tmake_file="lm32/t-lm32 lm32/t-elf t-softfp"
367	;;
368lm32-*-uclinux*)
369        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
370        tmake_file="lm32/t-lm32 lm32/t-uclinux t-softfp"
371	;;	
372m32r-*-elf*|m32r-*-rtems*)
373 	;;
374m32rle-*-elf*)
375	;;
376m32r-*-linux*)
377 	;;
378m32rle-*-linux*)
379	;;
380m68hc11-*-*|m6811-*-*)
381        ;;
382m68hc12-*-*|m6812-*-*)
383        ;;
384m68k-*-elf*)
385	;;
386m68k*-*-netbsdelf*)
387	;;
388m68k*-*-openbsd*)
389	;;
390m68k-*-uclinux*)		# Motorola m68k/ColdFire running uClinux with uClibc
391	;;
392m68k-*-linux*)		# Motorola m68k's running GNU/Linux
393				# with ELF format using glibc 2
394				# aka the GNU/Linux C library 6.
395	;;
396m68k-*-rtems*)
397	;;
398mcore-*-elf)
399	;;
400mcore-*-pe*)
401	;;
402mips-sgi-irix[56]*)
403	;;
404mips*-*-netbsd*)			# NetBSD/mips, either endian.
405	;;
406mips64*-*-linux*)
407	;;
408mips*-*-linux*)				# Linux MIPS, either endian.
409	;;
410mips*-*-openbsd*)
411	;;
412mipsisa32-*-elf* | mipsisa32el-*-elf*)
413	;;
414mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*)
415	;;
416mipsisa64-*-elf* | mipsisa64el-*-elf*)
417	;;
418mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
419	;;
420mipsisa64sr71k-*-elf*)
421        ;;
422mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
423	;;
424mips-*-elf* | mipsel-*-elf*)
425	;;
426mips64-*-elf* | mips64el-*-elf*)
427	;;
428mips64vr-*-elf* | mips64vrel-*-elf*)
429        ;;
430mips64orion-*-elf* | mips64orionel-*-elf*)
431	;;
432mips*-*-rtems*)
433	;;
434mips-wrs-vxworks)
435	;;
436mipstx39-*-elf* | mipstx39el-*-elf*)
437	;;
438mmix-knuth-mmixware)
439	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
440	tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}"
441	;;
442mn10300-*-*)
443	;;
444moxie-*-*)
445	tmake_file="moxie/t-moxie moxie/t-moxie-softfp"
446	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
447	;;
448pdp11-*-*)
449	;;
450picochip-*-*)
451        ;;
452powerpc-*-darwin*)
453	;;
454powerpc64-*-darwin*)
455	;;
456powerpc*-*-freebsd*)
457	;;
458powerpc-*-netbsd*)
459	;;
460powerpc-*-eabispe*)
461	tmake_file="${tmake_file} rs6000/t-ppccomm"
462	;;
463powerpc-*-eabisimaltivec*)
464	;;
465powerpc-*-eabisim*)
466	;;
467powerpc-*-elf*)
468	;;
469powerpc-*-eabialtivec*)
470	;;
471powerpc-*-eabi*)
472	tmake_file="${tmake_file} rs6000/t-ppccomm"
473	;;
474powerpc-*-rtems*)
475	;;
476powerpc-*-linux* | powerpc64-*-linux*)
477	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
478	;;
479powerpc64-*-gnu*)
480	tmake_file="${tmake_file} rs6000/t-ldbl128 t-softfp"
481	;;
482powerpc-*-gnu-gnualtivec*)
483	tmake_file="${tmake_file} rs6000/t-ldbl128"
484	;;
485powerpc-*-gnu*)
486	tmake_file="${tmake_file} rs6000/t-ldbl128"
487	;;
488powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
489	;;
490powerpc-*-lynxos*)
491	;;
492powerpcle-*-elf*)
493	;;
494powerpcle-*-eabisim*)
495	;;
496powerpcle-*-eabi*)
497	;;
498rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
499	;;
500rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
501	;;
502rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
503	;;
504rx-*-elf)
505	extra_parts="crtbegin.o crtend.o"
506	tmake_file="rx/t-rx"
507	;;
508s390-*-linux*)
509	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi"
510	;;
511s390x-*-linux*)
512	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
513	;;
514s390x-ibm-tpf*)
515	tmake_file="${tmake_file} s390/t-crtstuff s390/t-tpf"
516	;;
517score-*-elf)
518        ;;
519sh-*-elf* | sh[12346l]*-*-elf* | \
520sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
521  sh-*-linux* | sh[2346lbe]*-*-linux* | \
522  sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
523   sh64-*-netbsd* | sh64l*-*-netbsd*)
524	case ${host} in
525	sh*-*-linux*)
526		tmake_file="${tmake_file} sh/t-linux"
527		;;
528	esac
529	;;
530sh-*-rtems*)
531	;;
532sh-wrs-vxworks)
533	;;
534sparc-*-netbsdelf*)
535	;;
536sparc64-*-openbsd*)
537	;;
538sparc-*-elf*)
539	;;
540sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
541	extra_parts="$extra_parts crtfastmath.o"
542	tmake_file="${tmake_file} sparc/t-crtfm"
543	;;
544sparc-*-rtems*)
545	;;
546sparc64-*-solaris2* | sparcv9-*-solaris2*)
547	;;
548sparc-*-solaris2*)
549	;;
550sparc64-*-elf*)
551	;;
552sparc-wrs-vxworks)
553	;;
554sparc64-*-freebsd*|ultrasparc-*-freebsd*)
555	;;
556sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
557	extra_parts="$extra_parts crtfastmath.o"
558	tmake_file="${tmake_file} sparc/t-crtfm"
559	;;
560sparc64-*-netbsd*)
561	;;
562spu-*-elf*)
563	;;
564v850e1-*-*)
565	;;
566v850e-*-*)
567	;;
568v850-*-*)
569	;;
570vax-*-linux*)
571	;;
572vax-*-netbsdelf*)
573	;;
574vax-*-netbsd*)
575	;;
576vax-*-openbsd*)
577	;;
578xstormy16-*-elf)
579	;;
580xtensa*-*-elf*)
581	;;
582xtensa*-*-linux*)
583	;;
584am33_2.0-*-linux*)
585	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
586	;;
587m32c-*-elf*|m32c-*-rtems*)
588 	;;
589mep*-*-*)
590	;;
591*)
592	echo "*** Configuration ${host} not supported" 1>&2
593	exit 1
594	;;
595esac
596
597case ${host} in
598i[34567]86-*-linux* | x86_64-*-linux* | \
599  i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | \
600  i[34567]86-*-gnu*)
601	tmake_file="${tmake_file} t-tls"
602	;;
603esac
604
605case ${host} in
606i[34567]86-*-darwin* | x86_64-*-darwin* | \
607  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
608  i[34567]86-*-linux* | x86_64-*-linux* | \
609  i[34567]86-*-gnu* | \
610  i[34567]86-*-solaris2* | \
611  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
612	if test "${host_address}" = 32; then
613		tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
614	fi
615	;;
616esac
617
618case ${host} in
619i[34567]86-*-linux* | x86_64-*-linux*)
620	# Provide backward binary compatibility for 64bit Linux/x86.
621	if test "${host_address}" = 64; then
622		tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
623	fi
624	;;
625esac
626