From 08f188a7e556157335937243a22ef40c03285119 Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Fri, 16 Oct 2009 00:46:49 +0000 Subject: Re-cut the patch. The previous version was unclean. --- .../patches/gcc-core-4.4.2-rtems4.10-20091015.diff | 24370 +------------------ 1 file changed, 101 insertions(+), 24269 deletions(-) (limited to 'contrib') diff --git a/contrib/crossrpms/patches/gcc-core-4.4.2-rtems4.10-20091015.diff b/contrib/crossrpms/patches/gcc-core-4.4.2-rtems4.10-20091015.diff index 5bf09dc051..03af678728 100644 --- a/contrib/crossrpms/patches/gcc-core-4.4.2-rtems4.10-20091015.diff +++ b/contrib/crossrpms/patches/gcc-core-4.4.2-rtems4.10-20091015.diff @@ -1,6 +1,6 @@ -diff -Naur gcc-4.4.2.orig/configure gcc-4.4.2-rtems4.10-20091015/configure +diff -Naur gcc-4.4.2.orig/configure gcc-4.4.2/configure --- gcc-4.4.2.orig/configure 2009-04-25 06:10:29.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/configure 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/configure 2009-10-15 18:36:00.000000000 +0200 @@ -2267,6 +2267,7 @@ noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap" ;; @@ -18,9 +18,9 @@ diff -Naur gcc-4.4.2.orig/configure gcc-4.4.2-rtems4.10-20091015/configure # Someone might think of using the pre-installed headers on # Canadian crosses, in case the installed compiler is not fully -diff -Naur gcc-4.4.2.orig/configure.ac gcc-4.4.2-rtems4.10-20091015/configure.ac +diff -Naur gcc-4.4.2.orig/configure.ac gcc-4.4.2/configure.ac --- gcc-4.4.2.orig/configure.ac 2009-04-25 06:10:29.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/configure.ac 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/configure.ac 2009-10-15 18:36:00.000000000 +0200 @@ -502,6 +502,7 @@ noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap" ;; @@ -38,18 +38,18 @@ diff -Naur gcc-4.4.2.orig/configure.ac gcc-4.4.2-rtems4.10-20091015/configure.ac # Someone might think of using the pre-installed headers on # Canadian crosses, in case the installed compiler is not fully -diff -Naur gcc-4.4.2.orig/gcc/config/avr/t-rtems gcc-4.4.2-rtems4.10-20091015/gcc/config/avr/t-rtems +diff -Naur gcc-4.4.2.orig/gcc/config/avr/t-rtems gcc-4.4.2/gcc/config/avr/t-rtems --- gcc-4.4.2.orig/gcc/config/avr/t-rtems 2004-11-23 04:44:03.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/avr/t-rtems 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/avr/t-rtems 2009-10-15 18:36:00.000000000 +0200 @@ -1,3 +1,4 @@ # Multilibs for avr RTEMS targets. -# ATM, this is just a stub +# RTEMS uses _exit from newlib +LIB1ASMFUNCS := $(filter-out _exit,$(LIB1ASMFUNCS)) -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/arithmetic.c gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/arithmetic.c +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/arithmetic.c gcc-4.4.2/gcc/config/lm32/arithmetic.c --- gcc-4.4.2.orig/gcc/config/lm32/arithmetic.c 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/arithmetic.c 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/arithmetic.c 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,305 @@ +/* Fixed-point arithmetic for Lattice Mico32. + Contributed by Jon Beniston @@ -356,9 +356,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/arithmetic.c gcc-4.4.2-rtems4.10-20091 +#endif + +#endif -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/crti.S gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/crti.S +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/crti.S gcc-4.4.2/gcc/config/lm32/crti.S --- gcc-4.4.2.orig/gcc/config/lm32/crti.S 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/crti.S 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/crti.S 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,45 @@ +# crti.S for Lattice Mico32 +# Contributed by Jon Beniston @@ -405,9 +405,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/crti.S gcc-4.4.2-rtems4.10-20091015/gc +_fini: + addi sp, sp, -4 + sw (sp+4), ra -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/crtn.S gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/crtn.S +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/crtn.S gcc-4.4.2/gcc/config/lm32/crtn.S --- gcc-4.4.2.orig/gcc/config/lm32/crtn.S 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/crtn.S 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/crtn.S 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,42 @@ +# crtn.S for Lattice Mico32 +# Contributed by Jon Beniston @@ -451,9 +451,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/crtn.S gcc-4.4.2-rtems4.10-20091015/gc + addi sp, sp, 4 + ret + -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lib1funcs.S gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lib1funcs.S +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lib1funcs.S gcc-4.4.2/gcc/config/lm32/lib1funcs.S --- gcc-4.4.2.orig/gcc/config/lm32/lib1funcs.S 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lib1funcs.S 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/lib1funcs.S 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,429 @@ +# lib1funcs.S for Lattice Mico32 +# Contributed by Jon Beniston @@ -884,9 +884,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lib1funcs.S gcc-4.4.2-rtems4.10-200910 + .word __ashrsi3_30 + .word __ashrsi3_31 + -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.c gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.c +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.c gcc-4.4.2/gcc/config/lm32/lm32.c --- gcc-4.4.2.orig/gcc/config/lm32/lm32.c 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.c 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/lm32.c 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,869 @@ +/* Subroutines used for code generation on the Lattice Mico32 architecture. + Contributed by Jon Beniston @@ -1757,9 +1757,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.c gcc-4.4.2-rtems4.10-20091015/gc + + return 0; +} -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.h gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.h +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.h gcc-4.4.2/gcc/config/lm32/lm32.h --- gcc-4.4.2.orig/gcc/config/lm32/lm32.h 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/lm32.h 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,657 @@ +/* Definitions of target machine for GNU compiler, Lattice Mico32 architecture. + Contributed by Jon Beniston @@ -2418,9 +2418,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.h gcc-4.4.2-rtems4.10-20091015/gc +#endif + +#define STORE_FLAG_VALUE 1 -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.md gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.md +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.md gcc-4.4.2/gcc/config/lm32/lm32.md --- gcc-4.4.2.orig/gcc/config/lm32/lm32.md 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.md 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/lm32.md 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,1233 @@ +;; Machine description of the Lattice Mico32 architecture for GNU C compiler. +;; Contributed by Jon Beniston @@ -3655,9 +3655,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.md gcc-4.4.2-rtems4.10-20091015/g + [(set_attr "length" "0")] +) + -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.opt gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.opt +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.opt gcc-4.4.2/gcc/config/lm32/lm32.opt --- gcc-4.4.2.orig/gcc/config/lm32/lm32.opt 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32.opt 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/lm32.opt 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,40 @@ +; Options for the Lattice Mico32 port of the compiler. +; Contributed by Jon Beniston @@ -3699,9 +3699,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32.opt gcc-4.4.2-rtems4.10-20091015/ +muser-enabled +Target Report Mask(USER_ENABLED) +Enable user-defined instructions -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32-protos.h gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32-protos.h +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32-protos.h gcc-4.4.2/gcc/config/lm32/lm32-protos.h --- gcc-4.4.2.orig/gcc/config/lm32/lm32-protos.h 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/lm32-protos.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/lm32-protos.h 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,52 @@ +/* Prototypes of target machine functions, Lattice Mico32 architecture. + Contributed by Jon Beniston @@ -3755,9 +3755,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/lm32-protos.h gcc-4.4.2-rtems4.10-2009 +extern int lm32_expand_block_move (rtx *); +extern int nonpic_symbol_mentioned_p (rtx); +extern rtx lm32_legitimize_pic_address (rtx, enum machine_mode, rtx); -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/predicates.md gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/predicates.md +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/predicates.md gcc-4.4.2/gcc/config/lm32/predicates.md --- gcc-4.4.2.orig/gcc/config/lm32/predicates.md 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/predicates.md 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/predicates.md 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,58 @@ +;; Predicate definitions for Lattice Mico32. +;; Contributed by Jon Beniston @@ -3817,9 +3817,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/predicates.md gcc-4.4.2-rtems4.10-2009 + (ior (match_code "label_ref") + (match_code "symbol_ref"))) + -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/rtems.h gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/rtems.h +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/rtems.h gcc-4.4.2/gcc/config/lm32/rtems.h --- gcc-4.4.2.orig/gcc/config/lm32/rtems.h 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/rtems.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/rtems.h 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,32 @@ +/* Definitions for rtems targeting a lm32 using ELF. + Copyright (C) 2009, Free Software Foundation, Inc. @@ -3853,9 +3853,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/rtems.h gcc-4.4.2-rtems4.10-20091015/g + +/* Use the default */ +#undef LINK_GCC_C_SEQUENCE_SPEC -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/sfp-machine.h gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/sfp-machine.h +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/sfp-machine.h gcc-4.4.2/gcc/config/lm32/sfp-machine.h --- gcc-4.4.2.orig/gcc/config/lm32/sfp-machine.h 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/sfp-machine.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/sfp-machine.h 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,51 @@ +#define _FP_W_TYPE_SIZE 32 +#define _FP_W_TYPE unsigned long @@ -3908,18 +3908,18 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/sfp-machine.h gcc-4.4.2-rtems4.10-2009 +# define strong_alias(name, aliasname) _strong_alias(name, aliasname) +# define _strong_alias(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((alias (#name))); -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/t-fprules-softfp gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/t-fprules-softfp +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/t-fprules-softfp gcc-4.4.2/gcc/config/lm32/t-fprules-softfp --- gcc-4.4.2.orig/gcc/config/lm32/t-fprules-softfp 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/t-fprules-softfp 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/t-fprules-softfp 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,5 @@ +softfp_float_modes := sf df +softfp_int_modes := si di +softfp_extensions := sfdf +softfp_truncations := dfsf +softfp_machine_header := lm32/sfp-machine.h -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/t-lm32 gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/t-lm32 +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/t-lm32 gcc-4.4.2/gcc/config/lm32/t-lm32 --- gcc-4.4.2.orig/gcc/config/lm32/t-lm32 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/t-lm32 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/t-lm32 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,19 @@ +LIB1ASMSRC = lm32/lib1funcs.S +LIB1ASMFUNCS = _ashlsi3 _ashrsi3 _lshrsi3 @@ -3940,9 +3940,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/t-lm32 gcc-4.4.2-rtems4.10-20091015/gc + +MULTILIB_OPTIONS = mmultiply-enabled mbarrel-shift-enabled +# Don't bother building multilib with mdivide-enabled, not much of a gain -diff -Naur gcc-4.4.2.orig/gcc/config/lm32/uclinux-elf.h gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/uclinux-elf.h +diff -Naur gcc-4.4.2.orig/gcc/config/lm32/uclinux-elf.h gcc-4.4.2/gcc/config/lm32/uclinux-elf.h --- gcc-4.4.2.orig/gcc/config/lm32/uclinux-elf.h 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/lm32/uclinux-elf.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/lm32/uclinux-elf.h 2009-10-15 18:36:00.000000000 +0200 @@ -0,0 +1,85 @@ +/* Definitions for LM32 running Linux-based GNU systems using ELF + Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, @@ -4029,9 +4029,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/lm32/uclinux-elf.h gcc-4.4.2-rtems4.10-2009 +#undef CC1_SPEC +#define CC1_SPEC "%{G*} %{!fno-PIC:-fPIC}" + -diff -Naur gcc-4.4.2.orig/gcc/config/mips/elf.h gcc-4.4.2-rtems4.10-20091015/gcc/config/mips/elf.h +diff -Naur gcc-4.4.2.orig/gcc/config/mips/elf.h gcc-4.4.2/gcc/config/mips/elf.h --- gcc-4.4.2.orig/gcc/config/mips/elf.h 2007-08-02 12:49:31.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/mips/elf.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/mips/elf.h 2009-10-15 18:36:00.000000000 +0200 @@ -48,6 +48,4 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC "crtend%O%s crtn%O%s" @@ -4039,9 +4039,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/mips/elf.h gcc-4.4.2-rtems4.10-20091015/gcc -#define NO_IMPLICIT_EXTERN_C 1 - #define HANDLE_PRAGMA_PACK_PUSH_POP 1 -diff -Naur gcc-4.4.2.orig/gcc/config/rs6000/rtems.h gcc-4.4.2-rtems4.10-20091015/gcc/config/rs6000/rtems.h +diff -Naur gcc-4.4.2.orig/gcc/config/rs6000/rtems.h gcc-4.4.2/gcc/config/rs6000/rtems.h --- gcc-4.4.2.orig/gcc/config/rs6000/rtems.h 2007-08-02 12:49:31.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/rs6000/rtems.h 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/rs6000/rtems.h 2009-10-15 18:36:00.000000000 +0200 @@ -49,8 +49,18 @@ %{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \ %{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \ @@ -4062,9 +4062,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/rs6000/rtems.h gcc-4.4.2-rtems4.10-20091015 + rs6000_float_gprs = 1; \ + } \ + } while(0) -diff -Naur gcc-4.4.2.orig/gcc/config/rs6000/t-rtems gcc-4.4.2-rtems4.10-20091015/gcc/config/rs6000/t-rtems +diff -Naur gcc-4.4.2.orig/gcc/config/rs6000/t-rtems gcc-4.4.2/gcc/config/rs6000/t-rtems --- gcc-4.4.2.orig/gcc/config/rs6000/t-rtems 2009-03-25 13:54:16.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config/rs6000/t-rtems 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config/rs6000/t-rtems 2009-10-15 18:36:00.000000000 +0200 @@ -1,12 +1,12 @@ # Multilibs for powerpc RTEMS targets. @@ -4096,9 +4096,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config/rs6000/t-rtems gcc-4.4.2-rtems4.10-20091015 MULTILIB_EXCEPTIONS += *mcpu=860/Dmpc* MULTILIB_EXCEPTIONS += *mcpu=7400/Dmpc* +MULTILIB_EXCEPTIONS += *mcpu=8540/Dmpc* -diff -Naur gcc-4.4.2.orig/gcc/config.gcc gcc-4.4.2-rtems4.10-20091015/gcc/config.gcc +diff -Naur gcc-4.4.2.orig/gcc/config.gcc gcc-4.4.2/gcc/config.gcc --- gcc-4.4.2.orig/gcc/config.gcc 2009-09-13 15:01:13.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config.gcc 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/config.gcc 2009-10-15 18:36:00.000000000 +0200 @@ -1364,6 +1364,23 @@ out_file=iq2000/iq2000.c md_file=iq2000/iq2000.md @@ -4123,3196 +4123,9 @@ diff -Naur gcc-4.4.2.orig/gcc/config.gcc gcc-4.4.2-rtems4.10-20091015/gcc/config m32r-*-elf*) tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" extra_parts="crtinit.o crtfini.o" -diff -Naur gcc-4.4.2.orig/gcc/config.gcc.orig gcc-4.4.2-rtems4.10-20091015/gcc/config.gcc.orig ---- gcc-4.4.2.orig/gcc/config.gcc.orig 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/config.gcc.orig 2009-10-15 18:36:00.000000000 +0200 -@@ -0,0 +1,3183 @@ -+# GCC target-specific configuration file. -+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -+# 2008, 2009 Free Software Foundation, Inc. -+ -+#This file is part of GCC. -+ -+#GCC 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, or (at your option) any later -+#version. -+ -+#GCC 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 GCC; see the file COPYING3. If not see -+#. -+ -+# This is the GCC target-specific configuration file -+# where a configuration type is mapped to different system-specific -+# definitions and files. This is invoked by the autoconf-generated -+# configure script. Putting it in a separate shell file lets us skip -+# running autoconf when modifying target-specific information. -+ -+# When you change the cases in the OS or target switches, consider -+# updating ../libgcc/config.host also. -+ -+# This file switches on the shell variable ${target}, and also uses the -+# following shell variables: -+# -+# with_* Various variables as set by configure. -+# -+# enable_threads Either the name, yes or no depending on whether -+# threads support was requested. -+# -+# default_use_cxa_atexit -+# The default value for the $enable___cxa_atexit -+# variable. enable___cxa_atexit needs to be set to -+# "yes" for the correct operation of C++ destructors -+# but it relies upon the presence of a non-standard C -+# library function called __cxa_atexit. -+# Since not all C libraries provide __cxa_atexit the -+# default value of $default_use_cxa_atexit is set to -+# "no" except for targets which are known to be OK. -+# -+# gas_flag Either yes or no depending on whether GNU as was -+# requested. -+# -+# gnu_ld_flag Either yes or no depending on whether GNU ld was -+# requested. -+ -+# This file sets the following shell variables for use by the -+# autoconf-generated configure script: -+# -+# cpu_type The name of the cpu, if different from the first -+# chunk of the canonical target name. -+# -+# tm_defines List of target macros to define for all compilations. -+# -+# tm_file A list of target macro files, if different from -+# "$cpu_type/$cpu_type.h". Usually it's constructed -+# per target in a way like this: -+# tm_file="${tm_file} dbxelf.h elfos.h svr4.h ${cpu_type.h}/elf.h" -+# Note that the preferred order is: -+# - specific target header "${cpu_type}/${cpu_type.h}" -+# - generic headers like dbxelf.h elfos.h, etc. -+# - specializing target headers like ${cpu_type.h}/elf.h -+# This helps to keep OS specific stuff out of the CPU -+# defining header ${cpu_type}/${cpu_type.h}. -+# -+# It is possible to include automatically-generated -+# build-directory files by prefixing them with "./". -+# All other files should relative to $srcdir/config. -+# -+# tm_p_file Location of file with declarations for functions -+# in $out_file. -+# -+# out_file The name of the machine description C support -+# file, if different from "$cpu_type/$cpu_type.c". -+# -+# md_file The name of the machine-description file, if -+# different from "$cpu_type/$cpu_type.md". -+# -+# tmake_file A list of machine-description-specific -+# makefile-fragments, if different from -+# "$cpu_type/t-$cpu_type". -+# -+# extra_modes The name of the file containing a list of extra -+# machine modes, if necessary and different from -+# "$cpu_type/$cpu_type-modes.def". -+# -+# extra_objs List of extra objects that should be linked into -+# the compiler proper (cc1, cc1obj, cc1plus) -+# depending on target. -+# -+# extra_gcc_objs List of extra objects that should be linked into -+# the compiler driver (gcc) depending on target. -+# -+# extra_headers List of used header files from the directory -+# config/${cpu_type}. -+# -+# use_gcc_tgmath If set, add tgmath.h to the list of used header -+# files. -+# -+# extra_passes List of extra executables compiled for this target -+# machine, used for compiling from source to object. -+# -+# extra_parts List of extra object files that should be compiled -+# for this target machine. -+# -+# extra_programs Like extra_passes, but these are used when linking. -+# -+# extra_options List of target-dependent .opt files. -+# -+# c_target_objs List of extra target-dependent objects that be -+# linked into the C compiler only. -+# -+# cxx_target_objs List of extra target-dependent objects that be -+# linked into the C++ compiler only. -+# -+# fortran_target_objs List of extra target-dependent objects that be -+# linked into the fortran compiler only. -+# -+# target_gtfiles List of extra source files with type information. -+# -+# xm_defines List of macros to define when compiling for the -+# target machine. -+# -+# xm_file List of files to include when compiling for the -+# target machine. -+# -+# use_collect2 Set to yes or no, depending on whether collect2 -+# will be used. -+# -+# target_cpu_default Set to override the default target model. -+# -+# gdb_needs_out_file_path -+# Set to yes if gdb needs a dir command with -+# `dirname $out_file`. -+# -+# thread_file Set to control which thread package to use. -+# -+# gas Set to yes or no depending on whether the target -+# system normally uses GNU as. -+# -+# need_64bit_hwint Set to yes if HOST_WIDE_INT must be 64 bits wide -+# for this target. This is true if this target -+# supports "long" or "wchar_t" wider than 32 bits, -+# or BITS_PER_WORD is wider than 32 bits. -+# The setting made here must match the one made in -+# other locations such as libcpp/configure.ac -+# -+# configure_default_options -+# Set to an initializer for configure_default_options -+# in configargs.h, based on --with-cpu et cetera. -+# -+# use_fixproto Set to "yes" if fixproto should be run normally, -+# "no" if fixproto should never be run. -+ -+# The following variables are used in each case-construct to build up the -+# outgoing variables: -+# -+# gnu_ld Set to yes or no depending on whether the target -+# system normally uses GNU ld. -+ -+out_file= -+tmake_file= -+extra_headers= -+use_gcc_tgmath=yes -+extra_passes= -+extra_parts= -+extra_programs= -+extra_objs= -+extra_gcc_objs= -+extra_options= -+c_target_objs= -+cxx_target_objs= -+fortran_target_objs= -+tm_defines= -+xm_defines= -+# Set this to force installation and use of collect2. -+use_collect2= -+# Set this to override the default target model. -+target_cpu_default= -+# Set this if gdb needs a dir command with `dirname $out_file` -+gdb_needs_out_file_path= -+# Set this to control which thread package will be used. -+thread_file= -+# Reinitialize these from the flag values every loop pass, since some -+# configure entries modify them. -+gas="$gas_flag" -+gnu_ld="$gnu_ld_flag" -+default_use_cxa_atexit=no -+target_gtfiles= -+need_64bit_hwint= -+ -+# Default to not using fixproto. Targets which need fixproto should -+# specifically set this to 'yes'. -+use_fixproto=no -+ -+# Don't carry these over build->host->target. Please. -+xm_file= -+md_file= -+ -+# Obsolete configurations. -+case ${target} in -+# Avoid generic cases below matching. -+ h8300-*-rtems* | h8300-*-elf* \ -+ | sh-*-elf* | sh-*-symbianelf* | sh-*-linux* | sh-*-netbsdelf* \ -+ | sh-*-rtems* | sh-wrs-vxworks) ;; -+ arm-*-coff* \ -+ | armel-*-coff* \ -+ | h8300-*-* \ -+ | i[34567]86-*-aout* \ -+ | i[34567]86-*-coff* \ -+ | m68k-*-aout* \ -+ | m68k-*-coff* \ -+ | sh-*-* \ -+ | pdp11-*-bsd \ -+ | rs6000-ibm-aix4.[12]* \ -+ | powerpc-ibm-aix4.[12]* \ -+ ) -+ if test "x$enable_obsolete" != xyes; then -+ echo "*** Configuration ${target} is obsolete." >&2 -+ echo "*** Specify --enable-obsolete to build it anyway." >&2 -+ echo "*** Support will be REMOVED in the next major release of GCC," >&2 -+ echo "*** unless a maintainer comes forward." >&2 -+ exit 1 -+ fi;; -+esac -+ -+# Unsupported targets list. Do not put an entry in this list unless -+# it would otherwise be caught by a more permissive pattern. The list -+# should be in alphabetical order. -+case ${target} in -+ i[34567]86-go32-* \ -+ | i[34567]86-*-go32* \ -+ | mips64orion*-*-rtems* \ -+ | sparc-hal-solaris2* \ -+ | thumb-*-* \ -+ | *-*-linux*aout* \ -+ | *-*-linux*coff* \ -+ | *-*-linux*libc1* \ -+ | *-*-linux*oldld* \ -+ | *-*-rtemsaout* \ -+ | *-*-rtemscoff* \ -+ | *-*-solaris2.[0-6] \ -+ | *-*-solaris2.[0-6].* \ -+ | *-*-sysv* \ -+ | vax-*-vms* \ -+ ) -+ echo "*** Configuration ${target} not supported" 1>&2 -+ exit 1 -+ ;; -+esac -+ -+# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be -+# updated in each machine entry. Also set default extra_headers for some -+# machines. -+tm_p_file= -+cpu_type=`echo ${target} | sed 's/-.*$//'` -+cpu_is_64bit= -+case ${target} in -+m32c*-*-*) -+ cpu_type=m32c -+ tmake_file=m32c/t-m32c -+ ;; -+alpha*-*-*) -+ cpu_type=alpha -+ need_64bit_hwint=yes -+ ;; -+am33_2.0-*-linux*) -+ cpu_type=mn10300 -+ ;; -+arm*-*-*) -+ cpu_type=arm -+ extra_headers="mmintrin.h arm_neon.h" -+ c_target_objs="arm-c.o" -+ cxx_target_objs="arm-c.o" -+ ;; -+bfin*-*) -+ cpu_type=bfin -+ ;; -+crisv32-*) -+ cpu_type=cris -+ ;; -+frv*) cpu_type=frv -+ ;; -+fido-*-*) -+ cpu_type=m68k -+ extra_headers=math-68881.h -+ ;; -+i[34567]86-*-*) -+ cpu_type=i386 -+ c_target_objs="i386-c.o" -+ cxx_target_objs="i386-c.o" -+ extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h -+ pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h -+ nmmintrin.h bmmintrin.h mmintrin-common.h -+ wmmintrin.h immintrin.h x86intrin.h avxintrin.h -+ cross-stdarg.h" -+ ;; -+x86_64-*-*) -+ cpu_type=i386 -+ c_target_objs="i386-c.o" -+ cxx_target_objs="i386-c.o" -+ extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h -+ pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h -+ nmmintrin.h bmmintrin.h mmintrin-common.h -+ wmmintrin.h immintrin.h x86intrin.h avxintrin.h -+ cross-stdarg.h" -+ need_64bit_hwint=yes -+ ;; -+ia64-*-*) -+ extra_headers=ia64intrin.h -+ need_64bit_hwint=yes -+ ;; -+hppa*-*-*) -+ cpu_type=pa -+ ;; -+m32r*-*-*) -+ cpu_type=m32r -+ ;; -+m68k-*-*) -+ extra_headers=math-68881.h -+ ;; -+mips*-*-*) -+ cpu_type=mips -+ need_64bit_hwint=yes -+ extra_headers="loongson.h" -+ ;; -+picochip-*-*) -+ cpu_type=picochip -+ ;; -+powerpc*-*-*) -+ cpu_type=rs6000 -+ extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h" -+ need_64bit_hwint=yes -+ case x$with_cpu in -+ xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell) -+ cpu_is_64bit=yes -+ ;; -+ esac -+ ;; -+rs6000*-*-*) -+ need_64bit_hwint=yes -+ ;; -+score*-*-*) -+ cpu_type=score -+ ;; -+sparc*-*-*) -+ cpu_type=sparc -+ need_64bit_hwint=yes -+ ;; -+spu*-*-*) -+ cpu_type=spu -+ need_64bit_hwint=yes -+ ;; -+s390*-*-*) -+ cpu_type=s390 -+ need_64bit_hwint=yes -+ ;; -+# Note the 'l'; we need to be able to match e.g. "shle" or "shl". -+sh[123456789lbe]*-*-* | sh-*-*) -+ cpu_type=sh -+ need_64bit_hwint=yes -+ ;; -+esac -+ -+tm_file=${cpu_type}/${cpu_type}.h -+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h -+then -+ tm_p_file=${cpu_type}/${cpu_type}-protos.h -+fi -+extra_modes= -+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def -+then -+ extra_modes=${cpu_type}/${cpu_type}-modes.def -+fi -+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt -+then -+ extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt" -+fi -+ -+case ${target} in -+i[34567]86-*-*) -+ if test "x$enable_cld" = xyes; then -+ tm_defines="${tm_defines} USE_IX86_CLD=1" -+ fi -+ ;; -+x86_64-*-*) -+ tm_file="i386/biarch64.h ${tm_file}" -+ if test "x$enable_cld" = xyes; then -+ tm_defines="${tm_defines} USE_IX86_CLD=1" -+ fi -+ ;; -+esac -+ -+# On a.out targets, we need to use collect2. -+case ${target} in -+*-*-*aout*) -+ use_collect2=yes -+ ;; -+esac -+ -+# Common parts for widely ported systems. -+case ${target} in -+*-*-darwin*) -+ tm_file="${tm_file} darwin.h" -+ case ${target} in -+ *-*-darwin[912]*) -+ tm_file="${tm_file} darwin9.h" -+ ;; -+ esac -+ tm_file="${tm_file} ${cpu_type}/darwin.h" -+ tm_p_file="${tm_p_file} darwin-protos.h" -+ tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin" -+ target_gtfiles="\$(srcdir)/config/darwin.c" -+ extra_options="${extra_options} darwin.opt" -+ c_target_objs="${c_target_objs} darwin-c.o" -+ cxx_target_objs="${cxx_target_objs} darwin-c.o" -+ fortran_target_objs="darwin-f.o" -+ extra_objs="darwin.o" -+ extra_gcc_objs="darwin-driver.o" -+ default_use_cxa_atexit=yes -+ case ${enable_threads} in -+ "" | yes | posix) thread_file='posix' ;; -+ esac -+ ;; -+*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*) -+ # This is the place-holder for the generic a.out configuration -+ # of FreeBSD. No actual configuration resides here since -+ # there was only ever a bare-bones ix86 configuration for -+ # a.out and it exists solely in the machine-specific section. -+ # This place-holder must exist to avoid dropping into -+ # the generic ELF configuration of FreeBSD (i.e. it must be -+ # ordered before that section). -+ ;; -+*-*-freebsd*) -+ # This is the generic ELF configuration of FreeBSD. Later -+ # machine-specific sections may refine and add to this -+ # configuration. -+ # -+ # Due to tm_file entry ordering issues that vary between cpu -+ # architectures, we only define fbsd_tm_file to allow the -+ # machine-specific section to dictate the final order of all -+ # entries of tm_file with the minor exception that components -+ # of the tm_file set here will always be of the form: -+ # -+ # freebsd.h [freebsd-.h ...] freebsd-spec.h freebsd.h -+ # -+ # The machine-specific section should not tamper with this -+ # ordering but may order all other entries of tm_file as it -+ # pleases around the provided core setting. -+ gas=yes -+ gnu_ld=yes -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'` -+ tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}" -+ tmake_file="t-slibgcc-elf-ver t-freebsd" -+ case ${enable_threads} in -+ no) -+ fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h" -+ ;; -+ "" | yes | posix) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-freebsd-thread" -+ # Before 5.0, FreeBSD can't bind shared libraries to -lc -+ # when "optionally" threaded via weak pthread_* checks. -+ case ${target} in -+ *-*-freebsd[34] | *-*-freebsd[34].*) -+ tmake_file="${tmake_file} t-slibgcc-nolc-override" -+ ;; -+ esac -+ ;; -+ *) -+ echo 'Unknown thread configuration for FreeBSD' -+ exit 1 -+ ;; -+ esac -+ fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h" -+ ;; -+*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) -+ extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" -+ gas=yes -+ gnu_ld=yes -+ case ${enable_threads} in -+ "" | yes | posix) thread_file='posix' ;; -+ esac -+ tmake_file="t-slibgcc-elf-ver t-linux" -+ case $target in -+ *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu) -+ :;; -+ *-*-gnu*) -+ tmake_file="$tmake_file t-gnu";; -+ esac -+ # glibc / uclibc switch. uclibc isn't usable for GNU/Hurd and neither for -+ # GNU/k*BSD. -+ case $target in -+ *linux*) -+ extra_options="$extra_options linux.opt";; -+ *) -+ tm_defines="$tm_defines OPTION_GLIBC=1";; -+ esac -+ case ${target} in -+ *-*-*uclibc*) -+ tm_defines="${tm_defines} UCLIBC_DEFAULT=1" -+ ;; -+ *) -+ tm_defines="${tm_defines} UCLIBC_DEFAULT=0" -+ ;; -+ esac -+ # Assume that glibc or uClibc are being used and so __cxa_atexit is provided. -+ default_use_cxa_atexit=yes -+ use_gcc_tgmath=no -+ ;; -+*-*-netbsd*) -+ tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic" -+ gas=yes -+ gnu_ld=yes -+ -+ # NetBSD 2.0 and later get POSIX threads enabled by default. -+ # Allow them to be explicitly enabled on any other version. -+ case ${enable_threads} in -+ "") -+ case ${target} in -+ *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*) -+ thread_file='posix' -+ tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS" -+ ;; -+ esac -+ ;; -+ yes | posix) -+ thread_file='posix' -+ tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS" -+ ;; -+ esac -+ -+ # NetBSD 1.7 and later are set up to use GCC's crtstuff for -+ # ELF configurations. We will clear extra_parts in the -+ # a.out configurations. -+ case ${target} in -+ *-*-netbsd*1.[7-9]* | *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*) -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" -+ ;; -+ esac -+ -+ # NetBSD 2.0 and later provide __cxa_atexit(), which we use by -+ # default (unless overridden by --disable-__cxa_atexit). -+ case ${target} in -+ *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*) -+ default_use_cxa_atexit=yes -+ ;; -+ esac -+ ;; -+*-*-openbsd*) -+ tmake_file="t-libc-ok t-openbsd t-libgcc-pic" -+ case ${enable_threads} in -+ yes) -+ thread_file='posix' -+ tmake_file="${tmake_file} t-openbsd-thread" -+ ;; -+ esac -+ case ${target} in -+ *-*-openbsd2.*|*-*-openbsd3.[012]) -+ tm_defines="${tm_defines} HAS_LIBC_R=1" ;; -+ esac -+ ;; -+*-*-rtems*) -+ case ${enable_threads} in -+ yes) thread_file='rtems' ;; -+ esac -+ ;; -+*-*-vxworks*) -+ tmake_file=t-vxworks -+ xm_defines=POSIX -+ extra_options="${extra_options} vxworks.opt" -+ extra_objs=vxworks.o -+ case ${enable_threads} in -+ no) ;; -+ "" | yes | vxworks) thread_file='vxworks' ;; -+ *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;; -+ esac -+ ;; -+*-*-elf) -+ # Assume that newlib is being used and so __cxa_atexit is provided. -+ default_use_cxa_atexit=yes -+ ;; -+esac -+ -+case ${target} in -+# Support site-specific machine types. -+*local*) -+ rest=`echo ${target} | sed -e "s/$cpu_type-//"` -+ tm_file=${cpu_type}/$rest.h -+ if test -f $srcdir/config/${cpu_type}/xm-$rest.h -+ then xm_file=${cpu_type}/xm-$rest.h -+ fi -+ if test -f $srcdir/config/${cpu_type}/t-$rest -+ then tmake_file=${cpu_type}/t-$rest -+ fi -+ ;; -+alpha*-*-linux*) -+ tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux" -+ ;; -+alpha*-*-gnu*) -+ tm_file="$tm_file alpha/elf.h alpha/linux.h alpha/linux-elf.h gnu.h alpha/gnu.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee" -+ ;; -+alpha*-*-freebsd*) -+ tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" -+ ;; -+alpha*-*-netbsd*) -+ tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h" -+ target_cpu_default="MASK_GAS" -+ tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" -+ ;; -+alpha*-*-openbsd*) -+ tm_defines="${tm_defines} OBSD_NO_DYNAMIC_LIBRARIES OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT" -+ tm_file="alpha/alpha.h openbsd.h alpha/openbsd.h" -+ # default x-alpha is only appropriate for dec-osf. -+ target_cpu_default="MASK_GAS" -+ tmake_file="alpha/t-alpha alpha/t-ieee" -+ ;; -+alpha*-dec-osf[45]*) -+ if test x$stabs = xyes -+ then -+ tm_file="${tm_file} dbx.h" -+ fi -+ if test x$gas != xyes -+ then -+ extra_passes="mips-tfile mips-tdump" -+ fi -+ use_collect2=yes -+ tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf4" -+ tm_file="${tm_file} alpha/osf.h" -+ extra_headers=va_list.h -+ case ${target} in -+ *-*-osf4*) -+ # Define TARGET_SUPPORT_ARCH except on 4.0a. -+ case ${target} in -+ *-*-osf4.0a) ;; -+ *) tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" -+ esac -+ ;; -+ *-*-osf5*) -+ tm_file="${tm_file} alpha/osf5.h" -+ tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" -+ ;; -+ esac -+ case ${enable_threads} in -+ "" | yes | posix) -+ thread_file='posix' -+ tmake_file="${tmake_file} alpha/t-osf-pthread" -+ ;; -+ esac -+ ;; -+alpha64-dec-*vms*) -+ tm_file="${tm_file} alpha/vms.h alpha/vms64.h" -+ xm_file="alpha/xm-vms.h" -+ tmake_file="alpha/t-alpha alpha/t-vms alpha/t-vms64 alpha/t-ieee" -+ prefix=/gnu -+ local_prefix=/gnu -+ ;; -+alpha*-dec-*vms*) -+ tm_file="${tm_file} alpha/vms.h" -+ xm_file=alpha/xm-vms.h -+ tmake_file="alpha/t-alpha alpha/t-vms alpha/t-ieee" -+ prefix=/gnu -+ local_prefix=/gnu -+ ;; -+arc-*-elf*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" -+ extra_parts="crtinit.o crtfini.o" -+ ;; -+arm-*-coff* | armel-*-coff*) -+ tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h" -+ tmake_file="arm/t-arm arm/t-arm-coff" -+ ;; -+arm-wrs-vxworks) -+ tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h" -+ tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" -+ ;; -+arm*-*-freebsd*) -+ tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h arm/aout.h arm/freebsd.h arm/arm.h" -+ tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf" -+ ;; -+arm*-*-netbsdelf*) -+ tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h" -+ tmake_file="${tmake_file} arm/t-arm arm/t-netbsd" -+ ;; -+arm*-*-netbsd*) -+ tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h" -+ tmake_file="t-netbsd arm/t-arm arm/t-netbsd" -+ extra_parts="" -+ use_collect2=yes -+ ;; -+arm*-*-linux*) # ARM GNU/Linux with ELF -+ tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" -+ case $target in -+ arm*b-*) -+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" -+ ;; -+ esac -+ tmake_file="${tmake_file} t-linux arm/t-arm" -+ case ${target} in -+ arm*-*-linux-*eabi) -+ tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" -+ tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" -+ # The BPABI long long divmod functions return a 128-bit value in -+ # registers r0-r3. Correctly modeling that requires the use of -+ # TImode. -+ need_64bit_hwint=yes -+ # The EABI requires the use of __cxa_atexit. -+ default_use_cxa_atexit=yes -+ ;; -+ *) -+ tmake_file="$tmake_file arm/t-linux" -+ ;; -+ esac -+ tm_file="$tm_file arm/aout.h arm/arm.h" -+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" -+ ;; -+arm*-*-uclinux*) # ARM ucLinux -+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h" -+ tmake_file="arm/t-arm arm/t-arm-elf" -+ case ${target} in -+ arm*-*-uclinux*eabi) -+ tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h" -+ tmake_file="$tmake_file arm/t-bpabi" -+ # The BPABI long long divmod functions return a 128-bit value in -+ # registers r0-r3. Correctly modeling that requires the use of -+ # TImode. -+ need_64bit_hwint=yes -+ # The EABI requires the use of __cxa_atexit. -+ default_use_cxa_atexit=yes -+ esac -+ tm_file="$tm_file arm/aout.h arm/arm.h" -+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" -+ ;; -+arm*-*-ecos-elf) -+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h" -+ tmake_file="arm/t-arm arm/t-arm-elf" -+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" -+ ;; -+arm*-*-eabi* | arm*-*-symbianelf* ) -+ # The BPABI long long divmod functions return a 128-bit value in -+ # registers r0-r3. Correctly modeling that requires the use of -+ # TImode. -+ need_64bit_hwint=yes -+ default_use_cxa_atexit=yes -+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" -+ tmake_file="arm/t-arm arm/t-arm-elf" -+ case ${target} in -+ arm*-*-eabi*) -+ tm_file="$tm_file arm/eabi.h" -+ tmake_file="${tmake_file} arm/t-bpabi" -+ extra_options="${extra_options} arm/eabi.opt" -+ ;; -+ arm*-*-symbianelf*) -+ tm_file="${tm_file} arm/symbian.h" -+ # We do not include t-bpabi for Symbian OS because the system -+ # provides its own implementation of the BPABI functions. -+ tmake_file="${tmake_file} arm/t-symbian" -+ ;; -+ esac -+ tm_file="${tm_file} arm/aout.h arm/arm.h" -+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" -+ ;; -+arm*-*-rtems*) -+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h" -+ tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" -+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" -+ ;; -+arm*-*-elf) -+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" -+ tmake_file="arm/t-arm arm/t-arm-elf" -+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" -+ ;; -+arm*-wince-pe*) -+ tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h" -+ tmake_file="arm/t-arm arm/t-wince-pe" -+ extra_options="${extra_options} arm/pe.opt" -+ extra_objs="pe.o" -+ ;; -+arm-*-pe*) -+ tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h" -+ tmake_file="arm/t-arm arm/t-pe" -+ extra_options="${extra_options} arm/pe.opt" -+ extra_objs="pe.o" -+ ;; -+avr-*-rtems*) -+ tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h" -+ tmake_file="avr/t-avr t-rtems avr/t-rtems" -+ ;; -+avr-*-*) -+ tm_file="avr/avr.h dbxelf.h" -+ ;; -+bfin*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" -+ tmake_file=bfin/t-bfin-elf -+ use_collect2=no -+ ;; -+bfin*-uclinux*) -+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h bfin/uclinux.h" -+ tmake_file=bfin/t-bfin-uclinux -+ tm_defines="${tm_defines} UCLIBC_DEFAULT=1" -+ extra_options="${extra_options} linux.opt" -+ use_collect2=no -+ ;; -+bfin*-linux-uclibc*) -+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h bfin/linux.h ./linux-sysroot-suffix.h" -+ tmake_file="t-slibgcc-elf-ver bfin/t-bfin-linux" -+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+ use_collect2=no -+ ;; -+bfin*-rtems*) -+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h" -+ tmake_file="bfin/t-bfin t-rtems bfin/t-rtems" -+ ;; -+bfin*-*) -+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" -+ tmake_file=bfin/t-bfin -+ use_collect2=no -+ ;; -+crisv32-*-elf | crisv32-*-none) -+ tm_file="dbxelf.h elfos.h ${tm_file}" -+ tmake_file="cris/t-cris" -+ target_cpu_default=32 -+ gas=yes -+ extra_options="${extra_options} cris/elf.opt" -+ ;; -+cris-*-elf | cris-*-none) -+ tm_file="dbxelf.h elfos.h ${tm_file}" -+ tmake_file="cris/t-cris cris/t-elfmulti" -+ gas=yes -+ extra_options="${extra_options} cris/elf.opt" -+ ;; -+crisv32-*-linux* | cris-*-linux*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" -+ # We need to avoid using t-linux, so override default tmake_file -+ tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux" -+ extra_options="${extra_options} cris/linux.opt" -+ case $target in -+ cris-*-*) -+ target_cpu_default=10 -+ ;; -+ crisv32-*-*) -+ target_cpu_default=32 -+ ;; -+ esac -+ ;; -+crx-*-elf) -+ tm_file="elfos.h ${tm_file}" -+ extra_parts="crtbegin.o crtend.o" -+ use_collect2=no -+ ;; -+fr30-*-elf) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" -+ tmake_file=fr30/t-fr30 -+ extra_parts="crti.o crtn.o crtbegin.o crtend.o" -+ ;; -+frv-*-elf) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} frv/frv-abi.h" -+ tmake_file=frv/t-frv -+ ;; -+frv-*-*linux*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} \ -+ linux.h frv/linux.h frv/frv-abi.h" -+ tmake_file="${tmake_file} frv/t-frv frv/t-linux" -+ ;; -+h8300-*-rtems*) -+ tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems" -+ tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h" -+ ;; -+h8300-*-elf*) -+ tmake_file="h8300/t-h8300 h8300/t-elf" -+ tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h" -+ ;; -+h8300-*-*) -+ tm_file="h8300/h8300.h dbxcoff.h h8300/coff.h" -+ ;; -+hppa*64*-*-linux*) -+ target_cpu_default="MASK_PA_11|MASK_PA_20" -+ tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h svr4.h linux.h \ -+ pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h pa/pa64-linux.h" -+ tmake_file="${tmake_file} pa/t-linux64" -+ gas=yes gnu_ld=yes -+ need_64bit_hwint=yes -+ ;; -+hppa*-*-linux*) -+ target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS" -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \ -+ pa/pa32-regs.h pa/pa32-linux.h" -+ tmake_file="${tmake_file} pa/t-linux" -+ # Set the libgcc version number -+ if test x$sjlj = x1; then -+ tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" -+ else -+ tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -+ fi -+ ;; -+# port not yet contributed. -+#hppa*-*-openbsd*) -+# target_cpu_default="MASK_PA_11" -+# ;; -+hppa[12]*-*-hpux10*) -+ case ${target} in -+ hppa1.1-*-* | hppa2*-*-*) -+ target_cpu_default="MASK_PA_11" -+ ;; -+ esac -+ tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ -+ pa/pa-hpux.h pa/pa-hpux10.h" -+ extra_options="${extra_options} pa/pa-hpux.opt" -+ case ${target} in -+ *-*-hpux10.[1-9]*) -+ tm_file="${tm_file} pa/pa-hpux1010.h" -+ extra_options="${extra_options} pa/pa-hpux1010.opt" -+ ;; -+ esac -+ tmake_file="pa/t-pa-hpux10 pa/t-pa-hpux pa/t-hpux-shlib" -+ case ${enable_threads} in -+ "") -+ if test x$have_pthread_h = xyes ; then -+ tmake_file="${tmake_file} pa/t-dce-thr" -+ fi -+ ;; -+ yes | dce) -+ tmake_file="${tmake_file} pa/t-dce-thr" -+ ;; -+ esac -+ # Set the libgcc version number -+ if test x$sjlj = x1; then -+ tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" -+ else -+ tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -+ fi -+ use_collect2=yes -+ gas=yes -+ ;; -+hppa*64*-*-hpux11*) -+ target_cpu_default="MASK_PA_11|MASK_PA_20" -+ if test x$gnu_ld = xyes -+ then -+ target_cpu_default="${target_cpu_default}|MASK_GNU_LD" -+ fi -+ tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \ -+ pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ -+ pa/pa-hpux11.h" -+ case ${target} in -+ *-*-hpux11.[1-9]*) -+ tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h" -+ extra_options="${extra_options} pa/pa-hpux1111.opt" -+ ;; -+ *) -+ tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h" -+ ;; -+ esac -+ extra_options="${extra_options} pa/pa-hpux.opt \ -+ pa/pa-hpux1010.opt pa/pa64-hpux.opt" -+ need_64bit_hwint=yes -+ tmake_file="pa/t-pa64 pa/t-pa-hpux pa/t-hpux-shlib" -+ # Set the libgcc version number -+ if test x$sjlj = x1; then -+ tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" -+ else -+ tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -+ fi -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ -+ libgcc_stub.a" -+ case x${enable_threads} in -+ x | xyes | xposix ) -+ thread_file=posix -+ ;; -+ esac -+ gas=yes -+ ;; -+hppa[12]*-*-hpux11*) -+ case ${target} in -+ hppa1.1-*-* | hppa2*-*-*) -+ target_cpu_default="MASK_PA_11" -+ ;; -+ esac -+ tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ -+ pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h" -+ extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt" -+ case ${target} in -+ *-*-hpux11.[1-9]*) -+ tm_file="${tm_file} pa/pa-hpux1111.h" -+ extra_options="${extra_options} pa/pa-hpux1111.opt" -+ ;; -+ esac -+ tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib" -+ # Set the libgcc version number -+ if test x$sjlj = x1; then -+ tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" -+ else -+ tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" -+ fi -+ case x${enable_threads} in -+ x | xyes | xposix ) -+ thread_file=posix -+ ;; -+ esac -+ use_collect2=yes -+ gas=yes -+ ;; -+i[34567]86-*-darwin*) -+ need_64bit_hwint=yes -+ -+ # This is so that '.../configure && make' doesn't fail due to -+ # config.guess deciding that the configuration is i386-*-darwin* and -+ # then this file using that to set --with-cpu=i386 which has no -m64 -+ # support. -+ with_cpu=${with_cpu:-generic} -+ tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm" -+ ;; -+x86_64-*-darwin*) -+ with_cpu=${with_cpu:-generic} -+ tmake_file="${tmake_file} t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm" -+ tm_file="${tm_file} ${cpu_type}/darwin64.h" -+ ;; -+i[34567]86-*-elf*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h" -+ tmake_file="${tmake_file} i386/t-i386elf t-svr4" -+ ;; -+x86_64-*-elf*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/x86-64.h" -+ tmake_file="${tmake_file} i386/t-i386elf t-svr4" -+ ;; -+i[34567]86-*-aout*) -+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h i386/i386-aout.h" -+ ;; -+i[34567]86-*-freebsd*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h" -+ ;; -+x86_64-*-freebsd*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" -+ tmake_file="${tmake_file} i386/t-crtstuff" -+ ;; -+i[34567]86-*-netbsdelf*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" -+ ;; -+i[34567]86-*-netbsd*) -+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h" -+ tmake_file="${tmake_file} t-netbsd" -+ extra_parts="" -+ use_collect2=yes -+ ;; -+x86_64-*-netbsd*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" -+ tmake_file="${tmake_file} i386/t-crtstuff" -+ ;; -+i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) -+ tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h" -+ # needed to unconfuse gdb -+ tmake_file="${tmake_file} t-libc-ok t-openbsd i386/t-openbsd" -+ # we need collect2 until our bug is fixed... -+ use_collect2=yes -+ ;; -+i[34567]86-*-openbsd*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" -+ tm_file="${tm_file} openbsd.h i386/openbsdelf.h" -+ gas=yes -+ gnu_ld=yes -+ ;; -+i[34567]86-*-coff*) -+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h" -+ ;; -+i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) -+ # Intel 80386's running GNU/* -+ # with ELF format using glibc 2 -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h" -+ case ${target} in -+ i[34567]86-*-linux*) -+ if test x$enable_targets = xall; then -+ tm_file="${tm_file} i386/x86-64.h i386/linux64.h" -+ tm_defines="${tm_defines} TARGET_BI_ARCH=1" -+ tmake_file="${tmake_file} i386/t-linux64" -+ need_64bit_hwint=yes -+ case X"${with_cpu}" in -+ Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx) -+ ;; -+ X) -+ if test x$with_cpu_64 = x; then -+ with_cpu_64=generic -+ fi -+ ;; -+ *) -+ echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 -+ echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 -+ exit 1 -+ ;; -+ esac -+ else -+ tm_file="${tm_file} i386/linux.h" -+ fi -+ ;; -+ i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;; -+ i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; -+ i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/linux.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;; -+ i[34567]86-*-gnu*) tm_file="$tm_file i386/linux.h gnu.h i386/gnu.h";; -+ esac -+ tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" -+ ;; -+x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \ -+ i386/x86-64.h i386/linux64.h" -+ case ${target} in -+ x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;; -+ x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;; -+ esac -+ tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" -+ ;; -+i[34567]86-pc-msdosdjgpp*) -+ xm_file=i386/xm-djgpp.h -+ tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h" -+ tmake_file="${tmake_file} i386/t-djgpp" -+ extra_options="${extra_options} i386/djgpp.opt" -+ gnu_ld=yes -+ gas=yes -+ ;; -+i[34567]86-*-lynxos*) -+ xm_defines=POSIX -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h" -+ tmake_file="${tmake_file} i386/t-crtstuff t-lynx" -+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+ extra_options="${extra_options} lynx.opt" -+ thread_file=lynx -+ gnu_ld=yes -+ gas=yes -+ ;; -+i[3456x]86-*-netware*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h tm-dwarf2.h i386/netware.h" -+ tmake_file="${tmake_file} i386/t-netware" -+ extra_objs=netware.o -+ case /${with_ld} in -+ */nwld) -+ extra_objs="$extra_objs nwld.o" -+ tm_file="${tm_file} i386/nwld.h" -+ tmake_file="${tmake_file} i386/t-nwld" -+ extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def" -+ ;; -+ esac -+ case x${enable_threads} in -+ x | xyes | xposix) thread_file='posix';; -+ xnks) thread_file='nks';; -+ xno) ;; -+ *) echo 'Unknown thread configuration for NetWare' >&2; exit 1;; -+ esac -+ ;; -+i[34567]86-*-nto-qnx*) -+ tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h svr4.h i386/unix.h i386/nto.h" -+ tmake_file="${tmake_file} i386/t-nto" -+ gnu_ld=yes -+ gas=yes -+ ;; -+i[34567]86-*-rtems*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h" -+ extra_parts="crtbegin.o crtend.o crti.o crtn.o" -+ tmake_file="${tmake_file} i386/t-rtems-i386 i386/t-crtstuff t-rtems" -+ ;; -+i[34567]86-*-solaris2*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h" -+ case ${target} in -+ *-*-solaris2.1[0-9]*) -+ tm_file="${tm_file} sol2-10.h" -+ ;; -+ esac -+ tm_file="${tm_file} i386/sol2.h" -+ tmake_file="${tmake_file} t-sol2 t-svr4" -+ c_target_objs="${c_target_objs} sol2-c.o" -+ cxx_target_objs="${cxx_target_objs} sol2-c.o" -+ extra_objs="sol2.o" -+ tm_p_file="${tm_p_file} sol2-protos.h" -+ if test x$gnu_ld = xyes; then -+ tmake_file="$tmake_file t-slibgcc-elf-ver" -+ tm_defines="${tm_defines} TARGET_GNU_LD=1" -+ else -+ tmake_file="$tmake_file t-slibgcc-sld" -+ fi -+ if test x$gas = xyes; then -+ tm_file="usegas.h ${tm_file}" -+ fi -+ tm_file="$tm_file tm-dwarf2.h" -+ case ${target} in -+ *-*-solaris2.1[0-9]*) -+ tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h" -+ tm_defines="${tm_defines} TARGET_BI_ARCH=1" -+ tmake_file="$tmake_file i386/t-sol2-10" -+ # i386/t-crtstuff only affects libgcc. Its inclusion -+ # depends on a runtime test and is thus performed in -+ # libgcc/configure.ac instead. -+ need_64bit_hwint=yes -+ case X"${with_cpu}" in -+ Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx) -+ ;; -+ X) -+ if test x$with_cpu_64 = x; then -+ with_cpu_64=generic -+ fi -+ ;; -+ *) -+ echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 -+ echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ esac -+ case ${enable_threads}:${have_pthread_h}:${have_thread_h} in -+ "":yes:* | yes:yes:* ) -+ thread_file=posix -+ ;; -+ "":*:yes | yes:*:yes ) -+ thread_file=solaris -+ ;; -+ esac -+ ;; -+i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) -+ tm_file="${tm_file} i386/unix.h i386/att.h elfos.h svr4.h vx-common.h" -+ case ${target} in -+ *-vxworksae*) -+ tm_file="${tm_file} vxworksae.h i386/vx-common.h i386/vxworksae.h" -+ tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae" -+ ;; -+ *) -+ tm_file="${tm_file} vxworks.h i386/vx-common.h i386/vxworks.h" -+ tmake_file="${tmake_file} i386/t-vxworks" -+ ;; -+ esac -+ ;; -+i[34567]86-*-pe | i[34567]86-*-cygwin*) -+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h" -+ xm_file=i386/xm-cygwin.h -+ # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h -+ if test x$sjlj = x0; then -+ tmake_eh_file="i386/t-dw2-eh" -+ else -+ tmake_eh_file="i386/t-sjlj-eh" -+ fi -+ tmake_file="${tmake_file} ${tmake_eh_file} i386/t-cygming i386/t-cygwin" -+ target_gtfiles="\$(srcdir)/config/i386/winnt.c" -+ extra_options="${extra_options} i386/cygming.opt" -+ extra_objs="winnt.o winnt-stubs.o" -+ c_target_objs="${c_target_objs} cygwin2.o msformat-c.o" -+ cxx_target_objs="${cxx_target_objs} cygwin2.o winnt-cxx.o msformat-c.o" -+ extra_gcc_objs=cygwin1.o -+ if test x$enable_threads = xyes; then -+ thread_file='posix' -+ fi -+ ;; -+i[34567]86-*-mingw* | x86_64-*-mingw*) -+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h" -+ xm_file=i386/xm-mingw32.h -+ case ${target} in -+ x86_64-*-*) -+ need_64bit_hwint=yes -+ ;; -+ *) -+ ;; -+ esac -+ # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h -+ if test x$sjlj = x0; then -+ tmake_eh_file="i386/t-dw2-eh" -+ else -+ tmake_eh_file="i386/t-sjlj-eh" -+ fi -+ tmake_file="${tmake_file} ${tmake_eh_file} i386/t-cygming i386/t-mingw32" -+ target_gtfiles="\$(srcdir)/config/i386/winnt.c" -+ extra_options="${extra_options} i386/cygming.opt i386/mingw.opt" -+ extra_objs="winnt.o winnt-stubs.o" -+ c_target_objs="${c_target_objs} msformat-c.o" -+ cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" -+ default_use_cxa_atexit=yes -+ case ${enable_threads} in -+ "" | yes | win32) -+ thread_file='win32' -+ tmake_file="${tmake_file} i386/t-gthr-win32" -+ ;; -+ esac -+ case ${target} in -+ x86_64-*-mingw*) -+ tmake_file="${tmake_file} i386/t-crtfm" -+ ;; -+ *) -+ ;; -+ esac -+ case ${target} in -+ *mingw32crt*) -+ tm_file="${tm_file} i386/crtdll.h" -+ ;; -+ *mingw32msv* | *mingw*) -+ ;; -+ esac -+ ;; -+i[34567]86-*-interix3*) -+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h" -+ tmake_file="${tmake_file} i386/t-interix" -+ extra_objs=winnt.o -+ target_gtfiles="\$(srcdir)/config/i386/winnt.c" -+ if test x$enable_threads = xyes ; then -+ thread_file='posix' -+ fi -+ if test x$stabs = xyes ; then -+ tm_file="${tm_file} dbxcoff.h" -+ fi -+ ;; -+ia64*-*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/elf.h" -+ tmake_file="ia64/t-ia64" -+ target_cpu_default="0" -+ if test x$gas = xyes -+ then -+ target_cpu_default="${target_cpu_default}|MASK_GNU_AS" -+ fi -+ if test x$gnu_ld = xyes -+ then -+ target_cpu_default="${target_cpu_default}|MASK_GNU_LD" -+ fi -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" -+ ;; -+ia64*-*-freebsd*) -+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h" -+ target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" -+ tmake_file="${tmake_file} ia64/t-ia64" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" -+ ;; -+ia64*-*-linux*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h" -+ tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc" -+ if test x$with_system_libunwind != xyes ; then -+ tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" -+ fi -+ target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" -+ ;; -+ia64*-*-hpux*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h" -+ tmake_file="ia64/t-ia64 ia64/t-hpux" -+ target_cpu_default="MASK_GNU_AS" -+ case x$enable_threads in -+ x | xyes | xposix ) -+ thread_file=posix -+ ;; -+ esac -+ use_collect2=no -+ c_target_objs="ia64-c.o" -+ cxx_target_objs="ia64-c.o" -+ extra_options="${extra_options} ia64/ilp32.opt" -+ ;; -+iq2000*-*-elf*) -+ tm_file="svr4.h elfos.h iq2000/iq2000.h" -+ tmake_file=iq2000/t-iq2000 -+ out_file=iq2000/iq2000.c -+ md_file=iq2000/iq2000.md -+ ;; -+m32r-*-elf*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" -+ extra_parts="crtinit.o crtfini.o" -+ ;; -+m32rle-*-elf*) -+ tm_file="dbxelf.h elfos.h svr4.h m32r/little.h ${tm_file}" -+ extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o" -+ ;; -+m32r-*-rtems*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32r/rtems.h rtems.h" -+ tmake_file="m32r/t-m32r t-rtems" -+ extra_parts="crtinit.o crtfini.o" -+ ;; -+m32r-*-linux*) -+ tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} m32r/linux.h" -+ # We override the tmake_file for linux -- why? -+ tmake_file="t-slibgcc-elf-ver m32r/t-linux" -+ gnu_ld=yes -+ if test x$enable_threads = xyes; then -+ thread_file='posix' -+ fi -+ ;; -+m32rle-*-linux*) -+ tm_file="dbxelf.h elfos.h svr4.h linux.h m32r/little.h ${tm_file} m32r/linux.h" -+ # We override the tmake_file for linux -- why? -+ tmake_file="t-slibgcc-elf-ver m32r/t-linux" -+ gnu_ld=yes -+ if test x$enable_threads = xyes; then -+ thread_file='posix' -+ fi -+ ;; -+# m68hc11 and m68hc12 share the same machine description. -+m68hc11-*-*|m6811-*-*) -+ tm_file="dbxelf.h elfos.h usegas.h m68hc11/m68hc11.h" -+ tm_p_file="m68hc11/m68hc11-protos.h" -+ md_file="m68hc11/m68hc11.md" -+ out_file="m68hc11/m68hc11.c" -+ tmake_file="m68hc11/t-m68hc11" -+ ;; -+m68hc12-*-*|m6812-*-*) -+ tm_file="m68hc11/m68hc12.h dbxelf.h elfos.h usegas.h m68hc11/m68hc11.h" -+ tm_p_file="m68hc11/m68hc11-protos.h" -+ md_file="m68hc11/m68hc11.md" -+ out_file="m68hc11/m68hc11.c" -+ tmake_file="m68hc11/t-m68hc11" -+ extra_options="${extra_options} m68hc11/m68hc11.opt" -+ ;; -+m68k-*-aout*) -+ default_m68k_cpu=68020 -+ default_cf_cpu=5206 -+ tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-mlibs" -+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h" -+ ;; -+m68k-*-coff*) -+ default_m68k_cpu=68020 -+ default_cf_cpu=5206 -+ tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-mlibs" -+ tm_defines="${tm_defines} MOTOROLA=1" -+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h" -+ ;; -+m68k-*-elf* | fido-*-elf*) -+ case ${target} in -+ fido-*-elf*) -+ # Check that $with_cpu makes sense. -+ case $with_cpu in -+ "" | "fidoa") -+ ;; -+ *) -+ echo "Cannot accept --with-cpu=$with_cpu" -+ exit 1 -+ ;; -+ esac -+ with_cpu=fidoa -+ ;; -+ *) -+ default_m68k_cpu=68020 -+ default_cf_cpu=5206 -+ ;; -+ esac -+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" -+ tm_defines="${tm_defines} MOTOROLA=1" -+ tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf" -+ # Add multilibs for targets other than fido. -+ case ${target} in -+ fido-*-elf*) -+ ;; -+ *) -+ tmake_file="$tmake_file m68k/t-mlibs" -+ ;; -+ esac -+ extra_parts="crtbegin.o crtend.o" -+ ;; -+m68k*-*-netbsdelf*) -+ default_m68k_cpu=68020 -+ default_cf_cpu=5475 -+ tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h" -+ tm_defines="${tm_defines} MOTOROLA=1" -+ ;; -+m68k*-*-openbsd*) -+ default_m68k_cpu=68020 -+ default_cf_cpu=5475 -+ # needed to unconfuse gdb -+ tm_defines="${tm_defines} OBSD_OLD_GAS" -+ tm_file="${tm_file} openbsd.h m68k/openbsd.h" -+ tmake_file="t-libc-ok t-openbsd m68k/t-openbsd" -+ # we need collect2 until our bug is fixed... -+ use_collect2=yes -+ ;; -+m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux -+ # with uClibc, using the original -+ # m68k-elf-based ABI -+ default_m68k_cpu=68020 -+ default_cf_cpu=5206 -+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h" -+ tm_defines="${tm_defines} MOTOROLA=1" -+ tmake_file="m68k/t-floatlib m68k/t-uclinux" -+ ;; -+m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux -+ # with uClibc, using the new GNU/Linux-style -+ # ABI. -+ default_m68k_cpu=68020 -+ default_cf_cpu=5206 -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" -+ tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1" -+ extra_options="${extra_options} linux.opt" -+ tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" -+ ;; -+m68k-*-linux*) # Motorola m68k's running GNU/Linux -+ # with ELF format using glibc 2 -+ # aka the GNU/Linux C library 6. -+ default_m68k_cpu=68020 -+ default_cf_cpu=5475 -+ with_arch=${with_arch:-m68k} -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h m68k/linux.h ./sysroot-suffix.h" -+ extra_options="${extra_options} m68k/ieee.opt" -+ tm_defines="${tm_defines} MOTOROLA=1" -+ tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs" -+ # if not configured with --enable-sjlj-exceptions, bump the -+ # libgcc version number -+ if test x$sjlj != x1; then -+ tmake_file="$tmake_file m68k/t-slibgcc-elf-ver" -+ fi -+ ;; -+m68k-*-rtems*) -+ default_m68k_cpu=68020 -+ default_cf_cpu=5206 -+ tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems m68k/t-mlibs" -+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h" -+ tm_defines="${tm_defines} MOTOROLA=1" -+ extra_parts="crtbegin.o crtend.o" -+ ;; -+mcore-*-elf) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} mcore/mcore-elf.h" -+ tmake_file=mcore/t-mcore -+ inhibit_libc=true -+ ;; -+mcore-*-pe*) -+ tm_file="svr3.h dbxcoff.h ${tm_file} mcore/mcore-pe.h" -+ tmake_file=mcore/t-mcore-pe -+ inhibit_libc=true -+ ;; -+mips-sgi-irix[56]*) -+ tm_file="elfos.h ${tm_file} mips/iris.h" -+ tmake_file="mips/t-iris mips/t-slibgcc-irix" -+ target_cpu_default="MASK_ABICALLS" -+ case ${target} in -+ *-*-irix5*) -+ tm_file="${tm_file} mips/iris5.h" -+ ;; -+ -+ *-*-irix6*) -+ tm_file="${tm_file} mips/iris6.h" -+ tmake_file="${tmake_file} mips/t-iris6" -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" -+ ;; -+ esac -+ if test "x$stabs" = xyes -+ then -+ tm_file="${tm_file} dbx.h mips/dbxmdebug.h" -+ fi -+ if test "x$gnu_ld" = xyes -+ then -+ tm_defines="${tm_defines} IRIX_USING_GNU_LD" -+ fi -+ case ${enable_threads}:${have_pthread_h} in -+ "":yes | yes:yes ) thread_file=posix ;; -+ esac -+ ;; -+mips*-*-netbsd*) # NetBSD/mips, either endian. -+ target_cpu_default="MASK_ABICALLS" -+ tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h" -+ ;; -+mips64*-*-linux* | mipsisa64*-*-linux*) -+ tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h mips/linux64.h" -+ tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16" -+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32" -+ case ${target} in -+ mips64el-st-linux-gnu) -+ tm_file="${tm_file} mips/st.h" -+ tmake_file="${tmake_file} mips/t-st" -+ ;; -+ mips64octeon*-*-linux*) -+ tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" -+ target_cpu_default=MASK_SOFT_FLOAT_ABI -+ ;; -+ mipsisa64r2*-*-linux*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65" -+ ;; -+ esac -+ gnu_ld=yes -+ gas=yes -+ test x$with_llsc != x || with_llsc=yes -+ ;; -+mips*-*-linux*) # Linux MIPS, either endian. -+ tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" -+ tmake_file="${tmake_file} mips/t-libgcc-mips16" -+ case ${target} in -+ mipsisa32r2*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33" -+ ;; -+ mipsisa32*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" -+ esac -+ test x$with_llsc != x || with_llsc=yes -+ ;; -+mips*-*-openbsd*) -+ tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS" -+ target_cpu_default="MASK_ABICALLS" -+ tm_file="mips/mips.h openbsd.h mips/openbsd.h mips/sdb.h" -+ case ${target} in -+ mips*el-*-openbsd*) -+ tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0";; -+ *) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN";; -+ esac -+ ;; -+mips*-sde-elf*) -+ tm_file="elfos.h ${tm_file} mips/elf.h mips/sde.h" -+ tmake_file="mips/t-sde mips/t-libgcc-mips16" -+ case "${with_newlib}" in -+ yes) -+ # newlib / libgloss. -+ ;; -+ *) -+ # MIPS toolkit libraries. -+ tm_file="$tm_file mips/sdemtk.h" -+ tmake_file="$tmake_file mips/t-sdemtk" -+ extra_options="$extra_options mips/sdemtk.opt" -+ case ${enable_threads} in -+ "" | yes | mipssde) -+ thread_file='mipssde' -+ ;; -+ esac -+ ;; -+ esac -+ case ${target} in -+ mipsisa32r2*) -+ tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32" -+ ;; -+ mipsisa32*) -+ tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32" -+ ;; -+ mipsisa64r2*) -+ tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32" -+ ;; -+ mipsisa64*) -+ tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32" -+ ;; -+ esac -+ ;; -+mipsisa32-*-elf* | mipsisa32el-*-elf* | \ -+mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \ -+mipsisa64-*-elf* | mipsisa64el-*-elf* | \ -+mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/elf.h" -+ tmake_file="mips/t-isa3264 mips/t-libgcc-mips16" -+ case ${target} in -+ mipsisa32r2*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33" -+ ;; -+ mipsisa32*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" -+ ;; -+ mipsisa64r2*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65" -+ ;; -+ mipsisa64*) -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64" -+ ;; -+ esac -+ case ${target} in -+ mipsisa32*-*-elfoabi*) -+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32" -+ tm_file="${tm_file} mips/elfoabi.h" -+ ;; -+ mipsisa64*-*-elfoabi*) -+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64" -+ tm_file="${tm_file} mips/elfoabi.h" -+ ;; -+ *-*-elf*) -+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI" -+ ;; -+ esac -+ ;; -+mipsisa64sr71k-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/elf.h" -+ tmake_file=mips/t-sr71k -+ target_cpu_default="MASK_64BIT|MASK_FLOAT64" -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI" -+ ;; -+mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/elf.h" -+ tmake_file="mips/t-elf mips/t-libgcc-mips16 mips/t-sb1" -+ target_cpu_default="MASK_64BIT|MASK_FLOAT64" -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64" -+ ;; -+mips-*-elf* | mipsel-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/elf.h" -+ tmake_file="mips/t-elf mips/t-libgcc-mips16" -+ ;; -+mips64-*-elf* | mips64el-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/elf.h" -+ tmake_file="mips/t-elf mips/t-libgcc-mips16" -+ target_cpu_default="MASK_64BIT|MASK_FLOAT64" -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" -+ ;; -+mips64vr-*-elf* | mips64vrel-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/vr.h mips/elf.h" -+ tmake_file=mips/t-vr -+ ;; -+mips64orion-*-elf* | mips64orionel-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/elforion.h mips/elf.h" -+ tmake_file="mips/t-elf mips/t-libgcc-mips16" -+ target_cpu_default="MASK_64BIT|MASK_FLOAT64" -+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" -+ ;; -+mips*-*-rtems*) -+ tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" -+ tmake_file="mips/t-elf mips/t-libgcc-mips16 t-rtems mips/t-rtems" -+ ;; -+mips-wrs-vxworks) -+ tm_file="elfos.h ${tm_file} svr4.h mips/elf.h vx-common.h vxworks.h mips/vxworks.h" -+ tmake_file="${tmake_file} mips/t-vxworks" -+ ;; -+mipstx39-*-elf* | mipstx39el-*-elf*) -+ tm_file="elfos.h ${tm_file} mips/r3900.h mips/elf.h" -+ tmake_file="mips/t-r3900 mips/t-libgcc-mips16" -+ ;; -+mmix-knuth-mmixware) -+ need_64bit_hwint=yes -+ ;; -+mn10300-*-*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" -+ if test x$stabs = xyes -+ then -+ tm_file="${tm_file} dbx.h" -+ fi -+ use_collect2=no -+ ;; -+pdp11-*-bsd) -+ tm_file="${tm_file} pdp11/2bsd.h" -+ use_fixproto=yes -+ ;; -+pdp11-*-*) -+ ;; -+picochip-*) -+ # Nothing special -+ ;; -+# port not yet contributed -+#powerpc-*-openbsd*) -+# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit " -+# extra_headers= -+# ;; -+powerpc64-*-linux*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" -+ test x$with_cpu != x || cpu_is_64bit=yes -+ test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h" -+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" -+ if test x${enable_secureplt} = xyes; then -+ tm_file="rs6000/secureplt.h ${tm_file}" -+ fi -+ extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" -+ tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp" -+ ;; -+powerpc64-*-gnu*) -+ tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h" -+ extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" -+ tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp" -+ ;; -+powerpc-*-darwin*) -+ extra_options="${extra_options} rs6000/darwin.opt" -+ extra_parts="crt2.o" -+ case ${target} in -+ *-darwin1[0-9]* | *-darwin[8-9]*) -+ tmake_file="${tmake_file} rs6000/t-darwin8" -+ tm_file="${tm_file} rs6000/darwin8.h" -+ ;; -+ *-darwin7*) -+ tm_file="${tm_file} rs6000/darwin7.h" -+ ;; -+ *-darwin[0-6]*) -+ ;; -+ esac -+ extra_headers=altivec.h -+ ;; -+powerpc64-*-darwin*) -+ tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" -+ extra_options="${extra_options} ${cpu_type}/darwin.opt" -+ # We're omitting t-darwin8 to avoid building any multilibs -+ extra_headers=altivec.h -+ ;; -+powerpc*-*-freebsd*) -+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ ;; -+powerpc-*-netbsd*) -+ tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h" -+ tmake_file="${tmake_file} rs6000/t-netbsd" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ ;; -+powerpc-*-eabispe*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-spe rs6000/t-ppccomm" -+ ;; -+powerpc-*-eabisimaltivec*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" -+ ;; -+powerpc-*-eabisim*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ ;; -+powerpc-*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ ;; -+powerpc-*-eabialtivec*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" -+ ;; -+powerpc-xilinx-eabi*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ ;; -+powerpc-*-eabi*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ ;; -+powerpc-*-rtems*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm" -+ ;; -+powerpc-*-linux*altivec*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" -+ ;; -+powerpc-*-linux*spe*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h rs6000/e500.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" -+ ;; -+powerpc-*-linux*paired*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/750cl.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" -+ ;; -+powerpc-*-linux*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" -+ case ${enable_targets}:${cpu_is_64bit} in -+ *powerpc64* | all:* | *:yes) -+ if test x$cpu_is_64bit = xyes; then -+ tm_file="${tm_file} rs6000/default64.h" -+ fi -+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" -+ tmake_file="$tmake_file rs6000/t-linux64" -+ extra_options="${extra_options} rs6000/linux64.opt" -+ ;; -+ *) -+ tm_file="${tm_file} rs6000/linux.h" -+ ;; -+ esac -+ tmake_file="${tmake_file} rs6000/t-fprules-softfp soft-fp/t-softfp" -+ if test x${enable_secureplt} = xyes; then -+ tm_file="rs6000/secureplt.h ${tm_file}" -+ fi -+ ;; -+powerpc-*-gnu-gnualtivec*) -+ tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" -+ if test x$enable_threads = xyes; then -+ thread_file='posix' -+ fi -+ ;; -+powerpc-*-gnu*) -+ tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ if test x$enable_threads = xyes; then -+ thread_file='posix' -+ fi -+ ;; -+powerpc-wrs-vxworks|powerpc-wrs-vxworksae) -+ tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" -+ tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ extra_headers=ppc-asm.h -+ case ${target} in -+ *-vxworksae*) -+ tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h" -+ tmake_file="${tmake_file} rs6000/t-vxworksae" -+ ;; -+ *-vxworks*) -+ tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h" -+ ;; -+ esac -+ ;; -+powerpc-*-lynxos*) -+ xm_defines=POSIX -+ tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h" -+ tmake_file="t-lynx rs6000/t-lynx" -+ extra_options="${extra_options} rs6000/sysv4.opt lynx.opt" -+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+ extra_options="${extra_options} lynx.opt" -+ thread_file=lynx -+ gnu_ld=yes -+ gas=yes -+ ;; -+powerpcle-*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ ;; -+powerpcle-*-eabisim*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ ;; -+powerpcle-*-eabi*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ ;; -+powerpc-xilinx-eabi*) -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h" -+ extra_options="${extra_options} rs6000/sysv4.opt" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" -+ ;; -+rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*) -+ tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h" -+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-newas" -+ extra_options="${extra_options} rs6000/aix41.opt" -+ use_collect2=yes -+ extra_headers= -+ use_fixproto=yes -+ ;; -+rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) -+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h" -+ tmake_file=rs6000/t-aix43 -+ extra_options="${extra_options} rs6000/aix64.opt" -+ use_collect2=yes -+ thread_file='aix' -+ extra_headers= -+ ;; -+rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) -+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h" -+ extra_options="${extra_options} rs6000/aix64.opt" -+ tmake_file=rs6000/t-aix43 -+ use_collect2=yes -+ thread_file='aix' -+ extra_headers= -+ ;; -+rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*) -+ tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h" -+ tmake_file=rs6000/t-aix52 -+ extra_options="${extra_options} rs6000/aix64.opt" -+ use_collect2=yes -+ thread_file='aix' -+ extra_headers= -+ ;; -+rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*) -+ tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h" -+ tmake_file=rs6000/t-aix52 -+ extra_options="${extra_options} rs6000/aix64.opt" -+ use_collect2=yes -+ thread_file='aix' -+ extra_headers=altivec.h -+ ;; -+rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*) -+ tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h" -+ tmake_file=rs6000/t-aix52 -+ extra_options="${extra_options} rs6000/aix64.opt" -+ use_collect2=yes -+ thread_file='aix' -+ extra_headers=altivec.h -+ ;; -+s390-*-linux*) -+ tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" -+ tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux" -+ ;; -+s390x-*-linux*) -+ tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" -+ tm_p_file=s390/s390-protos.h -+ md_file=s390/s390.md -+ extra_modes=s390/s390-modes.def -+ out_file=s390/s390.c -+ tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux s390/t-linux64" -+ ;; -+s390x-ibm-tpf*) -+ tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h" -+ tm_p_file=s390/s390-protos.h -+ md_file=s390/s390.md -+ extra_modes=s390/s390-modes.def -+ out_file=s390/s390.c -+ extra_parts="crtbeginS.o crtendS.o" -+ tmake_file="s390/t-crtstuff s390/t-tpf" -+ thread_file='tpf' -+ extra_options="${extra_options} s390/tpf.opt" -+ ;; -+score-*-elf) -+ tm_file="dbxelf.h elfos.h score/elf.h score/score.h" -+ tmake_file=score/t-score-elf -+ extra_objs="score7.o score3.o" -+ ;; -+sh-*-elf* | sh[12346l]*-*-elf* | \ -+sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ -+ sh-*-linux* | sh[2346lbe]*-*-linux* | \ -+ sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ -+ sh64-*-netbsd* | sh64l*-*-netbsd*) -+ tmake_file="${tmake_file} sh/t-sh sh/t-elf" -+ if test x${with_endian} = x; then -+ case ${target} in -+ sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;; -+ shbe-*-* | sheb-*-*) with_endian=big,little ;; -+ sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;; -+ shl* | sh64l* | sh*-*-linux* | \ -+ sh5l* | sh-superh-elf) with_endian=little,big ;; -+ sh[1234]*-*-*) with_endian=big ;; -+ *) with_endian=big,little ;; -+ esac -+ fi -+ case ${with_endian} in -+ big|little) tmake_file="${tmake_file} sh/t-1e" ;; -+ big,little|little,big) ;; -+ *) echo "with_endian=${with_endian} not supported."; exit 1 ;; -+ esac -+ case ${with_endian} in -+ little*) tm_file="sh/little.h ${tm_file}" ;; -+ esac -+ tm_file="${tm_file} dbxelf.h elfos.h" -+ case ${target} in -+ sh*-*-netbsd*) ;; -+ *) tm_file="${tm_file} svr4.h" ;; -+ esac -+ tm_file="${tm_file} sh/elf.h" -+ case ${target} in -+ sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux" -+ tm_file="${tm_file} linux.h sh/linux.h" ;; -+ sh*-*-netbsd*) tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h" ;; -+ sh*-superh-elf) if test x$with_libgloss != xno; then -+ with_libgloss=yes -+ tm_file="${tm_file} sh/newlib.h" -+ fi -+ tm_file="${tm_file} sh/embed-elf.h sh/superh.h" -+ tmake_file="${tmake_file} sh/t-superh" -+ extra_options="${extra_options} sh/superh.opt" ;; -+ *) if test x$with_newlib = xyes \ -+ && test x$with_libgloss = xyes; then -+ tm_file="${tm_file} sh/newlib.h" -+ fi -+ tm_file="${tm_file} sh/embed-elf.h" ;; -+ esac -+ case ${target} in -+ sh5*-*-netbsd*) -+ # SHmedia, 32-bit ABI -+ tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd" -+ ;; -+ sh64*-netbsd*) -+ # SHmedia, 64-bit ABI -+ tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd sh/t-netbsd-sh5-64" -+ ;; -+ *-*-netbsd) -+ tmake_file="${tmake_file} sh/t-netbsd" -+ ;; -+ sh64*-*-linux*) -+ tmake_file="${tmake_file} sh/t-sh64 sh/t-linux64" -+ tm_file="${tm_file} sh/sh64.h" -+ extra_headers="shmedia.h ushmedia.h sshmedia.h" -+ ;; -+ sh64*) -+ tmake_file="${tmake_file} sh/t-sh64" -+ tm_file="${tm_file} sh/sh64.h" -+ extra_headers="shmedia.h ushmedia.h sshmedia.h" -+ ;; -+ *-*-symbianelf*) -+ tmake_file="sh/t-symbian" -+ tm_file="sh/symbian-pre.h sh/little.h ${tm_file} sh/symbian-post.h" -+ extra_objs="symbian.o" -+ extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ ;; -+ esac -+ # sed el/eb endian suffixes away to avoid confusion with sh[23]e -+ case `echo ${target} | sed 's/e[lb]-/-/'` in -+ sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;; -+ sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;; -+ sh4a_single_only*) sh_cpu_target=sh4a-single-only ;; -+ sh4a_single*) sh_cpu_target=sh4a-single ;; -+ sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;; -+ sh4al) sh_cpu_target=sh4al ;; -+ sh4a*) sh_cpu_target=sh4a ;; -+ sh4_single_only*) sh_cpu_target=sh4-single-only ;; -+ sh4_single*) sh_cpu_target=sh4-single ;; -+ sh4_nofpu*) sh_cpu_target=sh4-nofpu ;; -+ sh4* | sh-superh-*) sh_cpu_target=sh4 ;; -+ sh3e*) sh_cpu_target=sh3e ;; -+ sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;; -+ sh2a_single_only*) sh_cpu_target=sh2a-single-only ;; -+ sh2a_single*) sh_cpu_target=sh2a-single ;; -+ sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;; -+ sh2a*) sh_cpu_target=sh2a ;; -+ sh2e*) sh_cpu_target=sh2e ;; -+ sh2*) sh_cpu_target=sh2 ;; -+ *) sh_cpu_target=sh1 ;; -+ esac -+ # did the user say --without-fp ? -+ if test x$with_fp = xno; then -+ case ${sh_cpu_target} in -+ sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;; -+ sh4al | sh1) ;; -+ sh4a* ) sh_cpu_target=sh4a-nofpu ;; -+ sh4*) sh_cpu_target=sh4-nofpu ;; -+ sh3*) sh_cpu_target=sh3 ;; -+ sh2a*) sh_cpu_target=sh2a-nofpu ;; -+ sh2*) sh_cpu_target=sh2 ;; -+ *) echo --without-fp not available for $target: ignored -+ esac -+ tm_defines="$tm_defines STRICT_NOFPU=1" -+ fi -+ sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`" -+ case $sh_cpu_default in -+ sh5-64media-nofpu | sh5-64media | \ -+ sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \ -+ sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \ -+ sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \ -+ sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \ -+ sh3e | sh3 | sh2e | sh2 | sh1) ;; -+ "") sh_cpu_default=${sh_cpu_target} ;; -+ *) echo "with_cpu=$with_cpu not supported"; exit 1 ;; -+ esac -+ sh_multilibs=${with_multilib_list} -+ if test x${sh_multilibs} = x ; then -+ case ${target} in -+ sh64-superh-linux* | \ -+ sh[1234]*) sh_multilibs=${sh_cpu_target} ;; -+ sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;; -+ sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;; -+ sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;; -+ sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;; -+ *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;; -+ esac -+ if test x$with_fp = xno; then -+ sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`" -+ fi -+ fi -+ target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_` -+ tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"' -+ sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ ,/][ ,]*/ /g' -e 's/ $//' -e 's/^m/sh/' -e 's/ m/ sh/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-` -+ for sh_multilib in ${sh_multilibs}; do -+ case ${sh_multilib} in -+ sh1 | sh2 | sh2e | sh3 | sh3e | \ -+ sh4 | sh4-single | sh4-single-only | sh4-nofpu | sh4-300 |\ -+ sh4a | sh4a-single | sh4a-single-only | sh4a-nofpu | sh4al | \ -+ sh2a | sh2a-single | sh2a-single-only | sh2a-nofpu | \ -+ sh5-64media | sh5-64media-nofpu | \ -+ sh5-32media | sh5-32media-nofpu | \ -+ sh5-compact | sh5-compact-nofpu) -+ tmake_file="${tmake_file} sh/t-mlib-${sh_multilib}" -+ tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1" -+ ;; -+ *) -+ echo "with_multilib_list=${sh_multilib} not supported." -+ exit 1 -+ ;; -+ esac -+ done -+ if test x${enable_incomplete_targets} = xyes ; then -+ tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SH5_32MEDIA=1 SUPPORT_SH5_32MEDIA_NOFPU=1 SUPPORT_SH5_64MEDIA=1 SUPPORT_SH5_64MEDIA_NOFPU=1" -+ fi -+ ;; -+sh-*-rtems*) -+ tmake_file="sh/t-sh sh/t-elf t-rtems sh/t-rtems" -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h" -+ ;; -+sh-wrs-vxworks) -+ tmake_file="$tmake_file sh/t-sh sh/t-elf sh/t-vxworks" -+ tm_file="${tm_file} elfos.h svr4.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h" -+ ;; -+sh-*-*) -+ tm_file="${tm_file} dbxcoff.h sh/coff.h" -+ ;; -+sparc-*-netbsdelf*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" -+ extra_options="${extra_options} sparc/long-double-switch.opt" -+ ;; -+sparc64-*-openbsd*) -+ tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h" -+ extra_options="${extra_options} sparc/little-endian.opt" -+ gas=yes gnu_ld=yes -+ with_cpu=ultrasparc -+ ;; -+sparc-*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h" -+ tmake_file="sparc/t-elf sparc/t-crtfm" -+ extra_parts="crti.o crtn.o crtbegin.o crtend.o" -+ ;; -+sparc-*-linux*) # SPARC's running GNU/Linux, libc6 -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h" -+ extra_options="${extra_options} sparc/long-double-switch.opt" -+ tmake_file="${tmake_file} sparc/t-linux" -+ if test x$enable_targets = xall; then -+ tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h" -+ tmake_file="${tmake_file} sparc/t-linux64" -+ else -+ tm_file="${tm_file} sparc/linux.h" -+ fi -+ tmake_file="${tmake_file} sparc/t-crtfm" -+ ;; -+sparc-*-rtems*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h" -+ tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" -+ extra_parts="crti.o crtn.o crtbegin.o crtend.o" -+ ;; -+sparc64-*-solaris2* | sparcv9-*-solaris2*) -+ tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h" -+ case ${target} in -+ *-*-solaris2.1[0-9]*) -+ tm_file="${tm_file} sol2-10.h" -+ ;; -+ esac -+ tm_file="${tm_file} sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h" -+ if test x$gnu_ld = xyes; then -+ tm_file="${tm_file} sparc/sol2-gld.h sparc/sol2-gld-bi.h" -+ fi -+ if test x$gas = xyes; then -+ tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h" -+ fi -+ tm_file="${tm_file} tm-dwarf2.h" -+ tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm" -+ if test x$gnu_ld = xyes; then -+ tmake_file="$tmake_file t-slibgcc-elf-ver" -+ else -+ tmake_file="$tmake_file t-slibgcc-sld" -+ fi -+ c_target_objs="sol2-c.o" -+ cxx_target_objs="sol2-c.o" -+ extra_objs="sol2.o" -+ tm_p_file="${tm_p_file} sol2-protos.h" -+ extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o" -+ case ${enable_threads}:${have_pthread_h}:${have_thread_h} in -+ "":yes:* | yes:yes:* ) thread_file=posix ;; -+ "":*:yes | yes:*:yes ) thread_file=solaris ;; -+ esac -+ ;; -+sparc-*-solaris2*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h" -+ case ${target} in -+ *-*-solaris2.1[0-9]*) -+ tm_file="${tm_file} sol2-10.h" -+ ;; -+ esac -+ tm_file="${tm_file} sparc/sol2.h" -+ if test x$gnu_ld = xyes; then -+ tm_file="${tm_file} sparc/sol2-gld.h" -+ fi -+ if test x$gas = xyes; then -+ tm_file="${tm_file} sparc/sol2-gas.h" -+ fi -+ tmake_file="t-sol2 sparc/t-sol2 sparc/t-crtfm" -+ if test x$gnu_ld = xyes; then -+ tmake_file="$tmake_file t-slibgcc-elf-ver" -+ else -+ tmake_file="$tmake_file t-slibgcc-sld" -+ fi -+ tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h" -+ if test x$gnu_ld = xyes; then -+ tm_file="${tm_file} sparc/sol2-gld-bi.h" -+ fi -+ if test x$gas = xyes; then -+ tm_file="${tm_file} sparc/sol2-gas-bi.h" -+ fi -+ tm_file="${tm_file} tm-dwarf2.h" -+ tmake_file="$tmake_file sparc/t-sol2-64" -+ test x$with_cpu != x || with_cpu=v9 -+ c_target_objs="sol2-c.o" -+ cxx_target_objs="sol2-c.o" -+ extra_objs="sol2.o" -+ tm_p_file="${tm_p_file} sol2-protos.h" -+ extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" -+ case ${enable_threads}:${have_pthread_h}:${have_thread_h} in -+ "":yes:* | yes:yes:* ) -+ thread_file=posix -+ ;; -+ "":*:yes | yes:*:yes ) -+ thread_file=solaris -+ ;; -+ esac -+ ;; -+sparc-wrs-vxworks) -+ tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h" -+ tmake_file="${tmake_file} sparc/t-vxworks" -+ ;; -+sparc64-*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h" -+ extra_options="${extra_options} sparc/little-endian.opt" -+ tmake_file="${tmake_file} sparc/t-crtfm" -+ extra_parts="crtbegin.o crtend.o" -+ ;; -+sparc64-*-freebsd*|ultrasparc-*-freebsd*) -+ tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h" -+ extra_options="${extra_options} sparc/long-double-switch.opt" -+ tmake_file="${tmake_file} sparc/t-crtfm" -+ case "x$with_cpu" in -+ xultrasparc) ;; -+ x) with_cpu=ultrasparc ;; -+ *) echo "$with_cpu not supported for freebsd target"; exit 1 ;; -+ esac -+ ;; -+sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux -+ tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h sparc/linux64.h" -+ extra_options="${extra_options} sparc/long-double-switch.opt" -+ tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm" -+ ;; -+sparc64-*-netbsd*) -+ tm_file="sparc/biarch64.h ${tm_file}" -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" -+ extra_options="${extra_options} sparc/long-double-switch.opt" -+ tmake_file="${tmake_file} sparc/t-netbsd64" -+ ;; -+spu-*-elf*) -+ tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h" -+ tmake_file="spu/t-spu-elf" -+ extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h" -+ extra_modes=spu/spu-modes.def -+ c_target_objs="${c_target_objs} spu-c.o" -+ cxx_target_objs="${cxx_target_objs} spu-c.o" -+ ;; -+v850e1-*-*) -+ target_cpu_default="TARGET_CPU_v850e1" -+ tm_file="dbxelf.h elfos.h svr4.h v850/v850.h" -+ tm_p_file=v850/v850-protos.h -+ tmake_file=v850/t-v850e -+ md_file=v850/v850.md -+ out_file=v850/v850.c -+ extra_options="${extra_options} v850/v850.opt" -+ if test x$stabs = xyes -+ then -+ tm_file="${tm_file} dbx.h" -+ fi -+ use_collect2=no -+ c_target_objs="v850-c.o" -+ cxx_target_objs="v850-c.o" -+ ;; -+v850e-*-*) -+ target_cpu_default="TARGET_CPU_v850e" -+ tm_file="dbxelf.h elfos.h svr4.h v850/v850.h" -+ tm_p_file=v850/v850-protos.h -+ tmake_file=v850/t-v850e -+ md_file=v850/v850.md -+ out_file=v850/v850.c -+ extra_options="${extra_options} v850/v850.opt" -+ if test x$stabs = xyes -+ then -+ tm_file="${tm_file} dbx.h" -+ fi -+ use_collect2=no -+ c_target_objs="v850-c.o" -+ cxx_target_objs="v850-c.o" -+ ;; -+v850-*-*) -+ target_cpu_default="TARGET_CPU_generic" -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" -+ tmake_file=v850/t-v850 -+ if test x$stabs = xyes -+ then -+ tm_file="${tm_file} dbx.h" -+ fi -+ use_collect2=no -+ c_target_objs="v850-c.o" -+ cxx_target_objs="v850-c.o" -+ ;; -+vax-*-netbsdelf*) -+ tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h" -+ ;; -+vax-*-netbsd*) -+ tm_file="${tm_file} netbsd.h netbsd-aout.h vax/netbsd.h" -+ tmake_file=t-netbsd -+ extra_parts="" -+ use_collect2=yes -+ ;; -+vax-*-openbsd*) -+ tm_file="vax/vax.h vax/openbsd1.h openbsd.h vax/openbsd.h" -+ use_collect2=yes -+ ;; -+xstormy16-*-elf) -+ # For historical reasons, the target files omit the 'x'. -+ tm_file="dbxelf.h elfos.h svr4.h stormy16/stormy16.h" -+ tm_p_file=stormy16/stormy16-protos.h -+ md_file=stormy16/stormy16.md -+ out_file=stormy16/stormy16.c -+ extra_options=stormy16/stormy16.opt -+ tmake_file="stormy16/t-stormy16" -+ extra_parts="crtbegin.o crtend.o" -+ ;; -+xtensa*-*-elf*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h xtensa/elf.h" -+ tmake_file="xtensa/t-xtensa xtensa/t-elf" -+ ;; -+xtensa*-*-linux*) -+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h xtensa/linux.h" -+ tmake_file="${tmake_file} xtensa/t-xtensa xtensa/t-linux" -+ ;; -+am33_2.0-*-linux*) -+ tm_file="mn10300/mn10300.h dbxelf.h elfos.h linux.h mn10300/linux.h" -+ tmake_file="${tmake_file} mn10300/t-linux" -+ gas=yes gnu_ld=yes -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ use_collect2=no -+ ;; -+m32c-*-rtems*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32c/rtems.h rtems.h" -+ tmake_file="${tmake_file} t-rtems" -+ c_target_objs="m32c-pragma.o" -+ cxx_target_objs="m32c-pragma.o" -+ ;; -+m32c-*-elf*) -+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" -+ c_target_objs="m32c-pragma.o" -+ cxx_target_objs="m32c-pragma.o" -+ ;; -+*) -+ echo "*** Configuration ${target} not supported" 1>&2 -+ exit 1 -+ ;; -+esac -+ -+case ${target} in -+i[34567]86-*-linux* | x86_64-*-linux*) -+ tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386" -+ ;; -+i[34567]86-*-* | x86_64-*-*) -+ tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386" -+ ;; -+esac -+ -+# Support for --with-cpu and related options (and a few unrelated options, -+# too). -+case ${with_cpu} in -+ yes | no) -+ echo "--with-cpu must be passed a value" 1>&2 -+ exit 1 -+ ;; -+esac -+ -+# If there is no $with_cpu option, try to infer one from ${target}. -+# This block sets nothing except for with_cpu. -+if test x$with_cpu = x ; then -+ case ${target} in -+ i386-*-*) -+ with_cpu=i386 -+ ;; -+ i486-*-*) -+ with_cpu=i486 -+ ;; -+ i586-*-*) -+ case ${target_noncanonical} in -+ k6_2-*) -+ with_cpu=k6-2 -+ ;; -+ k6_3-*) -+ with_cpu=k6-3 -+ ;; -+ k6-*) -+ with_cpu=k6 -+ ;; -+ pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*) -+ with_cpu=pentium-mmx -+ ;; -+ *) -+ with_cpu=pentium -+ ;; -+ esac -+ ;; -+ i686-*-* | i786-*-*) -+ case ${target_noncanonical} in -+ amdfam10-*|barcelona-*) -+ with_cpu=amdfam10 -+ ;; -+ k8-*|opteron-*|athlon_64-*) -+ with_cpu=k8 -+ ;; -+ athlon_xp-*|athlon_mp-*|athlon_4-*) -+ with_cpu=athlon-4 -+ ;; -+ athlon_tbird-*|athlon-*) -+ with_cpu=athlon -+ ;; -+ geode-*) -+ with_cpu=geode -+ ;; -+ pentium2-*) -+ with_cpu=pentium2 -+ ;; -+ pentium3-*|pentium3m-*) -+ with_cpu=pentium3 -+ ;; -+ pentium4-*|pentium4m-*) -+ with_cpu=pentium4 -+ ;; -+ prescott-*) -+ with_cpu=prescott -+ ;; -+ nocona-*) -+ with_cpu=nocona -+ ;; -+ core2-*) -+ with_cpu=core2 -+ ;; -+ pentium_m-*) -+ with_cpu=pentium-m -+ ;; -+ pentiumpro-*) -+ with_cpu=pentiumpro -+ ;; -+ *) -+ with_cpu=generic -+ ;; -+ esac -+ ;; -+ x86_64-*-*) -+ case ${target_noncanonical} in -+ amdfam10-*|barcelona-*) -+ with_cpu=amdfam10 -+ ;; -+ k8-*|opteron-*|athlon_64-*) -+ with_cpu=k8 -+ ;; -+ nocona-*) -+ with_cpu=nocona -+ ;; -+ core2-*) -+ with_cpu=core2 -+ ;; -+ *) -+ with_cpu=generic -+ ;; -+ esac -+ ;; -+ alphaev6[78]*-*-*) -+ with_cpu=ev67 -+ ;; -+ alphaev6*-*-*) -+ with_cpu=ev6 -+ ;; -+ alphapca56*-*-*) -+ with_cpu=pca56 -+ ;; -+ alphaev56*-*-*) -+ with_cpu=ev56 -+ ;; -+ alphaev5*-*-*) -+ with_cpu=ev5 -+ ;; -+ frv-*-*linux* | frv400-*-*linux*) -+ with_cpu=fr400 -+ ;; -+ frv550-*-*linux*) -+ with_cpu=fr550 -+ ;; -+ m68k*-*-*) -+ case "$with_arch" in -+ "cf") -+ with_cpu=${default_cf_cpu} -+ ;; -+ "" | "m68k") -+ with_cpu=m${default_m68k_cpu} -+ ;; -+ esac -+ ;; -+ mips*-*-vxworks) -+ with_arch=mips2 -+ ;; -+ sparc*-*-*) -+ with_cpu="`echo ${target} | sed 's/-.*$//'`" -+ ;; -+ esac -+ -+ # Avoid overriding --with-cpu-32 and --with-cpu-64 values. -+ case ${target} in -+ i[34567]86-*-*|x86_64-*-*) -+ if test x$with_cpu != x; then -+ if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then -+ if test x$with_cpu_32 = x; then -+ with_cpu_32=$with_cpu -+ fi -+ if test x$with_cpu_64 = x; then -+ with_cpu_64=$with_cpu -+ fi -+ with_cpu= -+ fi -+ fi -+ ;; -+ esac -+fi -+ -+# Similarly for --with-schedule. -+if test x$with_schedule = x; then -+ case ${target} in -+ hppa1*) -+ # Override default PA8000 scheduling model. -+ with_schedule=7100LC -+ ;; -+ esac -+fi -+ -+# Validate and mark as valid any --with options supported -+# by this target. In order to use a particular --with option -+# you must list it in supported_defaults; validating the value -+# is optional. This case statement should set nothing besides -+# supported_defaults. -+ -+supported_defaults= -+case "${target}" in -+ alpha*-*-*) -+ supported_defaults="cpu tune" -+ for which in cpu tune; do -+ eval "val=\$with_$which" -+ case "$val" in -+ "" \ -+ | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \ -+ | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \ -+ | 21264a) -+ ;; -+ *) -+ echo "Unknown CPU used in --with-$which=$val" 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ ;; -+ -+ arm*-*-*) -+ supported_defaults="arch cpu float tune fpu abi mode" -+ for which in cpu tune; do -+ # See if it matches any of the entries in arm-cores.def -+ eval "val=\$with_$which" -+ if [ x"$val" = x ] \ -+ || grep "^ARM_CORE(\"$val\"," \ -+ ${srcdir}/config/arm/arm-cores.def \ -+ > /dev/null; then -+ # Ok -+ new_val=`grep "^ARM_CORE(\"$val\"," \ -+ ${srcdir}/config/arm/arm-cores.def | \ -+ sed -e 's/^[^,]*,[ ]*//' | \ -+ sed -e 's/,.*$//'` -+ eval "target_${which}_cname=$new_val" -+ echo "For $val real value is $new_val" -+ true -+ else -+ echo "Unknown CPU used in --with-$which=$val" 1>&2 -+ exit 1 -+ fi -+ done -+ -+ case "$with_arch" in -+ "" \ -+ | armv[23456] | armv2a | armv3m | armv4t | armv5t \ -+ | armv5te | armv6j |armv6k | armv6z | armv6zk | armv6-m \ -+ | armv7 | armv7-a | armv7-r | armv7-m \ -+ | iwmmxt | ep9312) -+ # OK -+ ;; -+ *) -+ echo "Unknown arch used in --with-arch=$with_arch" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case "$with_float" in -+ "" \ -+ | soft | hard | softfp) -+ # OK -+ ;; -+ *) -+ echo "Unknown floating point type used in --with-float=$with_float" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case "$with_fpu" in -+ "" \ -+ | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon ) -+ # OK -+ ;; -+ *) -+ echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1 -+ exit 1 -+ ;; -+ esac -+ -+ case "$with_abi" in -+ "" \ -+ | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux ) -+ #OK -+ ;; -+ *) -+ echo "Unknown ABI used in --with-abi=$with_abi" -+ exit 1 -+ ;; -+ esac -+ -+ case "$with_mode" in -+ "" \ -+ | arm | thumb ) -+ #OK -+ ;; -+ *) -+ echo "Unknown mode used in --with-mode=$with_mode" -+ exit 1 -+ ;; -+ esac -+ -+ if test "x$with_arch" != x && test "x$with_cpu" != x; then -+ echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2 -+ fi -+ ;; -+ -+ fr*-*-*linux*) -+ supported_defaults=cpu -+ case "$with_cpu" in -+ fr400) ;; -+ fr550) ;; -+ *) -+ echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ -+ fido-*-* | m68k*-*-*) -+ supported_defaults="arch cpu" -+ case "$with_arch" in -+ "" | "m68k"| "cf") -+ m68k_arch_family="$with_arch" -+ ;; -+ *) -+ echo "Invalid --with-arch=$with_arch" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ # We always have a $with_cpu setting here. -+ case "$with_cpu" in -+ "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060") -+ m68k_cpu_ident=$with_cpu -+ ;; -+ "m68020-40") -+ m68k_cpu_ident=m68020 -+ tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40" -+ ;; -+ "m68020-60") -+ m68k_cpu_ident=m68020 -+ tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60" -+ ;; -+ *) -+ # We need the C identifier rather than the string. -+ m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \ -+ 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \ -+ $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \ -+ ${srcdir}/config/m68k/m68k-devices.def` -+ if [ x"$m68k_cpu_ident" = x ] ; then -+ echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2 -+ exit 1 -+ fi -+ with_cpu="mcpu=$with_cpu" -+ ;; -+ esac -+ ;; -+ -+ hppa*-*-*) -+ supported_defaults="arch schedule" -+ -+ case "$with_arch" in -+ "" | 1.0 | 1.1 | 2.0) -+ # OK -+ ;; -+ *) -+ echo "Unknown architecture used in --with-arch=$with_arch" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case "$with_schedule" in -+ "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000) -+ # OK -+ ;; -+ *) -+ echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ -+ i[34567]86-*-* | x86_64-*-*) -+ supported_defaults="arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64" -+ for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do -+ eval "val=\$with_$which" -+ case ${val} in -+ i386 | i486 \ -+ | i586 | pentium | pentium-mmx | winchip-c6 | winchip2 \ -+ | c3 | c3-2 | i686 | pentiumpro | pentium2 | pentium3 \ -+ | pentium4 | k6 | k6-2 | k6-3 | athlon | athlon-tbird \ -+ | athlon-4 | athlon-xp | athlon-mp | geode \ -+ | prescott | pentium-m | pentium4m | pentium3m) -+ case "${target}" in -+ x86_64-*-*) -+ case "x$which" in -+ *_32) -+ ;; -+ *) -+ echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ esac -+ # OK -+ ;; -+ "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic) -+ # OK -+ ;; -+ *) -+ echo "Unknown CPU given in --with-$which=$val." 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ ;; -+ -+ mips*-*-*) -+ supported_defaults="abi arch float tune divide llsc mips-plt" -+ -+ case ${with_float} in -+ "" | soft | hard) -+ # OK -+ ;; -+ *) -+ echo "Unknown floating point type used in --with-float=$with_float" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case ${with_abi} in -+ "" | 32 | o64 | n32 | 64 | eabi) -+ # OK -+ ;; -+ *) -+ echo "Unknown ABI used in --with-abi=$with_abi" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case ${with_divide} in -+ "" | breaks | traps) -+ # OK -+ ;; -+ *) -+ echo "Unknown division check type use in --with-divide=$with_divide" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case ${with_llsc} in -+ yes) -+ with_llsc=llsc -+ ;; -+ no) -+ with_llsc="no-llsc" -+ ;; -+ "") -+ # OK -+ ;; -+ *) -+ echo "Unknown llsc type used in --with-llsc" 1>&2 -+ exit 1 -+ ;; -+ esac -+ -+ case ${with_mips_plt} in -+ yes) -+ with_mips_plt=plt -+ ;; -+ no) -+ with_mips_plt=no-plt -+ ;; -+ "") -+ ;; -+ *) -+ echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ -+ powerpc*-*-* | rs6000-*-*) -+ supported_defaults="cpu float tune" -+ -+ for which in cpu tune; do -+ eval "val=\$with_$which" -+ case ${val} in -+ default32 | default64) -+ with_which="with_$which" -+ eval $with_which= -+ ;; -+ 405cr) -+ tm_defines="${tm_defines} CONFIG_PPC405CR" -+ eval "with_$which=405" -+ ;; -+ "" | common \ -+ | power | power[234567] | power6x | powerpc | powerpc64 \ -+ | rios | rios1 | rios2 | rsc | rsc1 | rs64a \ -+ | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \ -+ | 505 | 601 | 602 | 603 | 603e | ec603e | 604 \ -+ | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \ -+ | e300c[23] | 854[08] | e500mc \ -+ | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell) -+ # OK -+ ;; -+ *) -+ echo "Unknown cpu used in --with-$which=$val." 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ ;; -+ -+ s390*-*-*) -+ supported_defaults="arch mode tune" -+ -+ for which in arch tune; do -+ eval "val=\$with_$which" -+ case ${val} in -+ "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10) -+ # OK -+ ;; -+ *) -+ echo "Unknown cpu used in --with-$which=$val." 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ -+ case ${with_mode} in -+ "" | esa | zarch) -+ # OK -+ ;; -+ *) -+ echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ -+ sh[123456ble]-*-* | sh-*-*) -+ supported_defaults="cpu" -+ case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in -+ "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu ) -+ # OK -+ ;; -+ m2a | m2a-single | m2a-single-only | m2a-nofpu) -+ ;; -+ m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al) -+ ;; -+ *) -+ echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2 -+ echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2 -+ echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2 -+ echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ sparc*-*-*) -+ supported_defaults="cpu float tune" -+ -+ for which in cpu tune; do -+ eval "val=\$with_$which" -+ case ${val} in -+ "" | sparc | sparcv9 | sparc64 | sparc86x \ -+ | v7 | cypress | v8 | supersparc | sparclite | f930 \ -+ | f934 | hypersparc | sparclite86x | sparclet | tsc701 \ -+ | v9 | ultrasparc | ultrasparc3 | niagara | niagara2) -+ # OK -+ ;; -+ *) -+ echo "Unknown cpu used in --with-$which=$val" 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ -+ case ${with_float} in -+ "" | soft | hard) -+ # OK -+ ;; -+ *) -+ echo "Unknown floating point type used in --with-float=$with_float" 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+ -+ spu-*-*) -+ supported_defaults="arch tune" -+ -+ for which in arch tune; do -+ eval "val=\$with_$which" -+ case ${val} in -+ "" | cell | celledp) -+ # OK -+ ;; -+ *) -+ echo "Unknown cpu used in --with-$which=$val." 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ ;; -+ -+ v850*-*-*) -+ supported_defaults=cpu -+ case ${with_cpu} in -+ "" | v850e | v850e1) -+ # OK -+ ;; -+ *) -+ echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2 -+ exit 1 -+ ;; -+ esac -+ ;; -+esac -+ -+# Set some miscellaneous flags for particular targets. -+target_cpu_default2= -+case ${target} in -+ alpha*-*-*) -+ if test x$gas = xyes -+ then -+ target_cpu_default2="MASK_GAS" -+ fi -+ ;; -+ -+ arm*-*-*) -+ if test x$target_cpu_cname = x -+ then -+ target_cpu_default2=TARGET_CPU_generic -+ else -+ target_cpu_default2=TARGET_CPU_$target_cpu_cname -+ fi -+ ;; -+ -+ hppa*-*-*) -+ target_cpu_default2="MASK_BIG_SWITCH" -+ if test x$gas = xyes -+ then -+ target_cpu_default2="${target_cpu_default2}|MASK_GAS|MASK_JUMP_IN_DELAY" -+ fi -+ ;; -+ -+ fido*-*-* | m68k*-*-*) -+ target_cpu_default2=$m68k_cpu_ident -+ if [ x"$m68k_arch_family" != x ]; then -+ tmake_file="m68k/t-$m68k_arch_family $tmake_file" -+ fi -+ ;; -+ -+ i[34567]86-*-darwin* | x86_64-*-darwin*) -+ tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" -+ ;; -+ i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu) -+ tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux" -+ ;; -+ ia64*-*-linux*) -+ tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp" -+ ;; -+ -+ mips*-*-*) -+ if test x$gnu_ld = xyes -+ then -+ target_cpu_default2="MASK_SPLIT_ADDRESSES" -+ fi -+ case ${target} in -+ mips*el-*-*) -+ tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines" -+ ;; -+ esac -+ if test "x$enable_gofast" = xyes -+ then -+ tm_defines="US_SOFTWARE_GOFAST $tm_defines" -+ tmake_file="mips/t-gofast $tmake_file" -+ else -+ tmake_file="mips/t-mips $tmake_file" -+ fi -+ ;; -+ -+ powerpc*-*-* | rs6000-*-*) -+ # FIXME: The PowerPC port uses the value set at compile time, -+ # although it's only cosmetic. -+ if test "x$with_cpu" != x -+ then -+ target_cpu_default2="\\\"$with_cpu\\\"" -+ fi -+ out_file=rs6000/rs6000.c -+ c_target_objs="${c_target_objs} rs6000-c.o" -+ cxx_target_objs="${cxx_target_objs} rs6000-c.o" -+ tmake_file="rs6000/t-rs6000 ${tmake_file}" -+ -+ if test x$enable_e500_double = xyes -+ then -+ tm_file="$tm_file rs6000/e500-double.h" -+ fi -+ ;; -+ -+ sh[123456ble]*-*-* | sh-*-*) -+ c_target_objs="${c_target_objs} sh-c.o" -+ cxx_target_objs="${cxx_target_objs} sh-c.o" -+ ;; -+ -+ sparc*-*-*) -+ # Some standard aliases. -+ case x$with_cpu in -+ xsparc) -+ with_cpu=v7 -+ ;; -+ xsparcv9 | xsparc64) -+ with_cpu=v9 -+ ;; -+ esac -+ -+ # The SPARC port checks this value at compile-time. -+ target_cpu_default2="TARGET_CPU_$with_cpu" -+ ;; -+ v850*-*-*) -+ # FIXME: The v850 is "special" in that it does not support -+ # runtime CPU selection, only --with-cpu. -+ case "x$with_cpu" in -+ x) -+ ;; -+ xv850e) -+ target_cpu_default2="TARGET_CPU_$with_cpu" -+ ;; -+ esac -+ ;; -+esac -+ -+t= -+all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt" -+for option in $all_defaults -+do -+ eval "val=\$with_"`echo $option | sed s/-/_/g` -+ if test -n "$val"; then -+ case " $supported_defaults " in -+ *" $option "*) -+ ;; -+ *) -+ echo "This target does not support --with-$option." 2>&1 -+ echo "Valid --with options are: $supported_defaults" 2>&1 -+ exit 1 -+ ;; -+ esac -+ -+ if test "x$t" = x -+ then -+ t="{ \"$option\", \"$val\" }" -+ else -+ t="${t}, { \"$option\", \"$val\" }" -+ fi -+ fi -+done -+ -+if test "x$t" = x -+then -+ configure_default_options="{ { NULL, NULL} }" -+else -+ configure_default_options="{ ${t} }" -+fi -+ -+if test "$target_cpu_default2" != "" -+then -+ if test "$target_cpu_default" != "" -+ then -+ target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" -+ else -+ target_cpu_default=$target_cpu_default2 -+ fi -+fi -diff -Naur gcc-4.4.2.orig/gcc/doc/contrib.texi gcc-4.4.2-rtems4.10-20091015/gcc/doc/contrib.texi +diff -Naur gcc-4.4.2.orig/gcc/doc/contrib.texi gcc-4.4.2/gcc/doc/contrib.texi --- gcc-4.4.2.orig/gcc/doc/contrib.texi 2009-02-20 16:20:38.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/doc/contrib.texi 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/doc/contrib.texi 2009-10-15 18:36:00.000000000 +0200 @@ -55,7 +55,7 @@ Wolfgang Bangerth for processing tons of bug reports. @@ -7322,9 +4135,9 @@ diff -Naur gcc-4.4.2.orig/gcc/doc/contrib.texi gcc-4.4.2-rtems4.10-20091015/gcc/ @item Daniel Berlin for better DWARF2 support, faster/better optimizations, -diff -Naur gcc-4.4.2.orig/gcc/doc/install.texi gcc-4.4.2-rtems4.10-20091015/gcc/doc/install.texi +diff -Naur gcc-4.4.2.orig/gcc/doc/install.texi gcc-4.4.2/gcc/doc/install.texi --- gcc-4.4.2.orig/gcc/doc/install.texi 2009-09-12 20:57:06.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/doc/install.texi 2009-10-15 18:36:00.000000000 +0200 ++++ gcc-4.4.2/gcc/doc/install.texi 2009-10-15 18:36:00.000000000 +0200 @@ -2658,6 +2658,10 @@ @item @uref{#iq2000-x-elf,,iq2000-*-elf} @@ -7357,21048 +4170,67 @@ diff -Naur gcc-4.4.2.orig/gcc/doc/install.texi gcc-4.4.2-rtems4.10-20091015/gcc/ @heading @anchor{m32c-x-elf}m32c-*-elf Renesas M32C processor. This configuration is intended for embedded systems. -diff -Naur gcc-4.4.2.orig/gcc/doc/install.texi.orig gcc-4.4.2-rtems4.10-20091015/gcc/doc/install.texi.orig ---- gcc-4.4.2.orig/gcc/doc/install.texi.orig 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/doc/install.texi.orig 2009-10-15 18:36:00.000000000 +0200 -@@ -0,0 +1,4324 @@ -+\input texinfo.tex @c -*-texinfo-*- -+@c @ifnothtml -+@c %**start of header -+@setfilename gccinstall.info -+@settitle Installing GCC -+@setchapternewpage odd -+@c %**end of header -+@c @end ifnothtml -+ -+@include gcc-common.texi -+ -+@c Specify title for specific html page -+@ifset indexhtml -+@settitle Installing GCC -+@end ifset -+@ifset specifichtml -+@settitle Host/Target specific installation notes for GCC -+@end ifset -+@ifset prerequisiteshtml -+@settitle Prerequisites for GCC -+@end ifset -+@ifset downloadhtml -+@settitle Downloading GCC -+@end ifset -+@ifset configurehtml -+@settitle Installing GCC: Configuration -+@end ifset -+@ifset buildhtml -+@settitle Installing GCC: Building -+@end ifset -+@ifset testhtml -+@settitle Installing GCC: Testing -+@end ifset -+@ifset finalinstallhtml -+@settitle Installing GCC: Final installation -+@end ifset -+@ifset binarieshtml -+@settitle Installing GCC: Binaries -+@end ifset -+@ifset oldhtml -+@settitle Installing GCC: Old documentation -+@end ifset -+@ifset gfdlhtml -+@settitle Installing GCC: GNU Free Documentation License -+@end ifset -+ -+@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com -+ -+@c IMPORTANT: whenever you modify this file, run `install.texi2html' to -+@c test the generation of HTML documents for the gcc.gnu.org web pages. -+@c -+@c Do not use @footnote{} in this file as it breaks install.texi2html! -+ -+@c Include everything if we're not making html -+@ifnothtml -+@set indexhtml -+@set specifichtml -+@set prerequisiteshtml -+@set downloadhtml -+@set configurehtml -+@set buildhtml -+@set testhtml -+@set finalinstallhtml -+@set binarieshtml -+@set oldhtml -+@set gfdlhtml -+@end ifnothtml -+ -+@c Part 2 Summary Description and Copyright -+@copying -+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, -+1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -+2008 Free Software Foundation, Inc. -+@sp 1 -+Permission is granted to copy, distribute and/or modify this document -+under the terms of the GNU Free Documentation License, Version 1.2 or -+any later version published by the Free Software Foundation; with no -+Invariant Sections, the Front-Cover texts being (a) (see below), and -+with the Back-Cover Texts being (b) (see below). A copy of the -+license is included in the section entitled ``@uref{./gfdl.html,,GNU -+Free Documentation License}''. -+ -+(a) The FSF's Front-Cover Text is: -+ -+ A GNU Manual -+ -+(b) The FSF's Back-Cover Text is: -+ -+ You have freedom to copy and modify this GNU Manual, like GNU -+ software. Copies published by the Free Software Foundation raise -+ funds for GNU development. -+@end copying -+@ifinfo -+@insertcopying -+@end ifinfo -+@dircategory Software development -+@direntry -+* gccinstall: (gccinstall). Installing the GNU Compiler Collection. -+@end direntry -+ -+@c Part 3 Titlepage and Copyright -+@titlepage -+@title Installing GCC -+@versionsubtitle -+ -+@c The following two commands start the copyright page. -+@page -+@vskip 0pt plus 1filll -+@insertcopying -+@end titlepage -+ -+@c Part 4 Top node, Master Menu, and/or Table of Contents -+@ifinfo -+@node Top, , , (dir) -+@comment node-name, next, Previous, up -+ -+@menu -+* Installing GCC:: This document describes the generic installation -+ procedure for GCC as well as detailing some target -+ specific installation instructions. -+ -+* Specific:: Host/target specific installation notes for GCC. -+* Binaries:: Where to get pre-compiled binaries. -+ -+* Old:: Old installation documentation. -+ -+* GNU Free Documentation License:: How you can copy and share this manual. -+* Concept Index:: This index has two entries. -+@end menu -+@end ifinfo -+ -+@iftex -+@contents -+@end iftex -+ -+@c Part 5 The Body of the Document -+@c ***Installing GCC********************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Installing GCC, Binaries, , Top -+@end ifnothtml -+@ifset indexhtml -+@ifnothtml -+@chapter Installing GCC -+@end ifnothtml -+ -+The latest version of this document is always available at -+@uref{http://gcc.gnu.org/install/,,http://gcc.gnu.org/install/}. -+ -+This document describes the generic installation procedure for GCC as well -+as detailing some target specific installation instructions. -+ -+GCC includes several components that previously were separate distributions -+with their own installation instructions. This document supersedes all -+package specific installation instructions. -+ -+@emph{Before} starting the build/install procedure please check the -+@ifnothtml -+@ref{Specific, host/target specific installation notes}. -+@end ifnothtml -+@ifhtml -+@uref{specific.html,,host/target specific installation notes}. -+@end ifhtml -+We recommend you browse the entire generic installation instructions before -+you proceed. -+ -+Lists of successful builds for released versions of GCC are -+available at @uref{http://gcc.gnu.org/buildstat.html}. -+These lists are updated as new information becomes available. -+ -+The installation procedure itself is broken into five steps. -+ -+@ifinfo -+@menu -+* Prerequisites:: -+* Downloading the source:: -+* Configuration:: -+* Building:: -+* Testing:: (optional) -+* Final install:: -+@end menu -+@end ifinfo -+@ifhtml -+@enumerate -+@item -+@uref{prerequisites.html,,Prerequisites} -+@item -+@uref{download.html,,Downloading the source} -+@item -+@uref{configure.html,,Configuration} -+@item -+@uref{build.html,,Building} -+@item -+@uref{test.html,,Testing} (optional) -+@item -+@uref{finalinstall.html,,Final install} -+@end enumerate -+@end ifhtml -+ -+Please note that GCC does not support @samp{make uninstall} and probably -+won't do so in the near future as this would open a can of worms. Instead, -+we suggest that you install GCC into a directory of its own and simply -+remove that directory when you do not need that specific version of GCC -+any longer, and, if shared libraries are installed there as well, no -+more binaries exist that use them. -+ -+@ifhtml -+There are also some @uref{old.html,,old installation instructions}, -+which are mostly obsolete but still contain some information which has -+not yet been merged into the main part of this manual. -+@end ifhtml -+ -+@html -+
-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+ -+@insertcopying -+@end ifhtml -+@end ifset -+ -+@c ***Prerequisites************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Prerequisites, Downloading the source, , Installing GCC -+@end ifnothtml -+@ifset prerequisiteshtml -+@ifnothtml -+@chapter Prerequisites -+@end ifnothtml -+@cindex Prerequisites -+ -+GCC requires that various tools and packages be available for use in the -+build procedure. Modifying GCC sources requires additional tools -+described below. -+ -+@heading Tools/packages necessary for building GCC -+@table @asis -+@item ISO C90 compiler -+Necessary to bootstrap GCC, although versions of GCC prior -+to 3.4 also allow bootstrapping with a traditional (K&R) C compiler. -+ -+To build all languages in a cross-compiler or other configuration where -+3-stage bootstrap is not performed, you need to start with an existing -+GCC binary (version 2.95 or later) because source code for language -+frontends other than C might use GCC extensions. -+ -+@item GNAT -+ -+In order to build the Ada compiler (GNAT) you must already have GNAT -+installed because portions of the Ada frontend are written in Ada (with -+GNAT extensions.) Refer to the Ada installation instructions for more -+specific information. -+ -+@item A ``working'' POSIX compatible shell, or GNU bash -+ -+Necessary when running @command{configure} because some -+@command{/bin/sh} shells have bugs and may crash when configuring the -+target libraries. In other cases, @command{/bin/sh} or @command{ksh} -+have disastrous corner-case performance problems. This -+can cause target @command{configure} runs to literally take days to -+complete in some cases. -+ -+So on some platforms @command{/bin/ksh} is sufficient, on others it -+isn't. See the host/target specific instructions for your platform, or -+use @command{bash} to be sure. Then set @env{CONFIG_SHELL} in your -+environment to your ``good'' shell prior to running -+@command{configure}/@command{make}. -+ -+@command{zsh} is not a fully compliant POSIX shell and will not -+work when configuring GCC@. -+ -+@item A POSIX or SVR4 awk -+ -+Necessary for creating some of the generated source files for GCC@. -+If in doubt, use a recent GNU awk version, as some of the older ones -+are broken. GNU awk version 3.1.5 is known to work. -+ -+@item GNU binutils -+ -+Necessary in some circumstances, optional in others. See the -+host/target specific instructions for your platform for the exact -+requirements. -+ -+@item gzip version 1.2.4 (or later) or -+@itemx bzip2 version 1.0.2 (or later) -+ -+Necessary to uncompress GCC @command{tar} files when source code is -+obtained via FTP mirror sites. -+ -+@item GNU make version 3.80 (or later) -+ -+You must have GNU make installed to build GCC@. -+ -+@item GNU tar version 1.14 (or later) -+ -+Necessary (only on some platforms) to untar the source code. Many -+systems' @command{tar} programs will also work, only try GNU -+@command{tar} if you have problems. -+ -+@item GNU Multiple Precision Library (GMP) version 4.1 (or later) -+ -+Necessary to build GCC@. If you do not have it installed in your -+library search path, you will have to configure with the -+@option{--with-gmp} configure option. See also @option{--with-gmp-lib} -+and @option{--with-gmp-include}. Alternatively, if a GMP source -+distribution is found in a subdirectory of your GCC sources named -+@file{gmp}, it will be built together with GCC@. -+ -+@item MPFR Library version 2.3.2 (or later) -+ -+Necessary to build GCC@. It can be downloaded from -+@uref{http://www.mpfr.org/}. The version of MPFR that is bundled with -+GMP 4.1.x contains numerous bugs. Although GCC may appear to function -+with the buggy versions of MPFR, there are a few bugs that will not be -+fixed when using this version. It is strongly recommended to upgrade -+to the recommended version of MPFR. -+ -+The @option{--with-mpfr} configure option should be used if your MPFR -+Library is not installed in your default library search path. See also -+@option{--with-mpfr-lib} and @option{--with-mpfr-include}. -+Alternatively, if a MPFR source distribution is found in a subdirectory -+of your GCC sources named @file{mpfr}, it will be built together with -+GCC@. -+ -+@item Parma Polyhedra Library (PPL) version 0.10 -+ -+Necessary to build GCC with the Graphite loop optimizations. -+It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}. -+ -+The @option{--with-ppl} configure option should be used if PPL is not -+installed in your default library search path. -+ -+@item CLooG-PPL version 0.15 -+ -+Necessary to build GCC with the Graphite loop optimizations. It can -+be downloaded from @uref{ftp://gcc.gnu.org/pub/gcc/infrastructure/}. -+The code in @file{cloog-ppl-0.15.tar.gz} comes from a branch of CLooG -+available from @uref{http://repo.or.cz/w/cloog-ppl.git}. CLooG-PPL -+should be configured with @option{--with-ppl}. -+ -+The @option{--with-cloog} configure option should be used if CLooG is -+not installed in your default library search path. -+ -+@item @command{jar}, or InfoZIP (@command{zip} and @command{unzip}) -+ -+Necessary to build libgcj, the GCJ runtime. -+ -+@end table -+ -+ -+@heading Tools/packages necessary for modifying GCC -+@table @asis -+@item autoconf version 2.59 -+@itemx GNU m4 version 1.4 (or later) -+ -+Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@: -+to regenerate @file{configure} and @file{config.in} files. -+ -+@item automake version 1.9.6 -+ -+Necessary when modifying a @file{Makefile.am} file to regenerate its -+associated @file{Makefile.in}. -+ -+Much of GCC does not use automake, so directly edit the @file{Makefile.in} -+file. Specifically this applies to the @file{gcc}, @file{intl}, -+@file{libcpp}, @file{libiberty}, @file{libobjc} directories as well -+as any of their subdirectories. -+ -+For directories that use automake, GCC requires the latest release in -+the 1.9.x series, which is currently 1.9.6. When regenerating a directory -+to a newer version, please update all the directories using an older 1.9.x -+to the latest released version. -+ -+@item gettext version 0.14.5 (or later) -+ -+Needed to regenerate @file{gcc.pot}. -+ -+@item gperf version 2.7.2 (or later) -+ -+Necessary when modifying @command{gperf} input files, e.g.@: -+@file{gcc/cp/cfns.gperf} to regenerate its associated header file, e.g.@: -+@file{gcc/cp/cfns.h}. -+ -+@item DejaGnu 1.4.4 -+@itemx Expect -+@itemx Tcl -+ -+Necessary to run the GCC testsuite; see the section on testing for details. -+ -+@item autogen version 5.5.4 (or later) and -+@itemx guile version 1.4.1 (or later) -+ -+Necessary to regenerate @file{fixinc/fixincl.x} from -+@file{fixinc/inclhack.def} and @file{fixinc/*.tpl}. -+ -+Necessary to run @samp{make check} for @file{fixinc}. -+ -+Necessary to regenerate the top level @file{Makefile.in} file from -+@file{Makefile.tpl} and @file{Makefile.def}. -+ -+@item Flex version 2.5.4 (or later) -+ -+Necessary when modifying @file{*.l} files. -+ -+Necessary to build GCC during development because the generated output -+files are not included in the SVN repository. They are included in -+releases. -+ -+@item Texinfo version 4.7 (or later) -+ -+Necessary for running @command{makeinfo} when modifying @file{*.texi} -+files to test your changes. -+ -+Necessary for running @command{make dvi} or @command{make pdf} to -+create printable documentation in DVI or PDF format. Texinfo version -+4.8 or later is required for @command{make pdf}. -+ -+Necessary to build GCC documentation during development because the -+generated output files are not included in the SVN repository. They are -+included in releases. -+ -+@item @TeX{} (any working version) -+ -+Necessary for running @command{texi2dvi} and @command{texi2pdf}, which -+are used when running @command{make dvi} or @command{make pdf} to create -+DVI or PDF files, respectively. -+ -+@item SVN (any version) -+@itemx SSH (any version) -+ -+Necessary to access the SVN repository. Public releases and weekly -+snapshots of the development sources are also available via FTP@. -+ -+@item Perl version 5.6.1 (or later) -+ -+Necessary when regenerating @file{Makefile} dependencies in libiberty. -+Necessary when regenerating @file{libiberty/functions.texi}. -+Necessary when generating manpages from Texinfo manuals. -+Necessary when targetting Darwin, building libstdc++, -+and not using @option{--disable-symvers}. -+Used by various scripts to generate some files included in SVN (mainly -+Unicode-related and rarely changing) from source tables. -+ -+@item GNU diffutils version 2.7 (or later) -+ -+Useful when submitting patches for the GCC source code. -+ -+@item patch version 2.5.4 (or later) -+ -+Necessary when applying patches, created with @command{diff}, to one's -+own sources. -+ -+@item ecj1 -+@itemx gjavah -+ -+If you wish to modify @file{.java} files in libjava, you will need to -+configure with @option{--enable-java-maintainer-mode}, and you will need -+to have executables named @command{ecj1} and @command{gjavah} in your path. -+The @command{ecj1} executable should run the Eclipse Java compiler via -+the GCC-specific entry point. You can download a suitable jar from -+@uref{ftp://sourceware.org/pub/java/}, or by running the script -+@command{contrib/download_ecj}. -+ -+@item antlr.jar version 2.7.1 (or later) -+@itemx antlr binary -+ -+If you wish to build the @command{gjdoc} binary in libjava, you will -+need to have a @file{antlr.jar} library available. The library is -+searched in system locations but can be configured with -+@option{--with-antlr-jar=} instead. When configuring with -+@option{--enable-java-maintainer-mode}, you will need to have one of -+the executables named @command{cantlr}, @command{runantlr} or -+@command{antlr} in your path. -+ -+@end table -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Downloading the source************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Downloading the source, Configuration, Prerequisites, Installing GCC -+@end ifnothtml -+@ifset downloadhtml -+@ifnothtml -+@chapter Downloading GCC -+@end ifnothtml -+@cindex Downloading GCC -+@cindex Downloading the Source -+ -+GCC is distributed via @uref{http://gcc.gnu.org/svn.html,,SVN} and FTP -+tarballs compressed with @command{gzip} or -+@command{bzip2}. It is possible to download a full distribution or specific -+components. -+ -+Please refer to the @uref{http://gcc.gnu.org/releases.html,,releases web page} -+for information on how to obtain GCC@. -+ -+The full distribution includes the C, C++, Objective-C, Fortran, Java, -+and Ada (in the case of GCC 3.1 and later) compilers. The full -+distribution also includes runtime libraries for C++, Objective-C, -+Fortran, and Java. In GCC 3.0 and later versions, the GNU compiler -+testsuites are also included in the full distribution. -+ -+If you choose to download specific components, you must download the core -+GCC distribution plus any language specific distributions you wish to -+use. The core distribution includes the C language front end as well as the -+shared components. Each language has a tarball which includes the language -+front end as well as the language runtime (when appropriate). -+ -+Unpack the core distribution as well as any language specific -+distributions in the same directory. -+ -+If you also intend to build binutils (either to upgrade an existing -+installation or for use in place of the corresponding tools of your -+OS), unpack the binutils distribution either in the same directory or -+a separate one. In the latter case, add symbolic links to any -+components of the binutils you intend to build alongside the compiler -+(@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld}, -+@file{opcodes}, @dots{}) to the directory containing the GCC sources. -+ -+Likewise, the GMP and MPFR libraries can be automatically built together -+with GCC. Unpack the GMP and/or MPFR source distributions in the -+directory containing the GCC sources and rename their directories to -+@file{gmp} and @file{mpfr}, respectively (or use symbolic links with the -+same name). -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Configuration*********************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Configuration, Building, Downloading the source, Installing GCC -+@end ifnothtml -+@ifset configurehtml -+@ifnothtml -+@chapter Installing GCC: Configuration -+@end ifnothtml -+@cindex Configuration -+@cindex Installing GCC: Configuration -+ -+Like most GNU software, GCC must be configured before it can be built. -+This document describes the recommended configuration procedure -+for both native and cross targets. -+ -+We use @var{srcdir} to refer to the toplevel source directory for -+GCC; we use @var{objdir} to refer to the toplevel build/object directory. -+ -+If you obtained the sources via SVN, @var{srcdir} must refer to the top -+@file{gcc} directory, the one where the @file{MAINTAINERS} can be found, -+and not its @file{gcc} subdirectory, otherwise the build will fail. -+ -+If either @var{srcdir} or @var{objdir} is located on an automounted NFS -+file system, the shell's built-in @command{pwd} command will return -+temporary pathnames. Using these can lead to various sorts of build -+problems. To avoid this issue, set the @env{PWDCMD} environment -+variable to an automounter-aware @command{pwd} command, e.g., -+@command{pawd} or @samp{amq -w}, during the configuration and build -+phases. -+ -+First, we @strong{highly} recommend that GCC be built into a -+separate directory than the sources which does @strong{not} reside -+within the source tree. This is how we generally build GCC; building -+where @var{srcdir} == @var{objdir} should still work, but doesn't -+get extensive testing; building where @var{objdir} is a subdirectory -+of @var{srcdir} is unsupported. -+ -+If you have previously built GCC in the same directory for a -+different target machine, do @samp{make distclean} to delete all files -+that might be invalid. One of the files this deletes is @file{Makefile}; -+if @samp{make distclean} complains that @file{Makefile} does not exist -+or issues a message like ``don't know how to make distclean'' it probably -+means that the directory is already suitably clean. However, with the -+recommended method of building in a separate @var{objdir}, you should -+simply use a different @var{objdir} for each target. -+ -+Second, when configuring a native system, either @command{cc} or -+@command{gcc} must be in your path or you must set @env{CC} in -+your environment before running configure. Otherwise the configuration -+scripts may fail. -+ -+@ignore -+Note that the bootstrap compiler and the resulting GCC must be link -+compatible, else the bootstrap will fail with linker errors about -+incompatible object file formats. Several multilibed targets are -+affected by this requirement, see -+@ifnothtml -+@ref{Specific, host/target specific installation notes}. -+@end ifnothtml -+@ifhtml -+@uref{specific.html,,host/target specific installation notes}. -+@end ifhtml -+@end ignore -+ -+To configure GCC: -+ -+@smallexample -+ % mkdir @var{objdir} -+ % cd @var{objdir} -+ % @var{srcdir}/configure [@var{options}] [@var{target}] -+@end smallexample -+ -+@heading Distributor options -+ -+If you will be distributing binary versions of GCC, with modifications -+to the source code, you should use the options described in this -+section to make clear that your version contains modifications. -+ -+@table @code -+@item --with-pkgversion=@var{version} -+Specify a string that identifies your package. You may wish -+to include a build number or build date. This version string will be -+included in the output of @command{gcc --version}. This suffix does -+not replace the default version string, only the @samp{GCC} part. -+ -+The default value is @samp{GCC}. -+ -+@item --with-bugurl=@var{url} -+Specify the URL that users should visit if they wish to report a bug. -+You are of course welcome to forward bugs reported to you to the FSF, -+if you determine that they are not bugs in your modifications. -+ -+The default value refers to the FSF's GCC bug tracker. -+ -+@end table -+ -+@heading Target specification -+@itemize @bullet -+@item -+GCC has code to correctly determine the correct value for @var{target} -+for nearly all native systems. Therefore, we highly recommend you not -+provide a configure target when configuring a native compiler. -+ -+@item -+@var{target} must be specified as @option{--target=@var{target}} -+when configuring a cross compiler; examples of valid targets would be -+m68k-coff, sh-elf, etc. -+ -+@item -+Specifying just @var{target} instead of @option{--target=@var{target}} -+implies that the host defaults to @var{target}. -+@end itemize -+ -+ -+@heading Options specification -+ -+Use @var{options} to override several configure time options for -+GCC@. A list of supported @var{options} follows; @samp{configure -+--help} may list other options, but those not listed below may not -+work and should not normally be used. -+ -+Note that each @option{--enable} option has a corresponding -+@option{--disable} option and that each @option{--with} option has a -+corresponding @option{--without} option. -+ -+@table @code -+@item --prefix=@var{dirname} -+Specify the toplevel installation -+directory. This is the recommended way to install the tools into a directory -+other than the default. The toplevel installation directory defaults to -+@file{/usr/local}. -+ -+We @strong{highly} recommend against @var{dirname} being the same or a -+subdirectory of @var{objdir} or vice versa. If specifying a directory -+beneath a user's home directory tree, some shells will not expand -+@var{dirname} correctly if it contains the @samp{~} metacharacter; use -+@env{$HOME} instead. -+ -+The following standard @command{autoconf} options are supported. Normally you -+should not need to use these options. -+@table @code -+@item --exec-prefix=@var{dirname} -+Specify the toplevel installation directory for architecture-dependent -+files. The default is @file{@var{prefix}}. -+ -+@item --bindir=@var{dirname} -+Specify the installation directory for the executables called by users -+(such as @command{gcc} and @command{g++}). The default is -+@file{@var{exec-prefix}/bin}. -+ -+@item --libdir=@var{dirname} -+Specify the installation directory for object code libraries and -+internal data files of GCC@. The default is @file{@var{exec-prefix}/lib}. -+ -+@item --libexecdir=@var{dirname} -+Specify the installation directory for internal executables of GCC@. -+The default is @file{@var{exec-prefix}/libexec}. -+ -+@item --with-slibdir=@var{dirname} -+Specify the installation directory for the shared libgcc library. The -+default is @file{@var{libdir}}. -+ -+@item --infodir=@var{dirname} -+Specify the installation directory for documentation in info format. -+The default is @file{@var{prefix}/info}. -+ -+@item --datadir=@var{dirname} -+Specify the installation directory for some architecture-independent -+data files referenced by GCC@. The default is @file{@var{prefix}/share}. -+ -+@item --mandir=@var{dirname} -+Specify the installation directory for manual pages. The default is -+@file{@var{prefix}/man}. (Note that the manual pages are only extracts from -+the full GCC manuals, which are provided in Texinfo format. The manpages -+are derived by an automatic conversion process from parts of the full -+manual.) -+ -+@item --with-gxx-include-dir=@var{dirname} -+Specify -+the installation directory for G++ header files. The default is -+@file{@var{prefix}/include/c++/@var{version}}. -+ -+@end table -+ -+@item --program-prefix=@var{prefix} -+GCC supports some transformations of the names of its programs when -+installing them. This option prepends @var{prefix} to the names of -+programs to install in @var{bindir} (see above). For example, specifying -+@option{--program-prefix=foo-} would result in @samp{gcc} -+being installed as @file{/usr/local/bin/foo-gcc}. -+ -+@item --program-suffix=@var{suffix} -+Appends @var{suffix} to the names of programs to install in @var{bindir} -+(see above). For example, specifying @option{--program-suffix=-3.1} -+would result in @samp{gcc} being installed as -+@file{/usr/local/bin/gcc-3.1}. -+ -+@item --program-transform-name=@var{pattern} -+Applies the @samp{sed} script @var{pattern} to be applied to the names -+of programs to install in @var{bindir} (see above). @var{pattern} has to -+consist of one or more basic @samp{sed} editing commands, separated by -+semicolons. For example, if you want the @samp{gcc} program name to be -+transformed to the installed program @file{/usr/local/bin/myowngcc} and -+the @samp{g++} program name to be transformed to -+@file{/usr/local/bin/gspecial++} without changing other program names, -+you could use the pattern -+@option{--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'} -+to achieve this effect. -+ -+All three options can be combined and used together, resulting in more -+complex conversion patterns. As a basic rule, @var{prefix} (and -+@var{suffix}) are prepended (appended) before further transformations -+can happen with a special transformation script @var{pattern}. -+ -+As currently implemented, this option only takes effect for native -+builds; cross compiler binaries' names are not transformed even when a -+transformation is explicitly asked for by one of these options. -+ -+For native builds, some of the installed programs are also installed -+with the target alias in front of their name, as in -+@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen -+before the target alias is prepended to the name---so, specifying -+@option{--program-prefix=foo-} and @option{program-suffix=-3.1}, the -+resulting binary would be installed as -+@file{/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1}. -+ -+As a last shortcoming, none of the installed Ada programs are -+transformed yet, which will be fixed in some time. -+ -+@item --with-local-prefix=@var{dirname} -+Specify the -+installation directory for local include files. The default is -+@file{/usr/local}. Specify this option if you want the compiler to -+search directory @file{@var{dirname}/include} for locally installed -+header files @emph{instead} of @file{/usr/local/include}. -+ -+You should specify @option{--with-local-prefix} @strong{only} if your -+site has a different convention (not @file{/usr/local}) for where to put -+site-specific files. -+ -+The default value for @option{--with-local-prefix} is @file{/usr/local} -+regardless of the value of @option{--prefix}. Specifying -+@option{--prefix} has no effect on which directory GCC searches for -+local header files. This may seem counterintuitive, but actually it is -+logical. -+ -+The purpose of @option{--prefix} is to specify where to @emph{install -+GCC}. The local header files in @file{/usr/local/include}---if you put -+any in that directory---are not part of GCC@. They are part of other -+programs---perhaps many others. (GCC installs its own header files in -+another directory which is based on the @option{--prefix} value.) -+ -+Both the local-prefix include directory and the GCC-prefix include -+directory are part of GCC's ``system include'' directories. Although these -+two directories are not fixed, they need to be searched in the proper -+order for the correct processing of the include_next directive. The -+local-prefix include directory is searched before the GCC-prefix -+include directory. Another characteristic of system include directories -+is that pedantic warnings are turned off for headers in these directories. -+ -+Some autoconf macros add @option{-I @var{directory}} options to the -+compiler command line, to ensure that directories containing installed -+packages' headers are searched. When @var{directory} is one of GCC's -+system include directories, GCC will ignore the option so that system -+directories continue to be processed in the correct order. This -+may result in a search order different from what was specified but the -+directory will still be searched. -+ -+GCC automatically searches for ordinary libraries using -+@env{GCC_EXEC_PREFIX}. Thus, when the same installation prefix is -+used for both GCC and packages, GCC will automatically search for -+both headers and libraries. This provides a configuration that is -+easy to use. GCC behaves in a manner similar to that when it is -+installed as a system compiler in @file{/usr}. -+ -+Sites that need to install multiple versions of GCC may not want to -+use the above simple configuration. It is possible to use the -+@option{--program-prefix}, @option{--program-suffix} and -+@option{--program-transform-name} options to install multiple versions -+into a single directory, but it may be simpler to use different prefixes -+and the @option{--with-local-prefix} option to specify the location of the -+site-specific files for each version. It will then be necessary for -+users to specify explicitly the location of local site libraries -+(e.g., with @env{LIBRARY_PATH}). -+ -+The same value can be used for both @option{--with-local-prefix} and -+@option{--prefix} provided it is not @file{/usr}. This can be used -+to avoid the default search of @file{/usr/local/include}. -+ -+@strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}! -+The directory you use for @option{--with-local-prefix} @strong{must not} -+contain any of the system's standard header files. If it did contain -+them, certain programs would be miscompiled (including GNU Emacs, on -+certain targets), because this would override and nullify the header -+file corrections made by the @command{fixincludes} script. -+ -+Indications are that people who use this option use it based on mistaken -+ideas of what it is for. People use it as if it specified where to -+install part of GCC@. Perhaps they make this assumption because -+installing GCC creates the directory. -+ -+@item --enable-shared[=@var{package}[,@dots{}]] -+Build shared versions of libraries, if shared libraries are supported on -+the target platform. Unlike GCC 2.95.x and earlier, shared libraries -+are enabled by default on all platforms that support shared libraries. -+ -+If a list of packages is given as an argument, build shared libraries -+only for the listed packages. For other packages, only static libraries -+will be built. Package names currently recognized in the GCC tree are -+@samp{libgcc} (also known as @samp{gcc}), @samp{libstdc++} (not -+@samp{libstdc++-v3}), @samp{libffi}, @samp{zlib}, @samp{boehm-gc}, -+@samp{ada}, @samp{libada}, @samp{libjava} and @samp{libobjc}. -+Note @samp{libiberty} does not support shared libraries at all. -+ -+Use @option{--disable-shared} to build only static libraries. Note that -+@option{--disable-shared} does not accept a list of package names as -+argument, only @option{--enable-shared} does. -+ -+@item @anchor{with-gnu-as}--with-gnu-as -+Specify that the compiler should assume that the -+assembler it finds is the GNU assembler. However, this does not modify -+the rules to find an assembler and will result in confusion if the -+assembler found is not actually the GNU assembler. (Confusion may also -+result if the compiler finds the GNU assembler but has not been -+configured with @option{--with-gnu-as}.) If you have more than one -+assembler installed on your system, you may want to use this option in -+connection with @option{--with-as=@var{pathname}} or -+@option{--with-build-time-tools=@var{pathname}}. -+ -+The following systems are the only ones where it makes a difference -+whether you use the GNU assembler. On any other system, -+@option{--with-gnu-as} has no effect. -+ -+@itemize @bullet -+@item @samp{hppa1.0-@var{any}-@var{any}} -+@item @samp{hppa1.1-@var{any}-@var{any}} -+@item @samp{sparc-sun-solaris2.@var{any}} -+@item @samp{sparc64-@var{any}-solaris2.@var{any}} -+@end itemize -+ -+@item @anchor{with-as}--with-as=@var{pathname} -+Specify that the compiler should use the assembler pointed to by -+@var{pathname}, rather than the one found by the standard rules to find -+an assembler, which are: -+@itemize @bullet -+@item -+Unless GCC is being built with a cross compiler, check the -+@file{@var{libexec}/gcc/@var{target}/@var{version}} directory. -+@var{libexec} defaults to @file{@var{exec-prefix}/libexec}; -+@var{exec-prefix} defaults to @var{prefix}, which -+defaults to @file{/usr/local} unless overridden by the -+@option{--prefix=@var{pathname}} switch described above. @var{target} -+is the target system triple, such as @samp{sparc-sun-solaris2.7}, and -+@var{version} denotes the GCC version, such as 3.0. -+ -+@item -+If the target system is the same that you are building on, check -+operating system specific directories (e.g.@: @file{/usr/ccs/bin} on -+Sun Solaris 2). -+ -+@item -+Check in the @env{PATH} for a tool whose name is prefixed by the -+target system triple. -+ -+@item -+Check in the @env{PATH} for a tool whose name is not prefixed by the -+target system triple, if the host and target system triple are -+the same (in other words, we use a host tool if it can be used for -+the target as well). -+@end itemize -+ -+You may want to use @option{--with-as} if no assembler -+is installed in the directories listed above, or if you have multiple -+assemblers installed and want to choose one that is not found by the -+above rules. -+ -+@item @anchor{with-gnu-ld}--with-gnu-ld -+Same as @uref{#with-gnu-as,,@option{--with-gnu-as}} -+but for the linker. -+ -+@item --with-ld=@var{pathname} -+Same as @uref{#with-as,,@option{--with-as}} -+but for the linker. -+ -+@item --with-stabs -+Specify that stabs debugging -+information should be used instead of whatever format the host normally -+uses. Normally GCC uses the same debug format as the host system. -+ -+On MIPS based systems and on Alphas, you must specify whether you want -+GCC to create the normal ECOFF debugging format, or to use BSD-style -+stabs passed through the ECOFF symbol table. The normal ECOFF debug -+format cannot fully handle languages other than C@. BSD stabs format can -+handle other languages, but it only works with the GNU debugger GDB@. -+ -+Normally, GCC uses the ECOFF debugging format by default; if you -+prefer BSD stabs, specify @option{--with-stabs} when you configure GCC@. -+ -+No matter which default you choose when you configure GCC, the user -+can use the @option{-gcoff} and @option{-gstabs+} options to specify explicitly -+the debug format for a particular compilation. -+ -+@option{--with-stabs} is meaningful on the ISC system on the 386, also, if -+@option{--with-gas} is used. It selects use of stabs debugging -+information embedded in COFF output. This kind of debugging information -+supports C++ well; ordinary COFF debugging information does not. -+ -+@option{--with-stabs} is also meaningful on 386 systems running SVR4. It -+selects use of stabs debugging information embedded in ELF output. The -+C++ compiler currently (2.6.0) does not support the DWARF debugging -+information normally used on 386 SVR4 platforms; stabs provide a -+workable alternative. This requires gas and gdb, as the normal SVR4 -+tools can not generate or interpret stabs. -+ -+@item --disable-multilib -+Specify that multiple target -+libraries to support different target variants, calling -+conventions, etc.@: should not be built. The default is to build a -+predefined set of them. -+ -+Some targets provide finer-grained control over which multilibs are built -+(e.g., @option{--disable-softfloat}): -+@table @code -+@item arc-*-elf* -+biendian. -+ -+@item arm-*-* -+fpu, 26bit, underscore, interwork, biendian, nofmult. -+ -+@item m68*-*-* -+softfloat, m68881, m68000, m68020. -+ -+@item mips*-*-* -+single-float, biendian, softfloat. -+ -+@item powerpc*-*-*, rs6000*-*-* -+aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, -+sysv, aix. -+ -+@end table -+ -+@item --enable-threads -+Specify that the target -+supports threads. This affects the Objective-C compiler and runtime -+library, and exception handling for other languages like C++ and Java. -+On some systems, this is the default. -+ -+In general, the best (and, in many cases, the only known) threading -+model available will be configured for use. Beware that on some -+systems, GCC has not been taught what threading models are generally -+available for the system. In this case, @option{--enable-threads} is an -+alias for @option{--enable-threads=single}. -+ -+@item --disable-threads -+Specify that threading support should be disabled for the system. -+This is an alias for @option{--enable-threads=single}. -+ -+@item --enable-threads=@var{lib} -+Specify that -+@var{lib} is the thread support library. This affects the Objective-C -+compiler and runtime library, and exception handling for other languages -+like C++ and Java. The possibilities for @var{lib} are: -+ -+@table @code -+@item aix -+AIX thread support. -+@item dce -+DCE thread support. -+@item gnat -+Ada tasking support. For non-Ada programs, this setting is equivalent -+to @samp{single}. When used in conjunction with the Ada run time, it -+causes GCC to use the same thread primitives as Ada uses. This option -+is necessary when using both Ada and the back end exception handling, -+which is the default for most Ada targets. -+@item mach -+Generic MACH thread support, known to work on NeXTSTEP@. (Please note -+that the file needed to support this configuration, @file{gthr-mach.h}, is -+missing and thus this setting will cause a known bootstrap failure.) -+@item no -+This is an alias for @samp{single}. -+@item posix -+Generic POSIX/Unix98 thread support. -+@item posix95 -+Generic POSIX/Unix95 thread support. -+@item rtems -+RTEMS thread support. -+@item single -+Disable thread support, should work for all platforms. -+@item solaris -+Sun Solaris 2 thread support. -+@item vxworks -+VxWorks thread support. -+@item win32 -+Microsoft Win32 API thread support. -+@item nks -+Novell Kernel Services thread support. -+@end table -+ -+@item --enable-tls -+Specify that the target supports TLS (Thread Local Storage). Usually -+configure can correctly determine if TLS is supported. In cases where -+it guesses incorrectly, TLS can be explicitly enabled or disabled with -+@option{--enable-tls} or @option{--disable-tls}. This can happen if -+the assembler supports TLS but the C library does not, or if the -+assumptions made by the configure test are incorrect. -+ -+@item --disable-tls -+Specify that the target does not support TLS. -+This is an alias for @option{--enable-tls=no}. -+ -+@item --with-cpu=@var{cpu} -+@itemx --with-cpu-32=@var{cpu} -+@itemx --with-cpu-64=@var{cpu} -+Specify which cpu variant the compiler should generate code for by default. -+@var{cpu} will be used as the default value of the @option{-mcpu=} switch. -+This option is only supported on some targets, including ARM, i386, M68k, -+PowerPC, and SPARC@. The @option{--with-cpu-32} and -+@option{--with-cpu-64} options specify separate default CPUs for -+32-bit and 64-bit modes; these options are only supported for i386 and -+x86-64. -+ -+@item --with-schedule=@var{cpu} -+@itemx --with-arch=@var{cpu} -+@itemx --with-arch-32=@var{cpu} -+@itemx --with-arch-64=@var{cpu} -+@itemx --with-tune=@var{cpu} -+@itemx --with-tune-32=@var{cpu} -+@itemx --with-tune-64=@var{cpu} -+@itemx --with-abi=@var{abi} -+@itemx --with-fpu=@var{type} -+@itemx --with-float=@var{type} -+These configure options provide default values for the @option{-mschedule=}, -+@option{-march=}, @option{-mtune=}, @option{-mabi=}, and @option{-mfpu=} -+options and for @option{-mhard-float} or @option{-msoft-float}. As with -+@option{--with-cpu}, which switches will be accepted and acceptable values -+of the arguments depend on the target. -+ -+@item --with-mode=@var{mode} -+Specify if the compiler should default to @option{-marm} or @option{-mthumb}. -+This option is only supported on ARM targets. -+ -+@item --with-divide=@var{type} -+Specify how the compiler should generate code for checking for -+division by zero. This option is only supported on the MIPS target. -+The possibilities for @var{type} are: -+@table @code -+@item traps -+Division by zero checks use conditional traps (this is the default on -+systems that support conditional traps). -+@item breaks -+Division by zero checks use the break instruction. -+@end table -+ -+@c If you make --with-llsc the default for additional targets, -+@c update the --with-llsc description in the MIPS section below. -+ -+@item --with-llsc -+On MIPS targets, make @option{-mllsc} the default when no -+@option{-mno-lsc} option is passed. This is the default for -+Linux-based targets, as the kernel will emulate them if the ISA does -+not provide them. -+ -+@item --without-llsc -+On MIPS targets, make @option{-mno-llsc} the default when no -+@option{-mllsc} option is passed. -+ -+@item --with-mips-plt -+On MIPS targets, make use of copy relocations and PLTs. -+These features are extensions to the traditional -+SVR4-based MIPS ABIs and require support from GNU binutils -+and the runtime C library. -+ -+@item --enable-__cxa_atexit -+Define if you want to use __cxa_atexit, rather than atexit, to -+register C++ destructors for local statics and global objects. -+This is essential for fully standards-compliant handling of -+destructors, but requires __cxa_atexit in libc. This option is currently -+only available on systems with GNU libc. When enabled, this will cause -+@option{-fuse-cxa-atexit} to be passed by default. -+ -+@item --enable-target-optspace -+Specify that target -+libraries should be optimized for code space instead of code speed. -+This is the default for the m32r platform. -+ -+@item --disable-cpp -+Specify that a user visible @command{cpp} program should not be installed. -+ -+@item --with-cpp-install-dir=@var{dirname} -+Specify that the user visible @command{cpp} program should be installed -+in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}. -+ -+@item --enable-initfini-array -+Force the use of sections @code{.init_array} and @code{.fini_array} -+(instead of @code{.init} and @code{.fini}) for constructors and -+destructors. Option @option{--disable-initfini-array} has the -+opposite effect. If neither option is specified, the configure script -+will try to guess whether the @code{.init_array} and -+@code{.fini_array} sections are supported and, if they are, use them. -+ -+@item --enable-maintainer-mode -+The build rules that -+regenerate the GCC master message catalog @file{gcc.pot} are normally -+disabled. This is because it can only be rebuilt if the complete source -+tree is present. If you have changed the sources and want to rebuild the -+catalog, configuring with @option{--enable-maintainer-mode} will enable -+this. Note that you need a recent version of the @code{gettext} tools -+to do so. -+ -+@item --disable-bootstrap -+For a native build, the default configuration is to perform -+a 3-stage bootstrap of the compiler when @samp{make} is invoked, -+testing that GCC can compile itself correctly. If you want to disable -+this process, you can configure with @option{--disable-bootstrap}. -+ -+@item --enable-bootstrap -+In special cases, you may want to perform a 3-stage build -+even if the target and host triplets are different. -+This could happen when the host can run code compiled for -+the target (e.g.@: host is i686-linux, target is i486-linux). -+Starting from GCC 4.2, to do this you have to configure explicitly -+with @option{--enable-bootstrap}. -+ -+@item --enable-generated-files-in-srcdir -+Neither the .c and .h files that are generated from Bison and flex nor the -+info manuals and man pages that are built from the .texi files are present -+in the SVN development tree. When building GCC from that development tree, -+or from one of our snapshots, those generated files are placed in your -+build directory, which allows for the source to be in a readonly -+directory. -+ -+If you configure with @option{--enable-generated-files-in-srcdir} then those -+generated files will go into the source directory. This is mainly intended -+for generating release or prerelease tarballs of the GCC sources, since it -+is not a requirement that the users of source releases to have flex, Bison, -+or makeinfo. -+ -+@item --enable-version-specific-runtime-libs -+Specify -+that runtime libraries should be installed in the compiler specific -+subdirectory (@file{@var{libdir}/gcc}) rather than the usual places. In -+addition, @samp{libstdc++}'s include files will be installed into -+@file{@var{libdir}} unless you overruled it by using -+@option{--with-gxx-include-dir=@var{dirname}}. Using this option is -+particularly useful if you intend to use several versions of GCC in -+parallel. This is currently supported by @samp{libgfortran}, -+@samp{libjava}, @samp{libmudflap}, @samp{libstdc++}, and @samp{libobjc}. -+ -+@item --enable-languages=@var{lang1},@var{lang2},@dots{} -+Specify that only a particular subset of compilers and -+their runtime libraries should be built. For a list of valid values for -+@var{langN} you can issue the following command in the -+@file{gcc} directory of your GCC source tree:@* -+@smallexample -+grep language= */config-lang.in -+@end smallexample -+Currently, you can use any of the following: -+@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, @code{java}, -+@code{objc}, @code{obj-c++}. -+Building the Ada compiler has special requirements, see below. -+If you do not pass this flag, or specify the option @code{all}, then all -+default languages available in the @file{gcc} sub-tree will be configured. -+Ada and Objective-C++ are not default languages; the rest are. -+Re-defining @code{LANGUAGES} when calling @samp{make} @strong{does not} -+work anymore, as those language sub-directories might not have been -+configured! -+ -+@item --enable-stage1-languages=@var{lang1},@var{lang2},@dots{} -+Specify that a particular subset of compilers and their runtime -+libraries should be built with the system C compiler during stage 1 of -+the bootstrap process, rather than only in later stages with the -+bootstrapped C compiler. The list of valid values is the same as for -+@option{--enable-languages}, and the option @code{all} will select all -+of the languages enabled by @option{--enable-languages}. This option is -+primarily useful for GCC development; for instance, when a development -+version of the compiler cannot bootstrap due to compiler bugs, or when -+one is debugging front ends other than the C front end. When this -+option is used, one can then build the target libraries for the -+specified languages with the stage-1 compiler by using @command{make -+stage1-bubble all-target}, or run the testsuite on the stage-1 compiler -+for the specified languages using @command{make stage1-start check-gcc}. -+ -+@item --disable-libada -+Specify that the run-time libraries and tools used by GNAT should not -+be built. This can be useful for debugging, or for compatibility with -+previous Ada build procedures, when it was required to explicitly -+do a @samp{make -C gcc gnatlib_and_tools}. -+ -+@item --disable-libssp -+Specify that the run-time libraries for stack smashing protection -+should not be built. -+ -+@item --disable-libgomp -+Specify that the run-time libraries used by GOMP should not be built. -+ -+@item --with-dwarf2 -+Specify that the compiler should -+use DWARF 2 debugging information as the default. -+ -+@item --enable-targets=all -+@itemx --enable-targets=@var{target_list} -+Some GCC targets, e.g.@: powerpc64-linux, build bi-arch compilers. -+These are compilers that are able to generate either 64-bit or 32-bit -+code. Typically, the corresponding 32-bit target, e.g.@: -+powerpc-linux for powerpc64-linux, only generates 32-bit code. This -+option enables the 32-bit target to be a bi-arch compiler, which is -+useful when you want a bi-arch compiler that defaults to 32-bit, and -+you are building a bi-arch or multi-arch binutils in a combined tree. -+Currently, this option only affects sparc-linux, powerpc-linux and -+x86-linux. -+ -+@item --enable-secureplt -+This option enables @option{-msecure-plt} by default for powerpc-linux. -+@ifnothtml -+@xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc, -+Using the GNU Compiler Collection (GCC)}, -+@end ifnothtml -+@ifhtml -+See ``RS/6000 and PowerPC Options'' in the main manual -+@end ifhtml -+ -+@item --enable-cld -+This option enables @option{-mcld} by default for 32-bit x86 targets. -+@ifnothtml -+@xref{i386 and x86-64 Options,, i386 and x86-64 Options, gcc, -+Using the GNU Compiler Collection (GCC)}, -+@end ifnothtml -+@ifhtml -+See ``i386 and x86-64 Options'' in the main manual -+@end ifhtml -+ -+@item --enable-win32-registry -+@itemx --enable-win32-registry=@var{key} -+@itemx --disable-win32-registry -+The @option{--enable-win32-registry} option enables Microsoft Windows-hosted GCC -+to look up installations paths in the registry using the following key: -+ -+@smallexample -+@code{HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\@var{key}} -+@end smallexample -+ -+@var{key} defaults to GCC version number, and can be overridden by the -+@option{--enable-win32-registry=@var{key}} option. Vendors and distributors -+who use custom installers are encouraged to provide a different key, -+perhaps one comprised of vendor name and GCC version number, to -+avoid conflict with existing installations. This feature is enabled -+by default, and can be disabled by @option{--disable-win32-registry} -+option. This option has no effect on the other hosts. -+ -+@item --nfp -+Specify that the machine does not have a floating point unit. This -+option only applies to @samp{m68k-sun-sunos@var{n}}. On any other -+system, @option{--nfp} has no effect. -+ -+@item --enable-werror -+@itemx --disable-werror -+@itemx --enable-werror=yes -+@itemx --enable-werror=no -+When you specify this option, it controls whether certain files in the -+compiler are built with @option{-Werror} in bootstrap stage2 and later. -+If you don't specify it, @option{-Werror} is turned on for the main -+development trunk. However it defaults to off for release branches and -+final releases. The specific files which get @option{-Werror} are -+controlled by the Makefiles. -+ -+@item --enable-checking -+@itemx --enable-checking=@var{list} -+When you specify this option, the compiler is built to perform internal -+consistency checks of the requested complexity. This does not change the -+generated code, but adds error checking within the compiler. This will -+slow down the compiler and may only work properly if you are building -+the compiler with GCC@. This is @samp{yes} by default when building -+from SVN or snapshots, but @samp{release} for releases. The default -+for building the stage1 compiler is @samp{yes}. More control -+over the checks may be had by specifying @var{list}. The categories of -+checks available are @samp{yes} (most common checks -+@samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at -+all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest -+checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}). -+Individual checks can be enabled with these flags @samp{assert}, -+@samp{df}, @samp{fold}, @samp{gc}, @samp{gcac} @samp{misc}, @samp{rtl}, -+@samp{rtlflag}, @samp{runtime}, @samp{tree}, and @samp{valgrind}. -+ -+The @samp{valgrind} check requires the external @command{valgrind} -+simulator, available from @uref{http://valgrind.org/}. The -+@samp{df}, @samp{rtl}, @samp{gcac} and @samp{valgrind} checks are very expensive. -+To disable all checking, @samp{--disable-checking} or -+@samp{--enable-checking=none} must be explicitly requested. Disabling -+assertions will make the compiler and runtime slightly faster but -+increase the risk of undetected internal errors causing wrong code to be -+generated. -+ -+@item --disable-stage1-checking -+@item --enable-stage1-checking -+@itemx --enable-stage1-checking=@var{list} -+If no @option{--enable-checking} option is specified the stage1 -+compiler will be built with @samp{yes} checking enabled, otherwise -+the stage1 checking flags are the same as specified by -+@option{--enable-checking}. To build the stage1 compiler with -+different checking options use @option{--enable-stage1-checking}. -+The list of checking options is the same as for @option{--enable-checking}. -+If your system is too slow or too small to bootstrap a released compiler -+with checking for stage1 enabled, you can use @samp{--disable-stage1-checking} -+to disable checking for the stage1 compiler. -+ -+@item --enable-coverage -+@itemx --enable-coverage=@var{level} -+With this option, the compiler is built to collect self coverage -+information, every time it is run. This is for internal development -+purposes, and only works when the compiler is being built with gcc. The -+@var{level} argument controls whether the compiler is built optimized or -+not, values are @samp{opt} and @samp{noopt}. For coverage analysis you -+want to disable optimization, for performance analysis you want to -+enable optimization. When coverage is enabled, the default level is -+without optimization. -+ -+@item --enable-gather-detailed-mem-stats -+When this option is specified more detailed information on memory -+allocation is gathered. This information is printed when using -+@option{-fmem-report}. -+ -+@item --with-gc -+@itemx --with-gc=@var{choice} -+With this option you can specify the garbage collector implementation -+used during the compilation process. @var{choice} can be one of -+@samp{page} and @samp{zone}, where @samp{page} is the default. -+ -+@item --enable-nls -+@itemx --disable-nls -+The @option{--enable-nls} option enables Native Language Support (NLS), -+which lets GCC output diagnostics in languages other than American -+English. Native Language Support is enabled by default if not doing a -+canadian cross build. The @option{--disable-nls} option disables NLS@. -+ -+@item --with-included-gettext -+If NLS is enabled, the @option{--with-included-gettext} option causes the build -+procedure to prefer its copy of GNU @command{gettext}. -+ -+@item --with-catgets -+If NLS is enabled, and if the host lacks @code{gettext} but has the -+inferior @code{catgets} interface, the GCC build procedure normally -+ignores @code{catgets} and instead uses GCC's copy of the GNU -+@code{gettext} library. The @option{--with-catgets} option causes the -+build procedure to use the host's @code{catgets} in this situation. -+ -+@item --with-libiconv-prefix=@var{dir} -+Search for libiconv header files in @file{@var{dir}/include} and -+libiconv library files in @file{@var{dir}/lib}. -+ -+@item --enable-obsolete -+Enable configuration for an obsoleted system. If you attempt to -+configure GCC for a system (build, host, or target) which has been -+obsoleted, and you do not specify this flag, configure will halt with an -+error message. -+ -+All support for systems which have been obsoleted in one release of GCC -+is removed entirely in the next major release, unless someone steps -+forward to maintain the port. -+ -+@item --enable-decimal-float -+@itemx --enable-decimal-float=yes -+@itemx --enable-decimal-float=no -+@itemx --enable-decimal-float=bid -+@itemx --enable-decimal-float=dpd -+@itemx --disable-decimal-float -+Enable (or disable) support for the C decimal floating point extension -+that is in the IEEE 754-2008 standard. This is enabled by default only -+on PowerPC, i386, and x86_64 GNU/Linux systems. Other systems may also -+support it, but require the user to specifically enable it. You can -+optionally control which decimal floating point format is used (either -+@samp{bid} or @samp{dpd}). The @samp{bid} (binary integer decimal) -+format is default on i386 and x86_64 systems, and the @samp{dpd} -+(densely packed decimal) format is default on PowerPC systems. -+ -+@item --enable-fixed-point -+@itemx --disable-fixed-point -+Enable (or disable) support for C fixed-point arithmetic. -+This option is enabled by default for some targets (such as MIPS) which -+have hardware-support for fixed-point operations. On other targets, you -+may enable this option manually. -+ -+@item --with-long-double-128 -+Specify if @code{long double} type should be 128-bit by default on selected -+GNU/Linux architectures. If using @code{--without-long-double-128}, -+@code{long double} will be by default 64-bit, the same as @code{double} type. -+When neither of these configure options are used, the default will be -+128-bit @code{long double} when built against GNU C Library 2.4 and later, -+64-bit @code{long double} otherwise. -+ -+@item --with-gmp=@var{pathname} -+@itemx --with-gmp-include=@var{pathname} -+@itemx --with-gmp-lib=@var{pathname} -+@itemx --with-mpfr=@var{pathname} -+@itemx --with-mpfr-include=@var{pathname} -+@itemx --with-mpfr-lib=@var{pathname} -+If you do not have GMP (the GNU Multiple Precision library) and the -+MPFR Libraries installed in a standard location and you want to build -+GCC, you can explicitly specify the directory where they are installed -+(@samp{--with-gmp=@var{gmpinstalldir}}, -+@samp{--with-mpfr=@var{mpfrinstalldir}}). The -+@option{--with-gmp=@var{gmpinstalldir}} option is shorthand for -+@option{--with-gmp-lib=@var{gmpinstalldir}/lib} and -+@option{--with-gmp-include=@var{gmpinstalldir}/include}. Likewise the -+@option{--with-mpfr=@var{mpfrinstalldir}} option is shorthand for -+@option{--with-mpfr-lib=@var{mpfrinstalldir}/lib} and -+@option{--with-mpfr-include=@var{mpfrinstalldir}/include}. If these -+shorthand assumptions are not correct, you can use the explicit -+include and lib options directly. -+ -+@item --with-ppl=@var{pathname} -+@itemx --with-ppl-include=@var{pathname} -+@itemx --with-ppl-lib=@var{pathname} -+@itemx --with-cloog=@var{pathname} -+@itemx --with-cloog-include=@var{pathname} -+@itemx --with-cloog-lib=@var{pathname} -+If you do not have PPL (the Parma Polyhedra Library) and the CLooG -+libraries installed in a standard location and you want to build GCC, -+you can explicitly specify the directory where they are installed -+(@samp{--with-ppl=@var{pplinstalldir}}, -+@samp{--with-cloog=@var{clooginstalldir}}). The -+@option{--with-ppl=@var{pplinstalldir}} option is shorthand for -+@option{--with-ppl-lib=@var{pplinstalldir}/lib} and -+@option{--with-ppl-include=@var{pplinstalldir}/include}. Likewise the -+@option{--with-cloog=@var{clooginstalldir}} option is shorthand for -+@option{--with-cloog-lib=@var{clooginstalldir}/lib} and -+@option{--with-cloog-include=@var{clooginstalldir}/include}. If these -+shorthand assumptions are not correct, you can use the explicit -+include and lib options directly. -+ -+@item --with-host-libstdcxx=@var{linker-args} -+If you are linking with a static copy of PPL, you can use this option -+to specify how the linker should find the standard C++ library used -+internally by PPL. Typical values of @var{linker-args} might be -+@samp{-lstdc++} or @samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}. If you are -+linking with a shared copy of PPL, you probably do not need this -+option; shared library dependencies will cause the linker to search -+for the standard C++ library automatically. -+ -+@item --with-debug-prefix-map=@var{map} -+Convert source directory names using @option{-fdebug-prefix-map} when -+building runtime libraries. @samp{@var{map}} is a space-separated -+list of maps of the form @samp{@var{old}=@var{new}}. -+ -+@end table -+ -+@subheading Cross-Compiler-Specific Options -+The following options only apply to building cross compilers. -+@table @code -+@item --with-sysroot -+@itemx --with-sysroot=@var{dir} -+Tells GCC to consider @var{dir} as the root of a tree that contains a -+(subset of) the root filesystem of the target operating system. -+Target system headers, libraries and run-time object files will be -+searched in there. The specified directory is not copied into the -+install tree, unlike the options @option{--with-headers} and -+@option{--with-libs} that this option obsoletes. The default value, -+in case @option{--with-sysroot} is not given an argument, is -+@option{$@{gcc_tooldir@}/sys-root}. If the specified directory is a -+subdirectory of @option{$@{exec_prefix@}}, then it will be found relative to -+the GCC binaries if the installation tree is moved. -+ -+@item --with-build-sysroot -+@itemx --with-build-sysroot=@var{dir} -+Tells GCC to consider @var{dir} as the system root (see -+@option{--with-sysroot}) while building target libraries, instead of -+the directory specified with @option{--with-sysroot}. This option is -+only useful when you are already using @option{--with-sysroot}. You -+can use @option{--with-build-sysroot} when you are configuring with -+@option{--prefix} set to a directory that is different from the one in -+which you are installing GCC and your target libraries. -+ -+This option affects the system root for the compiler used to build -+target libraries (which runs on the build system); it does not affect -+the compiler which is used to build GCC itself. -+ -+@item --with-headers -+@itemx --with-headers=@var{dir} -+Deprecated in favor of @option{--with-sysroot}. -+Specifies that target headers are available when building a cross compiler. -+The @var{dir} argument specifies a directory which has the target include -+files. These include files will be copied into the @file{gcc} install -+directory. @emph{This option with the @var{dir} argument is required} when -+building a cross compiler, if @file{@var{prefix}/@var{target}/sys-include} -+doesn't pre-exist. If @file{@var{prefix}/@var{target}/sys-include} does -+pre-exist, the @var{dir} argument may be omitted. @command{fixincludes} -+will be run on these files to make them compatible with GCC@. -+ -+@item --without-headers -+Tells GCC not use any target headers from a libc when building a cross -+compiler. When crossing to GNU/Linux, you need the headers so GCC -+can build the exception handling for libgcc. -+ -+@item --with-libs -+@itemx --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}'' -+Deprecated in favor of @option{--with-sysroot}. -+Specifies a list of directories which contain the target runtime -+libraries. These libraries will be copied into the @file{gcc} install -+directory. If the directory list is omitted, this option has no -+effect. -+ -+@item --with-newlib -+Specifies that @samp{newlib} is -+being used as the target C library. This causes @code{__eprintf} to be -+omitted from @file{libgcc.a} on the assumption that it will be provided by -+@samp{newlib}. -+ -+@item --with-build-time-tools=@var{dir} -+Specifies where to find the set of target tools (assembler, linker, etc.) -+that will be used while building GCC itself. This option can be useful -+if the directory layouts are different between the system you are building -+GCC on, and the system where you will deploy it. -+ -+For example, on a @option{ia64-hp-hpux} system, you may have the GNU -+assembler and linker in @file{/usr/bin}, and the native tools in a -+different path, and build a toolchain that expects to find the -+native tools in @file{/usr/bin}. -+ -+When you use this option, you should ensure that @var{dir} includes -+@command{ar}, @command{as}, @command{ld}, @command{nm}, -+@command{ranlib} and @command{strip} if necessary, and possibly -+@command{objdump}. Otherwise, GCC may use an inconsistent set of -+tools. -+@end table -+ -+@subheading Java-Specific Options -+ -+The following option applies to the build of the Java front end. -+ -+@table @code -+@item --disable-libgcj -+Specify that the run-time libraries -+used by GCJ should not be built. This is useful in case you intend -+to use GCJ with some other run-time, or you're going to install it -+separately, or it just happens not to build on your particular -+machine. In general, if the Java front end is enabled, the GCJ -+libraries will be enabled too, unless they're known to not work on -+the target platform. If GCJ is enabled but @samp{libgcj} isn't built, you -+may need to port it; in this case, before modifying the top-level -+@file{configure.in} so that @samp{libgcj} is enabled by default on this platform, -+you may use @option{--enable-libgcj} to override the default. -+ -+@end table -+ -+The following options apply to building @samp{libgcj}. -+ -+@subsubheading General Options -+ -+@table @code -+@item --enable-java-maintainer-mode -+By default the @samp{libjava} build will not attempt to compile the -+@file{.java} source files to @file{.class}. Instead, it will use the -+@file{.class} files from the source tree. If you use this option you -+must have executables named @command{ecj1} and @command{gjavah} in your path -+for use by the build. You must use this option if you intend to -+modify any @file{.java} files in @file{libjava}. -+ -+@item --with-java-home=@var{dirname} -+This @samp{libjava} option overrides the default value of the -+@samp{java.home} system property. It is also used to set -+@samp{sun.boot.class.path} to @file{@var{dirname}/lib/rt.jar}. By -+default @samp{java.home} is set to @file{@var{prefix}} and -+@samp{sun.boot.class.path} to -+@file{@var{datadir}/java/libgcj-@var{version}.jar}. -+ -+@item --with-ecj-jar=@var{filename} -+This option can be used to specify the location of an external jar -+file containing the Eclipse Java compiler. A specially modified -+version of this compiler is used by @command{gcj} to parse -+@file{.java} source files. If this option is given, the -+@samp{libjava} build will create and install an @file{ecj1} executable -+which uses this jar file at runtime. -+ -+If this option is not given, but an @file{ecj.jar} file is found in -+the topmost source tree at configure time, then the @samp{libgcj} -+build will create and install @file{ecj1}, and will also install the -+discovered @file{ecj.jar} into a suitable place in the install tree. -+ -+If @file{ecj1} is not installed, then the user will have to supply one -+on his path in order for @command{gcj} to properly parse @file{.java} -+source files. A suitable jar is available from -+@uref{ftp://sourceware.org/pub/java/}. -+ -+@item --disable-getenv-properties -+Don't set system properties from @env{GCJ_PROPERTIES}. -+ -+@item --enable-hash-synchronization -+Use a global hash table for monitor locks. Ordinarily, -+@samp{libgcj}'s @samp{configure} script automatically makes -+the correct choice for this option for your platform. Only use -+this if you know you need the library to be configured differently. -+ -+@item --enable-interpreter -+Enable the Java interpreter. The interpreter is automatically -+enabled by default on all platforms that support it. This option -+is really only useful if you want to disable the interpreter -+(using @option{--disable-interpreter}). -+ -+@item --disable-java-net -+Disable java.net. This disables the native part of java.net only, -+using non-functional stubs for native method implementations. -+ -+@item --disable-jvmpi -+Disable JVMPI support. -+ -+@item --disable-libgcj-bc -+Disable BC ABI compilation of certain parts of libgcj. By default, -+some portions of libgcj are compiled with @option{-findirect-dispatch} -+and @option{-fno-indirect-classes}, allowing them to be overridden at -+run-time. -+ -+If @option{--disable-libgcj-bc} is specified, libgcj is built without -+these options. This allows the compile-time linker to resolve -+dependencies when statically linking to libgcj. However it makes it -+impossible to override the affected portions of libgcj at run-time. -+ -+@item --enable-reduced-reflection -+Build most of libgcj with @option{-freduced-reflection}. This reduces -+the size of libgcj at the expense of not being able to do accurate -+reflection on the classes it contains. This option is safe if you -+know that code using libgcj will never use reflection on the standard -+runtime classes in libgcj (including using serialization, RMI or CORBA). -+ -+@item --with-ecos -+Enable runtime eCos target support. -+ -+@item --without-libffi -+Don't use @samp{libffi}. This will disable the interpreter and JNI -+support as well, as these require @samp{libffi} to work. -+ -+@item --enable-libgcj-debug -+Enable runtime debugging code. -+ -+@item --enable-libgcj-multifile -+If specified, causes all @file{.java} source files to be -+compiled into @file{.class} files in one invocation of -+@samp{gcj}. This can speed up build time, but is more -+resource-intensive. If this option is unspecified or -+disabled, @samp{gcj} is invoked once for each @file{.java} -+file to compile into a @file{.class} file. -+ -+@item --with-libiconv-prefix=DIR -+Search for libiconv in @file{DIR/include} and @file{DIR/lib}. -+ -+@item --enable-sjlj-exceptions -+Force use of the @code{setjmp}/@code{longjmp}-based scheme for exceptions. -+@samp{configure} ordinarily picks the correct value based on the platform. -+Only use this option if you are sure you need a different setting. -+ -+@item --with-system-zlib -+Use installed @samp{zlib} rather than that included with GCC@. -+ -+@item --with-win32-nlsapi=ansi, unicows or unicode -+Indicates how MinGW @samp{libgcj} translates between UNICODE -+characters and the Win32 API@. -+ -+@item --enable-java-home -+If enabled, this creates a JPackage compatible SDK environment during install. -+Note that if --enable-java-home is used, --with-arch-directory=ARCH must also -+be specified. -+ -+@item --with-arch-directory=ARCH -+Specifies the name to use for the @file{jre/lib/ARCH} directory in the SDK -+environment created when --enable-java-home is passed. Typical names for this -+directory include i386, amd64, ia64, etc. -+ -+@item --with-os-directory=DIR -+Specifies the OS directory for the SDK include directory. This is set to auto -+detect, and is typically 'linux'. -+ -+@item --with-origin-name=NAME -+Specifies the JPackage origin name. This defaults to the 'gcj' in -+java-1.5.0-gcj. -+ -+@item --with-arch-suffix=SUFFIX -+Specifies the suffix for the sdk directory. Defaults to the empty string. -+Examples include '.x86_64' in 'java-1.5.0-gcj-1.5.0.0.x86_64'. -+ -+@item --with-jvm-root-dir=DIR -+Specifies where to install the SDK. Default is $(prefix)/lib/jvm. -+ -+@item --with-jvm-jar-dir=DIR -+Specifies where to install jars. Default is $(prefix)/lib/jvm-exports. -+ -+@item --with-python-dir=DIR -+Specifies where to install the Python modules used for aot-compile. DIR should -+not include the prefix used in installation. For example, if the Python modules -+are to be installed in /usr/lib/python2.5/site-packages, then -+--with-python-dir=/lib/python2.5/site-packages should be passed. If this is -+not specified, then the Python modules are installed in $(prefix)/share/python. -+ -+@item --enable-aot-compile-rpm -+Adds aot-compile-rpm to the list of installed scripts. -+ -+@table @code -+@item ansi -+Use the single-byte @code{char} and the Win32 A functions natively, -+translating to and from UNICODE when using these functions. If -+unspecified, this is the default. -+ -+@item unicows -+Use the @code{WCHAR} and Win32 W functions natively. Adds -+@code{-lunicows} to @file{libgcj.spec} to link with @samp{libunicows}. -+@file{unicows.dll} needs to be deployed on Microsoft Windows 9X machines -+running built executables. @file{libunicows.a}, an open-source -+import library around Microsoft's @code{unicows.dll}, is obtained from -+@uref{http://libunicows.sourceforge.net/}, which also gives details -+on getting @file{unicows.dll} from Microsoft. -+ -+@item unicode -+Use the @code{WCHAR} and Win32 W functions natively. Does @emph{not} -+add @code{-lunicows} to @file{libgcj.spec}. The built executables will -+only run on Microsoft Windows NT and above. -+@end table -+@end table -+ -+@subsubheading AWT-Specific Options -+ -+@table @code -+@item --with-x -+Use the X Window System. -+ -+@item --enable-java-awt=PEER(S) -+Specifies the AWT peer library or libraries to build alongside -+@samp{libgcj}. If this option is unspecified or disabled, AWT -+will be non-functional. Current valid values are @option{gtk} and -+@option{xlib}. Multiple libraries should be separated by a -+comma (i.e.@: @option{--enable-java-awt=gtk,xlib}). -+ -+@item --enable-gtk-cairo -+Build the cairo Graphics2D implementation on GTK@. -+ -+@item --enable-java-gc=TYPE -+Choose garbage collector. Defaults to @option{boehm} if unspecified. -+ -+@item --disable-gtktest -+Do not try to compile and run a test GTK+ program. -+ -+@item --disable-glibtest -+Do not try to compile and run a test GLIB program. -+ -+@item --with-libart-prefix=PFX -+Prefix where libart is installed (optional). -+ -+@item --with-libart-exec-prefix=PFX -+Exec prefix where libart is installed (optional). -+ -+@item --disable-libarttest -+Do not try to compile and run a test libart program. -+ -+@end table -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Building**************************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Building, Testing, Configuration, Installing GCC -+@end ifnothtml -+@ifset buildhtml -+@ifnothtml -+@chapter Building -+@end ifnothtml -+@cindex Installing GCC: Building -+ -+Now that GCC is configured, you are ready to build the compiler and -+runtime libraries. -+ -+Some commands executed when making the compiler may fail (return a -+nonzero status) and be ignored by @command{make}. These failures, which -+are often due to files that were not found, are expected, and can safely -+be ignored. -+ -+It is normal to have compiler warnings when compiling certain files. -+Unless you are a GCC developer, you can generally ignore these warnings -+unless they cause compilation to fail. Developers should attempt to fix -+any warnings encountered, however they can temporarily continue past -+warnings-as-errors by specifying the configure flag -+@option{--disable-werror}. -+ -+On certain old systems, defining certain environment variables such as -+@env{CC} can interfere with the functioning of @command{make}. -+ -+If you encounter seemingly strange errors when trying to build the -+compiler in a directory other than the source directory, it could be -+because you have previously configured the compiler in the source -+directory. Make sure you have done all the necessary preparations. -+ -+If you build GCC on a BSD system using a directory stored in an old System -+V file system, problems may occur in running @command{fixincludes} if the -+System V file system doesn't support symbolic links. These problems -+result in a failure to fix the declaration of @code{size_t} in -+@file{sys/types.h}. If you find that @code{size_t} is a signed type and -+that type mismatches occur, this could be the cause. -+ -+The solution is not to use such a directory for building GCC@. -+ -+Similarly, when building from SVN or snapshots, or if you modify -+@file{*.l} files, you need the Flex lexical analyzer generator -+installed. If you do not modify @file{*.l} files, releases contain -+the Flex-generated files and you do not need Flex installed to build -+them. There is still one Flex-based lexical analyzer (part of the -+build machinery, not of GCC itself) that is used even if you only -+build the C front end. -+ -+When building from SVN or snapshots, or if you modify Texinfo -+documentation, you need version 4.7 or later of Texinfo installed if you -+want Info documentation to be regenerated. Releases contain Info -+documentation pre-built for the unmodified documentation in the release. -+ -+@section Building a native compiler -+ -+For a native build, the default configuration is to perform -+a 3-stage bootstrap of the compiler when @samp{make} is invoked. -+This will build the entire GCC system and ensure that it compiles -+itself correctly. It can be disabled with the @option{--disable-bootstrap} -+parameter to @samp{configure}, but bootstrapping is suggested because -+the compiler will be tested more completely and could also have -+better performance. -+ -+The bootstrapping process will complete the following steps: -+ -+@itemize @bullet -+@item -+Build tools necessary to build the compiler. -+ -+@item -+Perform a 3-stage bootstrap of the compiler. This includes building -+three times the target tools for use by the compiler such as binutils -+(bfd, binutils, gas, gprof, ld, and opcodes) if they have been -+individually linked or moved into the top level GCC source tree before -+configuring. -+ -+@item -+Perform a comparison test of the stage2 and stage3 compilers. -+ -+@item -+Build runtime libraries using the stage3 compiler from the previous step. -+ -+@end itemize -+ -+If you are short on disk space you might consider @samp{make -+bootstrap-lean} instead. The sequence of compilation is the -+same described above, but object files from the stage1 and -+stage2 of the 3-stage bootstrap of the compiler are deleted as -+soon as they are no longer needed. -+ -+If you wish to use non-default GCC flags when compiling the stage2 -+and stage3 compilers, set @code{BOOT_CFLAGS} on the command line when -+doing @samp{make}. For example, if you want to save additional space -+during the bootstrap and in the final installation as well, you can -+build the compiler binaries without debugging information as in the -+following example. This will save roughly 40% of disk space both for -+the bootstrap and the final installation. (Libraries will still contain -+debugging information.) -+ -+@smallexample -+ make BOOT_CFLAGS='-O' bootstrap -+@end smallexample -+ -+You can place non-default optimization flags into @code{BOOT_CFLAGS}; they -+are less well tested here than the default of @samp{-g -O2}, but should -+still work. In a few cases, you may find that you need to specify special -+flags such as @option{-msoft-float} here to complete the bootstrap; or, -+if the native compiler miscompiles the stage1 compiler, you may need -+to work around this, by choosing @code{BOOT_CFLAGS} to avoid the parts -+of the stage1 compiler that were miscompiled, or by using @samp{make -+bootstrap4} to increase the number of stages of bootstrap. -+ -+@code{BOOT_CFLAGS} does not apply to bootstrapped target libraries. -+Since these are always compiled with the compiler currently being -+bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their -+compilation flags, as for non-bootstrapped target libraries. -+Again, if the native compiler miscompiles the stage1 compiler, you may -+need to work around this by avoiding non-working parts of the stage1 -+compiler. Use @code{STAGE1_LIBCFLAGS} to this end. -+ -+If you used the flag @option{--enable-languages=@dots{}} to restrict -+the compilers to be built, only those you've actually enabled will be -+built. This will of course only build those runtime libraries, for -+which the particular compiler has been built. Please note, -+that re-defining @env{LANGUAGES} when calling @samp{make} -+@strong{does not} work anymore! -+ -+If the comparison of stage2 and stage3 fails, this normally indicates -+that the stage2 compiler has compiled GCC incorrectly, and is therefore -+a potentially serious bug which you should investigate and report. (On -+a few systems, meaningful comparison of object files is impossible; they -+always appear ``different''. If you encounter this problem, you will -+need to disable comparison in the @file{Makefile}.) -+ -+If you do not want to bootstrap your compiler, you can configure with -+@option{--disable-bootstrap}. In particular cases, you may want to -+bootstrap your compiler even if the target system is not the same as -+the one you are building on: for example, you could build a -+@code{powerpc-unknown-linux-gnu} toolchain on a -+@code{powerpc64-unknown-linux-gnu} host. In this case, pass -+@option{--enable-bootstrap} to the configure script. -+ -+ -+@section Building a cross compiler -+ -+When building a cross compiler, it is not generally possible to do a -+3-stage bootstrap of the compiler. This makes for an interesting problem -+as parts of GCC can only be built with GCC@. -+ -+To build a cross compiler, we first recommend building and installing a -+native compiler. You can then use the native GCC compiler to build the -+cross compiler. The installed native compiler needs to be GCC version -+2.95 or later. -+ -+If the cross compiler is to be built with support for the Java -+programming language and the ability to compile .java source files is -+desired, the installed native compiler used to build the cross -+compiler needs to be the same GCC version as the cross compiler. In -+addition the cross compiler needs to be configured with -+@option{--with-ecj-jar=@dots{}}. -+ -+Assuming you have already installed a native copy of GCC and configured -+your cross compiler, issue the command @command{make}, which performs the -+following steps: -+ -+@itemize @bullet -+@item -+Build host tools necessary to build the compiler. -+ -+@item -+Build target tools for use by the compiler such as binutils (bfd, -+binutils, gas, gprof, ld, and opcodes) -+if they have been individually linked or moved into the top level GCC source -+tree before configuring. -+ -+@item -+Build the compiler (single stage only). -+ -+@item -+Build runtime libraries using the compiler from the previous step. -+@end itemize -+ -+Note that if an error occurs in any step the make process will exit. -+ -+If you are not building GNU binutils in the same source tree as GCC, -+you will need a cross-assembler and cross-linker installed before -+configuring GCC@. Put them in the directory -+@file{@var{prefix}/@var{target}/bin}. Here is a table of the tools -+you should put in this directory: -+ -+@table @file -+@item as -+This should be the cross-assembler. -+ -+@item ld -+This should be the cross-linker. -+ -+@item ar -+This should be the cross-archiver: a program which can manipulate -+archive files (linker libraries) in the target machine's format. -+ -+@item ranlib -+This should be a program to construct a symbol table in an archive file. -+@end table -+ -+The installation of GCC will find these programs in that directory, -+and copy or link them to the proper place to for the cross-compiler to -+find them when run later. -+ -+The easiest way to provide these files is to build the Binutils package. -+Configure it with the same @option{--host} and @option{--target} -+options that you use for configuring GCC, then build and install -+them. They install their executables automatically into the proper -+directory. Alas, they do not support all the targets that GCC -+supports. -+ -+If you are not building a C library in the same source tree as GCC, -+you should also provide the target libraries and headers before -+configuring GCC, specifying the directories with -+@option{--with-sysroot} or @option{--with-headers} and -+@option{--with-libs}. Many targets also require ``start files'' such -+as @file{crt0.o} and -+@file{crtn.o} which are linked into each executable. There may be several -+alternatives for @file{crt0.o}, for use with profiling or other -+compilation options. Check your target's definition of -+@code{STARTFILE_SPEC} to find out what start files it uses. -+ -+@section Building in parallel -+ -+GNU Make 3.79 and above, which is necessary to build GCC, support -+building in parallel. To activate this, you can use @samp{make -j 2} -+instead of @samp{make}. You can also specify a bigger number, and -+in most cases using a value greater than the number of processors in -+your machine will result in fewer and shorter I/O latency hits, thus -+improving overall throughput; this is especially true for slow drives -+and network filesystems. -+ -+@section Building the Ada compiler -+ -+In order to build GNAT, the Ada compiler, you need a working GNAT -+compiler (GCC version 3.4 or later). -+This includes GNAT tools such as @command{gnatmake} and -+@command{gnatlink}, since the Ada front end is written in Ada and -+uses some GNAT-specific extensions. -+ -+In order to build a cross compiler, it is suggested to install -+the new compiler as native first, and then use it to build the cross -+compiler. -+ -+@command{configure} does not test whether the GNAT installation works -+and has a sufficiently recent version; if too old a GNAT version is -+installed, the build will fail unless @option{--enable-languages} is -+used to disable building the Ada front end. -+ -+@env{ADA_INCLUDE_PATH} and @env{ADA_OBJECT_PATH} environment variables -+must not be set when building the Ada compiler, the Ada tools, or the -+Ada runtime libraries. You can check that your build environment is clean -+by verifying that @samp{gnatls -v} lists only one explicit path in each -+section. -+ -+@section Building with profile feedback -+ -+It is possible to use profile feedback to optimize the compiler itself. This -+should result in a faster compiler binary. Experiments done on x86 using gcc -+3.3 showed approximately 7 percent speedup on compiling C programs. To -+bootstrap the compiler with profile feedback, use @code{make profiledbootstrap}. -+ -+When @samp{make profiledbootstrap} is run, it will first build a @code{stage1} -+compiler. This compiler is used to build a @code{stageprofile} compiler -+instrumented to collect execution counts of instruction and branch -+probabilities. Then runtime libraries are compiled with profile collected. -+Finally a @code{stagefeedback} compiler is built using the information collected. -+ -+Unlike standard bootstrap, several additional restrictions apply. The -+compiler used to build @code{stage1} needs to support a 64-bit integral type. -+It is recommended to only use GCC for this. Also parallel make is currently -+not supported since collisions in profile collecting may occur. -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Testing***************************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Testing, Final install, Building, Installing GCC -+@end ifnothtml -+@ifset testhtml -+@ifnothtml -+@chapter Installing GCC: Testing -+@end ifnothtml -+@cindex Testing -+@cindex Installing GCC: Testing -+@cindex Testsuite -+ -+Before you install GCC, we encourage you to run the testsuites and to -+compare your results with results from a similar configuration that have -+been submitted to the -+@uref{http://gcc.gnu.org/ml/gcc-testresults/,,gcc-testresults mailing list}. -+Some of these archived results are linked from the build status lists -+at @uref{http://gcc.gnu.org/buildstat.html}, although not everyone who -+reports a successful build runs the testsuites and submits the results. -+This step is optional and may require you to download additional software, -+but it can give you confidence in your new GCC installation or point out -+problems before you install and start using your new GCC@. -+ -+First, you must have @uref{download.html,,downloaded the testsuites}. -+These are part of the full distribution, but if you downloaded the -+``core'' compiler plus any front ends, you must download the testsuites -+separately. -+ -+Second, you must have the testing tools installed. This includes -+@uref{http://www.gnu.org/software/dejagnu/,,DejaGnu}, Tcl, and Expect; -+the DejaGnu site has links to these. -+ -+If the directories where @command{runtest} and @command{expect} were -+installed are not in the @env{PATH}, you may need to set the following -+environment variables appropriately, as in the following example (which -+assumes that DejaGnu has been installed under @file{/usr/local}): -+ -+@smallexample -+ TCL_LIBRARY = /usr/local/share/tcl8.0 -+ DEJAGNULIBS = /usr/local/share/dejagnu -+@end smallexample -+ -+(On systems such as Cygwin, these paths are required to be actual -+paths, not mounts or links; presumably this is due to some lack of -+portability in the DejaGnu code.) -+ -+ -+Finally, you can run the testsuite (which may take a long time): -+@smallexample -+ cd @var{objdir}; make -k check -+@end smallexample -+ -+This will test various components of GCC, such as compiler -+front ends and runtime libraries. While running the testsuite, DejaGnu -+might emit some harmless messages resembling -+@samp{WARNING: Couldn't find the global config file.} or -+@samp{WARNING: Couldn't find tool init file} that can be ignored. -+ -+If you are testing a cross-compiler, you may want to run the testsuite -+on a simulator as described at @uref{http://gcc.gnu.org/simtest-howto.html}. -+ -+@section How can you run the testsuite on selected tests? -+ -+In order to run sets of tests selectively, there are targets -+@samp{make check-gcc} and @samp{make check-g++} -+in the @file{gcc} subdirectory of the object directory. You can also -+just run @samp{make check} in a subdirectory of the object directory. -+ -+ -+A more selective way to just run all @command{gcc} execute tests in the -+testsuite is to use -+ -+@smallexample -+ make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}" -+@end smallexample -+ -+Likewise, in order to run only the @command{g++} ``old-deja'' tests in -+the testsuite with filenames matching @samp{9805*}, you would use -+ -+@smallexample -+ make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}" -+@end smallexample -+ -+The @file{*.exp} files are located in the testsuite directories of the GCC -+source, the most important ones being @file{compile.exp}, -+@file{execute.exp}, @file{dg.exp} and @file{old-deja.exp}. -+To get a list of the possible @file{*.exp} files, pipe the -+output of @samp{make check} into a file and look at the -+@samp{Running @dots{} .exp} lines. -+ -+@section Passing options and running multiple testsuites -+ -+You can pass multiple options to the testsuite using the -+@samp{--target_board} option of DejaGNU, either passed as part of -+@samp{RUNTESTFLAGS}, or directly to @command{runtest} if you prefer to -+work outside the makefiles. For example, -+ -+@smallexample -+ make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants" -+@end smallexample -+ -+will run the standard @command{g++} testsuites (``unix'' is the target name -+for a standard native testsuite situation), passing -+@samp{-O3 -fmerge-constants} to the compiler on every test, i.e., -+slashes separate options. -+ -+You can run the testsuites multiple times using combinations of options -+with a syntax similar to the brace expansion of popular shells: -+ -+@smallexample -+ @dots{}"--target_board=arm-sim\@{-mhard-float,-msoft-float\@}\@{-O1,-O2,-O3,\@}" -+@end smallexample -+ -+(Note the empty option caused by the trailing comma in the final group.) -+The following will run each testsuite eight times using the @samp{arm-sim} -+target, as if you had specified all possible combinations yourself: -+ -+@smallexample -+ --target_board=arm-sim/-mhard-float/-O1 -+ --target_board=arm-sim/-mhard-float/-O2 -+ --target_board=arm-sim/-mhard-float/-O3 -+ --target_board=arm-sim/-mhard-float -+ --target_board=arm-sim/-msoft-float/-O1 -+ --target_board=arm-sim/-msoft-float/-O2 -+ --target_board=arm-sim/-msoft-float/-O3 -+ --target_board=arm-sim/-msoft-float -+@end smallexample -+ -+They can be combined as many times as you wish, in arbitrary ways. This -+list: -+ -+@smallexample -+ @dots{}"--target_board=unix/-Wextra\@{-O3,-fno-strength\@}\@{-fomit-frame,\@}" -+@end smallexample -+ -+will generate four combinations, all involving @samp{-Wextra}. -+ -+The disadvantage to this method is that the testsuites are run in serial, -+which is a waste on multiprocessor systems. For users with GNU Make and -+a shell which performs brace expansion, you can run the testsuites in -+parallel by having the shell perform the combinations and @command{make} -+do the parallel runs. Instead of using @samp{--target_board}, use a -+special makefile target: -+ -+@smallexample -+ make -j@var{N} check-@var{testsuite}//@var{test-target}/@var{option1}/@var{option2}/@dots{} -+@end smallexample -+ -+For example, -+ -+@smallexample -+ make -j3 check-gcc//sh-hms-sim/@{-m1,-m2,-m3,-m3e,-m4@}/@{,-nofpu@} -+@end smallexample -+ -+will run three concurrent ``make-gcc'' testsuites, eventually testing all -+ten combinations as described above. Note that this is currently only -+supported in the @file{gcc} subdirectory. (To see how this works, try -+typing @command{echo} before the example given here.) -+ -+ -+@section Additional testing for Java Class Libraries -+ -+The Java runtime tests can be executed via @samp{make check} -+in the @file{@var{target}/libjava/testsuite} directory in -+the build tree. -+ -+The @uref{http://sourceware.org/mauve/,,Mauve Project} provides -+a suite of tests for the Java Class Libraries. This suite can be run -+as part of libgcj testing by placing the Mauve tree within the libjava -+testsuite at @file{libjava/testsuite/libjava.mauve/mauve}, or by -+specifying the location of that tree when invoking @samp{make}, as in -+@samp{make MAUVEDIR=~/mauve check}. -+ -+@section How to interpret test results -+ -+The result of running the testsuite are various @file{*.sum} and @file{*.log} -+files in the testsuite subdirectories. The @file{*.log} files contain a -+detailed log of the compiler invocations and the corresponding -+results, the @file{*.sum} files summarize the results. These summaries -+contain status codes for all tests: -+ -+@itemize @bullet -+@item -+PASS: the test passed as expected -+@item -+XPASS: the test unexpectedly passed -+@item -+FAIL: the test unexpectedly failed -+@item -+XFAIL: the test failed as expected -+@item -+UNSUPPORTED: the test is not supported on this platform -+@item -+ERROR: the testsuite detected an error -+@item -+WARNING: the testsuite detected a possible problem -+@end itemize -+ -+It is normal for some tests to report unexpected failures. At the -+current time the testing harness does not allow fine grained control -+over whether or not a test is expected to fail. This problem should -+be fixed in future releases. -+ -+ -+@section Submitting test results -+ -+If you want to report the results to the GCC project, use the -+@file{contrib/test_summary} shell script. Start it in the @var{objdir} with -+ -+@smallexample -+ @var{srcdir}/contrib/test_summary -p your_commentary.txt \ -+ -m gcc-testresults@@gcc.gnu.org |sh -+@end smallexample -+ -+This script uses the @command{Mail} program to send the results, so -+make sure it is in your @env{PATH}. The file @file{your_commentary.txt} is -+prepended to the testsuite summary and should contain any special -+remarks you have on your results or your build environment. Please -+do not edit the testsuite result block or the subject line, as these -+messages may be automatically processed. -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Final install*********************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Final install, , Testing, Installing GCC -+@end ifnothtml -+@ifset finalinstallhtml -+@ifnothtml -+@chapter Installing GCC: Final installation -+@end ifnothtml -+ -+Now that GCC has been built (and optionally tested), you can install it with -+@smallexample -+cd @var{objdir}; make install -+@end smallexample -+ -+We strongly recommend to install into a target directory where there is -+no previous version of GCC present. Also, the GNAT runtime should not -+be stripped, as this would break certain features of the debugger that -+depend on this debugging information (catching Ada exceptions for -+instance). -+ -+That step completes the installation of GCC; user level binaries can -+be found in @file{@var{prefix}/bin} where @var{prefix} is the value -+you specified with the @option{--prefix} to configure (or -+@file{/usr/local} by default). (If you specified @option{--bindir}, -+that directory will be used instead; otherwise, if you specified -+@option{--exec-prefix}, @file{@var{exec-prefix}/bin} will be used.) -+Headers for the C++ and Java libraries are installed in -+@file{@var{prefix}/include}; libraries in @file{@var{libdir}} -+(normally @file{@var{prefix}/lib}); internal parts of the compiler in -+@file{@var{libdir}/gcc} and @file{@var{libexecdir}/gcc}; documentation -+in info format in @file{@var{infodir}} (normally -+@file{@var{prefix}/info}). -+ -+When installing cross-compilers, GCC's executables -+are not only installed into @file{@var{bindir}}, that -+is, @file{@var{exec-prefix}/bin}, but additionally into -+@file{@var{exec-prefix}/@var{target-alias}/bin}, if that directory -+exists. Typically, such @dfn{tooldirs} hold target-specific -+binutils, including assembler and linker. -+ -+Installation into a temporary staging area or into a @command{chroot} -+jail can be achieved with the command -+ -+@smallexample -+make DESTDIR=@var{path-to-rootdir} install -+@end smallexample -+ -+@noindent where @var{path-to-rootdir} is the absolute path of -+a directory relative to which all installation paths will be -+interpreted. Note that the directory specified by @code{DESTDIR} -+need not exist yet; it will be created if necessary. -+ -+There is a subtle point with tooldirs and @code{DESTDIR}: -+If you relocate a cross-compiler installation with -+e.g.@: @samp{DESTDIR=@var{rootdir}}, then the directory -+@file{@var{rootdir}/@var{exec-prefix}/@var{target-alias}/bin} will -+be filled with duplicated GCC executables only if it already exists, -+it will not be created otherwise. This is regarded as a feature, -+not as a bug, because it gives slightly more control to the packagers -+using the @code{DESTDIR} feature. -+ -+If you are bootstrapping a released version of GCC then please -+quickly review the build status page for your release, available from -+@uref{http://gcc.gnu.org/buildstat.html}. -+If your system is not listed for the version of GCC that you built, -+send a note to -+@email{gcc@@gcc.gnu.org} indicating -+that you successfully built and installed GCC@. -+Include the following information: -+ -+@itemize @bullet -+@item -+Output from running @file{@var{srcdir}/config.guess}. Do not send -+that file itself, just the one-line output from running it. -+ -+@item -+The output of @samp{gcc -v} for your newly installed @command{gcc}. -+This tells us which version of GCC you built and the options you passed to -+configure. -+ -+@item -+Whether you enabled all languages or a subset of them. If you used a -+full distribution then this information is part of the configure -+options in the output of @samp{gcc -v}, but if you downloaded the -+``core'' compiler plus additional front ends then it isn't apparent -+which ones you built unless you tell us about it. -+ -+@item -+If the build was for GNU/Linux, also include: -+@itemize @bullet -+@item -+The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3); -+this information should be available from @file{/etc/issue}. -+ -+@item -+The version of the Linux kernel, available from @samp{uname --version} -+or @samp{uname -a}. -+ -+@item -+The version of glibc you used; for RPM-based systems like Red Hat, -+Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version, -+and on systems like Debian and Progeny use @samp{dpkg -l libc6}. -+@end itemize -+For other systems, you can include similar information if you think it is -+relevant. -+ -+@item -+Any other information that you think would be useful to people building -+GCC on the same configuration. The new entry in the build status list -+will include a link to the archived copy of your message. -+@end itemize -+ -+We'd also like to know if the -+@ifnothtml -+@ref{Specific, host/target specific installation notes} -+@end ifnothtml -+@ifhtml -+@uref{specific.html,,host/target specific installation notes} -+@end ifhtml -+didn't include your host/target information or if that information is -+incomplete or out of date. Send a note to -+@email{gcc@@gcc.gnu.org} detailing how the information should be changed. -+ -+If you find a bug, please report it following the -+@uref{../bugs.html,,bug reporting guidelines}. -+ -+If you want to print the GCC manuals, do @samp{cd @var{objdir}; make -+dvi}. You will need to have @command{texi2dvi} (version at least 4.7) -+and @TeX{} installed. This creates a number of @file{.dvi} files in -+subdirectories of @file{@var{objdir}}; these may be converted for -+printing with programs such as @command{dvips}. Alternately, by using -+@samp{make pdf} in place of @samp{make dvi}, you can create documentation -+in the form of @file{.pdf} files; this requires @command{texi2pdf}, which -+is included with Texinfo version 4.8 and later. You can also -+@uref{http://shop.fsf.org/,,buy printed manuals from the -+Free Software Foundation}, though such manuals may not be for the most -+recent version of GCC@. -+ -+If you would like to generate online HTML documentation, do @samp{cd -+@var{objdir}; make html} and HTML will be generated for the gcc manuals in -+@file{@var{objdir}/gcc/HTML}. -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Binaries**************************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Binaries, Specific, Installing GCC, Top -+@end ifnothtml -+@ifset binarieshtml -+@ifnothtml -+@chapter Installing GCC: Binaries -+@end ifnothtml -+@cindex Binaries -+@cindex Installing GCC: Binaries -+ -+We are often asked about pre-compiled versions of GCC@. While we cannot -+provide these for all platforms, below you'll find links to binaries for -+various platforms where creating them by yourself is not easy due to various -+reasons. -+ -+Please note that we did not create these binaries, nor do we -+support them. If you have any problems installing them, please -+contact their makers. -+ -+@itemize -+@item -+AIX: -+@itemize -+@item -+@uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX}; -+ -+@item -+@uref{http://pware.hvcc.edu,,Hudson Valley Community College Open Source Software for IBM System p}; -+ -+@item -+@uref{http://www.perzl.org/aix/,,AIX 5L and 6 Open Source Packages}. -+@end itemize -+ -+@item -+DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}. -+ -+@item -+Renesas H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU -+Development Tools for the Renesas H8/300[HS] Series}. -+ -+@item -+HP-UX: -+@itemize -+@item -+@uref{http://hpux.cs.utah.edu/,,HP-UX Porting Center}; -+ -+@item -+@uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}. -+@end itemize -+ -+@item -+Motorola 68HC11/68HC12---@uref{http://www.gnu-m68hc11.org,,GNU -+Development Tools for the Motorola 68HC11/68HC12}. -+ -+@item -+@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO -+OpenServer/Unixware}. -+ -+@item -+Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}. -+ -+@item -+SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}. -+ -+@item -+Microsoft Windows: -+@itemize -+@item -+The @uref{http://sourceware.org/cygwin/,,Cygwin} project; -+@item -+The @uref{http://www.mingw.org/,,MinGW} project. -+@end itemize -+ -+@item -+@uref{ftp://ftp.thewrittenword.com/packages/by-name/,,The -+Written Word} offers binaries for -+AIX 4.3.3, 5.1 and 5.2, -+IRIX 6.5, -+Tru64 UNIX 4.0D and 5.1, -+GNU/Linux (i386), -+HP-UX 10.20, 11.00, and 11.11, and -+Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10. -+ -+@item -+@uref{http://www.openpkg.org/,,OpenPKG} offers binaries for quite a -+number of platforms. -+ -+@item -+The @uref{http://gcc.gnu.org/wiki/GFortranBinaries,,GFortran Wiki} has -+links to GNU Fortran binaries for several platforms. -+@end itemize -+ -+In addition to those specific offerings, you can get a binary -+distribution CD-ROM from the -+@uref{http://www.gnu.org/order/order.html,,Free Software Foundation}. -+It contains binaries for a number of platforms, and -+includes not only GCC, but other stuff as well. The current CD does -+not contain the latest version of GCC, but it should allow -+bootstrapping the compiler. An updated version of that disk is in the -+works. -+ -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Specific**************************************************************** -+@ifnothtml -+@comment node-name, next, previous, up -+@node Specific, Old, Binaries, Top -+@end ifnothtml -+@ifset specifichtml -+@ifnothtml -+@chapter Host/target specific installation notes for GCC -+@end ifnothtml -+@cindex Specific -+@cindex Specific installation notes -+@cindex Target specific installation -+@cindex Host specific installation -+@cindex Target specific installation notes -+ -+Please read this document carefully @emph{before} installing the -+GNU Compiler Collection on your machine. -+ -+Note that this list of install notes is @emph{not} a list of supported -+hosts or targets. Not all supported hosts and targets are listed -+here, only the ones that require host-specific or target-specific -+information are. -+ -+@ifhtml -+@itemize -+@item -+@uref{#alpha-x-x,,alpha*-*-*} -+@item -+@uref{#alpha-dec-osf,,alpha*-dec-osf*} -+@item -+@uref{#arc-x-elf,,arc-*-elf} -+@item -+@uref{#arm-x-elf,,arm-*-elf} -+@uref{#arm-x-coff,,arm-*-coff} -+@uref{#arm-x-aout,,arm-*-aout} -+@item -+@uref{#avr,,avr} -+@item -+@uref{#bfin,,Blackfin} -+@item -+@uref{#dos,,DOS} -+@item -+@uref{#x-x-freebsd,,*-*-freebsd*} -+@item -+@uref{#h8300-hms,,h8300-hms} -+@item -+@uref{#hppa-hp-hpux,,hppa*-hp-hpux*} -+@item -+@uref{#hppa-hp-hpux10,,hppa*-hp-hpux10} -+@item -+@uref{#hppa-hp-hpux11,,hppa*-hp-hpux11} -+@item -+@uref{#x-x-linux-gnu,,*-*-linux-gnu} -+@item -+@uref{#ix86-x-linux,,i?86-*-linux*} -+@item -+@uref{#ix86-x-solaris210,,i?86-*-solaris2.10} -+@item -+@uref{#ia64-x-linux,,ia64-*-linux} -+@item -+@uref{#ia64-x-hpux,,ia64-*-hpux*} -+@item -+@uref{#x-ibm-aix,,*-ibm-aix*} -+@item -+@uref{#iq2000-x-elf,,iq2000-*-elf} -+@item -+@uref{#m32c-x-elf,,m32c-*-elf} -+@item -+@uref{#m32r-x-elf,,m32r-*-elf} -+@item -+@uref{#m6811-elf,,m6811-elf} -+@item -+@uref{#m6812-elf,,m6812-elf} -+@item -+@uref{#m68k-x-x,,m68k-*-*} -+@item -+@uref{#m68k-uclinux,,m68k-uclinux} -+@item -+@uref{#mips-x-x,,mips-*-*} -+@item -+@uref{#mips-sgi-irix5,,mips-sgi-irix5} -+@item -+@uref{#mips-sgi-irix6,,mips-sgi-irix6} -+@item -+@uref{#powerpc-x-x,,powerpc*-*-*} -+@item -+@uref{#powerpc-x-darwin,,powerpc-*-darwin*} -+@item -+@uref{#powerpc-x-elf,,powerpc-*-elf} -+@item -+@uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*} -+@item -+@uref{#powerpc-x-netbsd,,powerpc-*-netbsd*} -+@item -+@uref{#powerpc-x-eabisim,,powerpc-*-eabisim} -+@item -+@uref{#powerpc-x-eabi,,powerpc-*-eabi} -+@item -+@uref{#powerpcle-x-elf,,powerpcle-*-elf} -+@item -+@uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim} -+@item -+@uref{#powerpcle-x-eabi,,powerpcle-*-eabi} -+@item -+@uref{#s390-x-linux,,s390-*-linux*} -+@item -+@uref{#s390x-x-linux,,s390x-*-linux*} -+@item -+@uref{#s390x-ibm-tpf,,s390x-ibm-tpf*} -+@item -+@uref{#x-x-solaris2,,*-*-solaris2*} -+@item -+@uref{#sparc-sun-solaris2,,sparc-sun-solaris2*} -+@item -+@uref{#sparc-sun-solaris27,,sparc-sun-solaris2.7} -+@item -+@uref{#sparc-x-linux,,sparc-*-linux*} -+@item -+@uref{#sparc64-x-solaris2,,sparc64-*-solaris2*} -+@item -+@uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*} -+@item -+@uref{#x-x-vxworks,,*-*-vxworks*} -+@item -+@uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*} -+@item -+@uref{#xtensa-x-elf,,xtensa*-*-elf} -+@item -+@uref{#xtensa-x-linux,,xtensa*-*-linux*} -+@item -+@uref{#windows,,Microsoft Windows} -+@item -+@uref{#x-x-cygwin,,*-*-cygwin} -+@item -+@uref{#x-x-interix,,*-*-interix} -+@item -+@uref{#x-x-mingw,,*-*-mingw} -+@item -+@uref{#os2,,OS/2} -+@item -+@uref{#older,,Older systems} -+@end itemize -+ -+@itemize -+@item -+@uref{#elf,,all ELF targets} (SVR4, Solaris 2, etc.) -+@end itemize -+@end ifhtml -+ -+ -+@html -+ -+


-+@end html -+@heading @anchor{alpha-x-x}alpha*-*-* -+ -+This section contains general configuration information for all -+alpha-based platforms using ELF (in particular, ignore this section for -+DEC OSF/1, Digital UNIX and Tru64 UNIX)@. In addition to reading this -+section, please read all other sections that match your target. -+ -+We require binutils 2.11.2 or newer. -+Previous binutils releases had a number of problems with DWARF 2 -+debugging information, not the least of which is incorrect linking of -+shared libraries. -+ -+@html -+
-+@end html -+@heading @anchor{alpha-dec-osf}alpha*-dec-osf* -+Systems using processors that implement the DEC Alpha architecture and -+are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq -+Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. -+ -+As of GCC 3.2, versions before @code{alpha*-dec-osf4} are no longer -+supported. (These are the versions which identify themselves as DEC -+OSF/1.) -+ -+In Digital Unix V4.0, virtual memory exhausted bootstrap failures -+may be fixed by configuring with @option{--with-gc=simple}, -+reconfiguring Kernel Virtual Memory and Swap parameters -+per the @command{/usr/sbin/sys_check} Tuning Suggestions, -+or applying the patch in -+@uref{http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html}. -+ -+In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not -+currently (2001-06-13) work with @command{mips-tfile}. As a workaround, -+we need to use the old assembler, invoked via the barely documented -+@option{-oldas} option. To bootstrap GCC, you either need to use the -+Compaq C Compiler: -+ -+@smallexample -+ % CC=cc @var{srcdir}/configure [@var{options}] [@var{target}] -+@end smallexample -+ -+or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0: -+ -+@smallexample -+ % CC=gcc -Wa,-oldas @var{srcdir}/configure [@var{options}] [@var{target}] -+@end smallexample -+ -+As of GNU binutils 2.11.2, neither GNU @command{as} nor GNU @command{ld} -+are supported on Tru64 UNIX, so you must not configure GCC with -+@option{--with-gnu-as} or @option{--with-gnu-ld}. -+ -+GCC writes a @samp{.verstamp} directive to the assembler output file -+unless it is built as a cross-compiler. It gets the version to use from -+the system header file @file{/usr/include/stamp.h}. If you install a -+new version of DEC Unix, you should rebuild GCC to pick up the new version -+stamp. -+ -+@samp{make compare} may fail on old versions of DEC Unix unless you add -+@option{-save-temps} to @code{BOOT_CFLAGS}. On these systems, the name -+of the assembler input file is stored in the object file, and that makes -+comparison fail if it differs between the @code{stage1} and -+@code{stage2} compilations. The option @option{-save-temps} forces a -+fixed name to be used for the assembler input file, instead of a -+randomly chosen name in @file{/tmp}. Do not add @option{-save-temps} -+unless the comparisons fail without that option. If you add -+@option{-save-temps}, you will have to manually delete the @samp{.i} and -+@samp{.s} files after each series of compilations. -+ -+GCC now supports both the native (ECOFF) debugging format used by DBX -+and GDB and an encapsulated STABS format for use only with GDB@. See the -+discussion of the @option{--with-stabs} option of @file{configure} above -+for more information on these formats and how to select them. -+ -+There is a bug in DEC's assembler that produces incorrect line numbers -+for ECOFF format when the @samp{.align} directive is used. To work -+around this problem, GCC will not emit such alignment directives -+while writing ECOFF format debugging information even if optimization is -+being performed. Unfortunately, this has the very undesirable -+side-effect that code addresses when @option{-O} is specified are -+different depending on whether or not @option{-g} is also specified. -+ -+To avoid this behavior, specify @option{-gstabs+} and use GDB instead of -+DBX@. DEC is now aware of this problem with the assembler and hopes to -+provide a fix shortly. -+ -+@html -+
-+@end html -+@heading @anchor{arc-x-elf}arc-*-elf -+Argonaut ARC processor. -+This configuration is intended for embedded systems. -+ -+@html -+
-+@end html -+@heading @anchor{arm-x-elf}arm-*-elf -+ARM-family processors. Subtargets that use the ELF object format -+require GNU binutils 2.13 or newer. Such subtargets include: -+@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux} -+and @code{arm-*-rtems}. -+ -+@html -+
-+@end html -+@heading @anchor{arm-x-coff}arm-*-coff -+ARM-family processors. Note that there are two different varieties -+of PE format subtarget supported: @code{arm-wince-pe} and -+@code{arm-pe} as well as a standard COFF target @code{arm-*-coff}. -+ -+@html -+
-+@end html -+@heading @anchor{arm-x-aout}arm-*-aout -+ARM-family processors. These targets support the AOUT file format: -+@code{arm-*-aout}, @code{arm-*-netbsd}. -+ -+@html -+
-+@end html -+@heading @anchor{avr}avr -+ -+ATMEL AVR-family micro controllers. These are used in embedded -+applications. There are no standard Unix configurations. -+@ifnothtml -+@xref{AVR Options,, AVR Options, gcc, Using the GNU Compiler -+Collection (GCC)}, -+@end ifnothtml -+@ifhtml -+See ``AVR Options'' in the main manual -+@end ifhtml -+for the list of supported MCU types. -+ -+Use @samp{configure --target=avr --enable-languages="c"} to configure GCC@. -+ -+Further installation notes and other useful information about AVR tools -+can also be obtained from: -+ -+@itemize @bullet -+@item -+@uref{http://www.nongnu.org/avr/,,http://www.nongnu.org/avr/} -+@item -+@uref{http://www.amelek.gda.pl/avr/,,http://www.amelek.gda.pl/avr/} -+@end itemize -+ -+We @emph{strongly} recommend using binutils 2.13 or newer. -+ -+The following error: -+@smallexample -+ Error: register required -+@end smallexample -+ -+indicates that you should upgrade to a newer version of the binutils. -+ -+@html -+
-+@end html -+@heading @anchor{bfin}Blackfin -+ -+The Blackfin processor, an Analog Devices DSP. -+@ifnothtml -+@xref{Blackfin Options,, Blackfin Options, gcc, Using the GNU Compiler -+Collection (GCC)}, -+@end ifnothtml -+@ifhtml -+See ``Blackfin Options'' in the main manual -+@end ifhtml -+ -+More information, and a version of binutils with support for this processor, -+is available at @uref{http://blackfin.uclinux.org} -+ -+@html -+
-+@end html -+@heading @anchor{cris}CRIS -+ -+CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip -+series. These are used in embedded applications. -+ -+@ifnothtml -+@xref{CRIS Options,, CRIS Options, gcc, Using the GNU Compiler -+Collection (GCC)}, -+@end ifnothtml -+@ifhtml -+See ``CRIS Options'' in the main manual -+@end ifhtml -+for a list of CRIS-specific options. -+ -+There are a few different CRIS targets: -+@table @code -+@item cris-axis-elf -+Mainly for monolithic embedded systems. Includes a multilib for the -+@samp{v10} core used in @samp{ETRAX 100 LX}. -+@item cris-axis-linux-gnu -+A GNU/Linux port for the CRIS architecture, currently targeting -+@samp{ETRAX 100 LX} by default. -+@end table -+ -+For @code{cris-axis-elf} you need binutils 2.11 -+or newer. For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer. -+ -+Pre-packaged tools can be obtained from -+@uref{ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/}. More -+information about this platform is available at -+@uref{http://developer.axis.com/}. -+ -+@html -+
-+@end html -+@heading @anchor{crx}CRX -+ -+The CRX CompactRISC architecture is a low-power 32-bit architecture with -+fast context switching and architectural extensibility features. -+ -+@ifnothtml -+@xref{CRX Options,, CRX Options, gcc, Using and Porting the GNU Compiler -+Collection (GCC)}, -+@end ifnothtml -+ -+@ifhtml -+See ``CRX Options'' in the main manual for a list of CRX-specific options. -+@end ifhtml -+ -+Use @samp{configure --target=crx-elf --enable-languages=c,c++} to configure -+GCC@ for building a CRX cross-compiler. The option @samp{--target=crx-elf} -+is also used to build the @samp{newlib} C library for CRX. -+ -+It is also possible to build libstdc++-v3 for the CRX architecture. This -+needs to be done in a separate step with the following configure settings: -+@samp{gcc/libstdc++-v3/configure --host=crx-elf --with-newlib -+--enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti'} -+ -+@html -+
-+@end html -+@heading @anchor{dos}DOS -+ -+Please have a look at the @uref{binaries.html,,binaries page}. -+ -+You cannot install GCC by itself on MSDOS; it will not compile under -+any MSDOS compiler except itself. You need to get the complete -+compilation package DJGPP, which includes binaries as well as sources, -+and includes all the necessary compilation tools and libraries. -+ -+@html -+
-+@end html -+@heading @anchor{x-x-freebsd}*-*-freebsd* -+ -+The version of binutils installed in @file{/usr/bin} probably works with -+this release of GCC@. However, on FreeBSD 4, bootstrapping against the -+latest FSF binutils is known to improve overall testsuite results; and, -+on FreeBSD/alpha, using binutils 2.14 or later is required to build libjava. -+ -+Support for FreeBSD 1 was discontinued in GCC 3.2. -+ -+Support for FreeBSD 2 will be discontinued after GCC 3.4. The -+following was true for GCC 3.1 but the current status is unknown. -+For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All -+configuration support and files as shipped with GCC 2.95 are still in -+place. FreeBSD 2.2.7 has been known to bootstrap completely; however, -+it is unknown which version of binutils was used (it is assumed that it -+was the system copy in @file{/usr/bin}) and C++ EH failures were noted. -+ -+For FreeBSD using the ELF file format: DWARF 2 debugging is now the -+default for all CPU architectures. It had been the default on -+FreeBSD/alpha since its inception. You may use @option{-gstabs} instead -+of @option{-g}, if you really want the old debugging format. There are -+no known issues with mixing object files and libraries with different -+debugging formats. Otherwise, this release of GCC should now match more -+of the configuration used in the stock FreeBSD configuration of GCC@. In -+particular, @option{--enable-threads} is now configured by default. -+However, as a general user, do not attempt to replace the system -+compiler with this release. Known to bootstrap and check with good -+results on FreeBSD 4.9-STABLE and 5-CURRENT@. In the past, known to -+bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, -+4.3, 4.4, 4.5, 4.8-STABLE@. -+ -+In principle, @option{--enable-threads} is now compatible with -+@option{--enable-libgcj} on FreeBSD@. However, it has only been built -+and tested on @samp{i386-*-freebsd[45]} and @samp{alpha-*-freebsd[45]}. -+The static -+library may be incorrectly built (symbols are missing at link time). -+There is a rare timing-based startup hang (probably involves an -+assumption about the thread library). Multi-threaded boehm-gc (required for -+libjava) exposes severe threaded signal-handling bugs on FreeBSD before -+4.5-RELEASE@. Other CPU architectures -+supported by FreeBSD will require additional configuration tuning in, at -+the very least, both boehm-gc and libffi. -+ -+Shared @file{libgcc_s.so} is now built and installed by default. -+ -+@html -+
-+@end html -+@heading @anchor{h8300-hms}h8300-hms -+Renesas H8/300 series of processors. -+ -+Please have a look at the @uref{binaries.html,,binaries page}. -+ -+The calling convention and structure layout has changed in release 2.6. -+All code must be recompiled. The calling convention now passes the -+first three arguments in function calls in registers. Structures are no -+longer a multiple of 2 bytes. -+ -+@html -+
-+@end html -+@heading @anchor{hppa-hp-hpux}hppa*-hp-hpux* -+Support for HP-UX version 9 and older was discontinued in GCC 3.4. -+ -+We require using gas/binutils on all hppa platforms. Version 2.19 or -+later is recommended. -+ -+It may be helpful to configure GCC with the -+@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and -+@option{--with-as=@dots{}} options to ensure that GCC can find GAS@. -+ -+The HP assembler should not be used with GCC. It is rarely tested and may -+not work. It shouldn't be used with any languages other than C due to its -+many limitations. -+ -+Specifically, @option{-g} does not work (HP-UX uses a peculiar debugging -+format which GCC does not know about). It also inserts timestamps -+into each object file it creates, causing the 3-stage comparison test to -+fail during a bootstrap. You should be able to continue by saying -+@samp{make all-host all-target} after getting the failure from @samp{make}. -+ -+Various GCC features are not supported. For example, it does not support weak -+symbols or alias definitions. As a result, explicit template instantiations -+are required when using C++. This makes it difficult if not impossible to -+build many C++ applications. -+ -+There are two default scheduling models for instructions. These are -+PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc -+architecture specified for the target machine when configuring. -+PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when -+the target is a @samp{hppa1*} machine. -+ -+The PROCESSOR_8000 model is not well suited to older processors. Thus, -+it is important to completely specify the machine architecture when -+configuring if you want a model other than PROCESSOR_8000. The macro -+TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different -+default scheduling model is desired. -+ -+As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 -+through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. -+This namespace change might cause problems when bootstrapping with -+an earlier version of GCC or the HP compiler as essentially the same -+namespace is required for an entire build. This problem can be avoided -+in a number of ways. With HP cc, @env{UNIX_STD} can be set to @samp{95} -+or @samp{98}. Another way is to add an appropriate set of predefines -+to @env{CC}. The description for the @option{munix=} option contains -+a list of the predefines used with each standard. -+ -+More specific information to @samp{hppa*-hp-hpux*} targets follows. -+ -+@html -+
-+@end html -+@heading @anchor{hppa-hp-hpux10}hppa*-hp-hpux10 -+ -+For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch -+@code{PHCO_19798} from HP@. HP has two sites which provide patches free of -+charge: -+ -+@itemize @bullet -+@item -+@html -+US, Canada, Asia-Pacific, and -+Latin-America -+@end html -+@ifnothtml -+@uref{http://us.itrc.hp.com/service/home/home.do,,} US, Canada, Asia-Pacific, -+and Latin-America. -+@end ifnothtml -+@item -+@uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe. -+@end itemize -+ -+The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are -+used for one-only code and data. This resolves many of the previous -+problems in using C++ on this target. However, the ABI is not compatible -+with the one implemented under HP-UX 11 using secondary definitions. -+ -+@html -+
-+@end html -+@heading @anchor{hppa-hp-hpux11}hppa*-hp-hpux11 -+ -+GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot -+be used to compile GCC 3.0 and up. -+ -+The libffi and libjava libraries haven't been ported to 64-bit HP-UX@ -+and don't build. -+ -+Refer to @uref{binaries.html,,binaries} for information about obtaining -+precompiled GCC binaries for HP-UX@. Precompiled binaries must be obtained -+to build the Ada language as it can't be bootstrapped using C@. Ada is -+only available for the 32-bit PA-RISC runtime. -+ -+Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The -+bundled compiler supports only traditional C; you will need either HP's -+unbundled compiler, or a binary distribution of GCC@. -+ -+It is possible to build GCC 3.3 starting with the bundled HP compiler, -+but the process requires several steps. GCC 3.3 can then be used to -+build later versions. The fastjar program contains ISO C code and -+can't be built with the HP bundled compiler. This problem can be -+avoided by not building the Java language. For example, use the -+@option{--enable-languages="c,c++,f77,objc"} option in your configure -+command. -+ -+There are several possible approaches to building the distribution. -+Binutils can be built first using the HP tools. Then, the GCC -+distribution can be built. The second approach is to build GCC -+first using the HP tools, then build binutils, then rebuild GCC@. -+There have been problems with various binary distributions, so it -+is best not to start from a binary distribution. -+ -+On 64-bit capable systems, there are two distinct targets. Different -+installation prefixes must be used if both are to be installed on -+the same system. The @samp{hppa[1-2]*-hp-hpux11*} target generates code -+for the 32-bit PA-RISC runtime architecture and uses the HP linker. -+The @samp{hppa64-hp-hpux11*} target generates 64-bit code for the -+PA-RISC 2.0 architecture. -+ -+The script config.guess now selects the target type based on the compiler -+detected during configuration. You must define @env{PATH} or @env{CC} so -+that configure finds an appropriate compiler for the initial bootstrap. -+When @env{CC} is used, the definition should contain the options that are -+needed whenever @env{CC} is used. -+ -+Specifically, options that determine the runtime architecture must be -+in @env{CC} to correctly select the target for the build. It is also -+convenient to place many other compiler options in @env{CC}. For example, -+@env{CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"} -+can be used to bootstrap the GCC 3.3 branch with the HP compiler in -+64-bit K&R/bundled mode. The @option{+DA2.0W} option will result in -+the automatic selection of the @samp{hppa64-hp-hpux11*} target. The -+macro definition table of cpp needs to be increased for a successful -+build with the HP compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to -+be defined when building with the bundled compiler, or when using the -+@option{-Ac} option. These defines aren't necessary with @option{-Ae}. -+ -+It is best to explicitly configure the @samp{hppa64-hp-hpux11*} target -+with the @option{--with-ld=@dots{}} option. This overrides the standard -+search for ld. The two linkers supported on this target require different -+commands. The default linker is determined during configuration. As a -+result, it's not possible to switch linkers in the middle of a GCC build. -+This has been reported to sometimes occur in unified builds of binutils -+and GCC@. -+ -+A recent linker patch must be installed for the correct operation of -+GCC 3.3 and later. @code{PHSS_26559} and @code{PHSS_24304} are the -+oldest linker patches that are known to work. They are for HP-UX -+11.00 and 11.11, respectively. @code{PHSS_24303}, the companion to -+@code{PHSS_24304}, might be usable but it hasn't been tested. These -+patches have been superseded. Consult the HP patch database to obtain -+the currently recommended linker patch for your system. -+ -+The patches are necessary for the support of weak symbols on the -+32-bit port, and for the running of initializers and finalizers. Weak -+symbols are implemented using SOM secondary definition symbols. Prior -+to HP-UX 11, there are bugs in the linker support for secondary symbols. -+The patches correct a problem of linker core dumps creating shared -+libraries containing secondary symbols, as well as various other -+linking issues involving secondary symbols. -+ -+GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to -+run initializers and finalizers on the 64-bit port. The 32-bit port -+uses the linker @option{+init} and @option{+fini} options for the same -+purpose. The patches correct various problems with the +init/+fini -+options, including program core dumps. Binutils 2.14 corrects a -+problem on the 64-bit port resulting from HP's non-standard use of -+the .init and .fini sections for array initializers and finalizers. -+ -+Although the HP and GNU linkers are both supported for the -+@samp{hppa64-hp-hpux11*} target, it is strongly recommended that the -+HP linker be used for link editing on this target. -+ -+At this time, the GNU linker does not support the creation of long -+branch stubs. As a result, it can't successfully link binaries -+containing branch offsets larger than 8 megabytes. In addition, -+there are problems linking shared libraries, linking executables -+with @option{-static}, and with dwarf2 unwind and exception support. -+It also doesn't provide stubs for internal calls to global functions -+in shared libraries, so these calls can't be overloaded. -+ -+The HP dynamic loader does not support GNU symbol versioning, so symbol -+versioning is not supported. It may be necessary to disable symbol -+versioning with @option{--disable-symvers} when using GNU ld. -+ -+POSIX threads are the default. The optional DCE thread library is not -+supported, so @option{--enable-threads=dce} does not work. -+ -+@html -+
-+@end html -+@heading @anchor{x-x-linux-gnu}*-*-linux-gnu -+ -+Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present -+in glibc 2.2.5 and later. More information is available in the -+libstdc++-v3 documentation. -+ -+@html -+
-+@end html -+@heading @anchor{ix86-x-linux}i?86-*-linux* -+ -+As of GCC 3.3, binutils 2.13.1 or later is required for this platform. -+See @uref{http://gcc.gnu.org/PR10877,,bug 10877} for more information. -+ -+If you receive Signal 11 errors when building on GNU/Linux, then it is -+possible you have a hardware problem. Further information on this can be -+found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}. -+ -+@html -+
-+@end html -+@heading @anchor{ix86-x-solaris210}i?86-*-solaris2.10 -+Use this for Solaris 10 or later on x86 and x86-64 systems. This -+configuration is supported by GCC 4.0 and later versions only. -+ -+It is recommended that you configure GCC to use the GNU assembler in -+@file{/usr/sfw/bin/gas} but the Sun linker, using the options -+@option{--with-gnu-as --with-as=/usr/sfw/bin/gas --without-gnu-ld -+--with-ld=/usr/ccs/bin/ld}. -+ -+@html -+
-+@end html -+@heading @anchor{ia64-x-linux}ia64-*-linux -+IA-64 processor (also known as IPF, or Itanium Processor Family) -+running GNU/Linux. -+ -+If you are using the installed system libunwind library with -+@option{--with-system-libunwind}, then you must use libunwind 0.98 or -+later. -+ -+None of the following versions of GCC has an ABI that is compatible -+with any of the other versions in this list, with the exception that -+Red Hat 2.96 and Trillian 000171 are compatible with each other: -+3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. -+This primarily affects C++ programs and programs that create shared libraries. -+GCC 3.1 or later is recommended for compiling linux, the kernel. -+As of version 3.1 GCC is believed to be fully ABI compliant, and hence no -+more major ABI changes are expected. -+ -+@html -+
-+@end html -+@heading @anchor{ia64-x-hpux}ia64-*-hpux* -+Building GCC on this target requires the GNU Assembler. The bundled HP -+assembler will not work. To prevent GCC from using the wrong assembler, -+the option @option{--with-gnu-as} may be necessary. -+ -+The GCC libunwind library has not been ported to HPUX@. This means that for -+GCC versions 3.2.3 and earlier, @option{--enable-libunwind-exceptions} -+is required to build GCC@. For GCC 3.3 and later, this is the default. -+For gcc 3.4.3 and later, @option{--enable-libunwind-exceptions} is -+removed and the system libunwind library will always be used. -+ -+@html -+
-+ -+@end html -+@heading @anchor{x-ibm-aix}*-ibm-aix* -+Support for AIX version 3 and older was discontinued in GCC 3.4. -+ -+``out of memory'' bootstrap failures may indicate a problem with -+process resource limits (ulimit). Hard limits are configured in the -+@file{/etc/security/limits} system configuration file. -+ -+To speed up the configuration phases of bootstrapping and installing GCC, -+one may use GNU Bash instead of AIX @command{/bin/sh}, e.g., -+ -+@smallexample -+ % CONFIG_SHELL=/opt/freeware/bin/bash -+ % export CONFIG_SHELL -+@end smallexample -+ -+and then proceed as described in @uref{build.html,,the build -+instructions}, where we strongly recommend specifying an absolute path -+to invoke @var{srcdir}/configure. -+ -+Because GCC on AIX is built as a 32-bit executable by default, -+(although it can generate 64-bit programs) the GMP and MPFR libraries -+required by gfortran must be 32-bit libraries. Building GMP and MPFR -+as static archive libraries works better than shared libraries. -+ -+Errors involving @code{alloca} when building GCC generally are due -+to an incorrect definition of @code{CC} in the Makefile or mixing files -+compiled with the native C compiler and GCC@. During the stage1 phase of -+the build, the native AIX compiler @strong{must} be invoked as @command{cc} -+(not @command{xlc}). Once @command{configure} has been informed of -+@command{xlc}, one needs to use @samp{make distclean} to remove the -+configure cache files and ensure that @env{CC} environment variable -+does not provide a definition that will confuse @command{configure}. -+If this error occurs during stage2 or later, then the problem most likely -+is the version of Make (see above). -+ -+The native @command{as} and @command{ld} are recommended for bootstrapping -+on AIX 4 and required for bootstrapping on AIX 5L@. The GNU Assembler -+reports that it supports WEAK symbols on AIX 4, which causes GCC to try to -+utilize weak symbol functionality although it is not supported. The GNU -+Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC@. -+The native AIX tools do interoperate with GCC@. -+ -+Building @file{libstdc++.a} requires a fix for an AIX Assembler bug -+APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a -+fix for another AIX Assembler bug and a co-dependent AIX Archiver fix -+referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1) -+ -+@samp{libstdc++} in GCC 3.4 increments the major version number of the -+shared object and GCC installation places the @file{libstdc++.a} -+shared library in a common location which will overwrite the and GCC -+3.3 version of the shared library. Applications either need to be -+re-linked against the new shared library or the GCC 3.1 and GCC 3.3 -+versions of the @samp{libstdc++} shared object needs to be available -+to the AIX runtime loader. The GCC 3.1 @samp{libstdc++.so.4}, if -+present, and GCC 3.3 @samp{libstdc++.so.5} shared objects can be -+installed for runtime dynamic loading using the following steps to set -+the @samp{F_LOADONLY} flag in the shared object for @emph{each} -+multilib @file{libstdc++.a} installed: -+ -+Extract the shared objects from the currently installed -+@file{libstdc++.a} archive: -+@smallexample -+ % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 -+@end smallexample -+ -+Enable the @samp{F_LOADONLY} flag so that the shared object will be -+available for runtime dynamic loading, but not linking: -+@smallexample -+ % strip -e libstdc++.so.4 libstdc++.so.5 -+@end smallexample -+ -+Archive the runtime-only shared object in the GCC 3.4 -+@file{libstdc++.a} archive: -+@smallexample -+ % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 -+@end smallexample -+ -+Linking executables and shared libraries may produce warnings of -+duplicate symbols. The assembly files generated by GCC for AIX always -+have included multiple symbol definitions for certain global variable -+and function declarations in the original program. The warnings should -+not prevent the linker from producing a correct library or runnable -+executable. -+ -+AIX 4.3 utilizes a ``large format'' archive to support both 32-bit and -+64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 -+to parse archive libraries did not handle the new format correctly. -+These routines are used by GCC and result in error messages during -+linking such as ``not a COFF file''. The version of the routines shipped -+with AIX 4.3.1 should work for a 32-bit environment. The @option{-g} -+option of the archive command may be used to create archives of 32-bit -+objects using the original ``small format''. A correct version of the -+routines is shipped with AIX 4.3.2 and above. -+ -+Some versions of the AIX binder (linker) can fail with a relocation -+overflow severe error when the @option{-bbigtoc} option is used to link -+GCC-produced object files into an executable that overflows the TOC@. A fix -+for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is -+available from IBM Customer Support and from its -+@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com} -+website as PTF U455193. -+ -+The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core -+with a segmentation fault when invoked by any version of GCC@. A fix for -+APAR IX87327 is available from IBM Customer Support and from its -+@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com} -+website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above. -+ -+The initial assembler shipped with AIX 4.3.0 generates incorrect object -+files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS -+TO ASSEMBLE/BIND) is available from IBM Customer Support and from its -+@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com} -+website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above. -+ -+AIX provides National Language Support (NLS)@. Compilers and assemblers -+use NLS to support locale-specific representations of various data -+formats including floating-point numbers (e.g., @samp{.} vs @samp{,} for -+separating decimal fractions). There have been problems reported where -+GCC does not produce the same floating-point formats that the assembler -+expects. If one encounters this problem, set the @env{LANG} -+environment variable to @samp{C} or @samp{En_US}. -+ -+By default, GCC for AIX 4.1 and above produces code that can be used on -+both Power or PowerPC processors. -+ -+A default can be specified with the @option{-mcpu=@var{cpu_type}} -+switch and using the configure option @option{--with-cpu-@var{cpu_type}}. -+ -+@html -+
-+@end html -+@heading @anchor{iq2000-x-elf}iq2000-*-elf -+Vitesse IQ2000 processors. These are used in embedded -+applications. There are no standard Unix configurations. -+ -+@html -+
-+@end html -+@heading @anchor{m32c-x-elf}m32c-*-elf -+Renesas M32C processor. -+This configuration is intended for embedded systems. -+ -+@html -+
-+@end html -+@heading @anchor{m32r-x-elf}m32r-*-elf -+Renesas M32R processor. -+This configuration is intended for embedded systems. -+ -+@html -+
-+@end html -+@heading @anchor{m6811-elf}m6811-elf -+Motorola 68HC11 family micro controllers. These are used in embedded -+applications. There are no standard Unix configurations. -+ -+@html -+
-+@end html -+@heading @anchor{m6812-elf}m6812-elf -+Motorola 68HC12 family micro controllers. These are used in embedded -+applications. There are no standard Unix configurations. -+ -+@html -+
-+@end html -+@heading @anchor{m68k-x-x}m68k-*-* -+By default, @samp{m68k-*-aout}, @samp{m68k-*-coff*}, -+@samp{m68k-*-elf*}, @samp{m68k-*-rtems}, @samp{m68k-*-uclinux} and -+@samp{m68k-*-linux} -+build libraries for both M680x0 and ColdFire processors. If you only -+need the M680x0 libraries, you can omit the ColdFire ones by passing -+@option{--with-arch=m68k} to @command{configure}. Alternatively, you -+can omit the M680x0 libraries by passing @option{--with-arch=cf} to -+@command{configure}. These targets default to 5206 or 5475 code as -+appropriate for the target system when -+configured with @option{--with-arch=cf} and 68020 code otherwise. -+ -+The @samp{m68k-*-netbsd} and -+@samp{m68k-*-openbsd} targets also support the @option{--with-arch} -+option. They will generate ColdFire CFV4e code when configured with -+@option{--with-arch=cf} and 68020 code otherwise. -+ -+You can override the default processors listed above by configuring -+with @option{--with-cpu=@var{target}}. This @var{target} can either -+be a @option{-mcpu} argument or one of the following values: -+@samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030}, -+@samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}. -+ -+@html -+
-+@end html -+@heading @anchor{m68k-x-uclinux}m68k-*-uclinux -+GCC 4.3 changed the uClinux configuration so that it uses the -+@samp{m68k-linux-gnu} ABI rather than the @samp{m68k-elf} ABI. -+It also added improved support for C++ and flat shared libraries, -+both of which were ABI changes. However, you can still use the -+original ABI by configuring for @samp{m68k-uclinuxoldabi} or -+@samp{m68k-@var{vendor}-uclinuxoldabi}. -+ -+@html -+
-+@end html -+@heading @anchor{mips-x-x}mips-*-* -+If on a MIPS system you get an error message saying ``does not have gp -+sections for all it's [sic] sectons [sic]'', don't worry about it. This -+happens whenever you use GAS with the MIPS linker, but there is not -+really anything wrong, and it is okay to use the output file. You can -+stop such warnings by installing the GNU linker. -+ -+It would be nice to extend GAS to produce the gp tables, but they are -+optional, and there should not be a warning about their absence. -+ -+The libstdc++ atomic locking routines for MIPS targets requires MIPS II -+and later. A patch went in just after the GCC 3.3 release to -+make @samp{mips*-*-*} use the generic implementation instead. You can also -+configure for @samp{mipsel-elf} as a workaround. The -+@samp{mips*-*-linux*} target continues to use the MIPS II routines. More -+work on this is expected in future releases. -+ -+@c If you make --with-llsc the default for another target, please also -+@c update the description of the --with-llsc option. -+ -+The built-in @code{__sync_*} functions are available on MIPS II and -+later systems and others that support the @samp{ll}, @samp{sc} and -+@samp{sync} instructions. This can be overridden by passing -+@option{--with-llsc} or @option{--without-llsc} when configuring GCC. -+Since the Linux kernel emulates these instructions if they are -+missing, the default for @samp{mips*-*-linux*} targets is -+@option{--with-llsc}. The @option{--with-llsc} and -+@option{--without-llsc} configure options may be overridden at compile -+time by passing the @option{-mllsc} or @option{-mno-llsc} options to -+the compiler. -+ -+MIPS systems check for division by zero (unless -+@option{-mno-check-zero-division} is passed to the compiler) by -+generating either a conditional trap or a break instruction. Using -+trap results in smaller code, but is only supported on MIPS II and -+later. Also, some versions of the Linux kernel have a bug that -+prevents trap from generating the proper signal (@code{SIGFPE}). To enable -+the use of break, use the @option{--with-divide=breaks} -+@command{configure} option when configuring GCC@. The default is to -+use traps on systems that support them. -+ -+Cross-compilers for the MIPS as target using the MIPS assembler -+currently do not work, because the auxiliary programs -+@file{mips-tdump.c} and @file{mips-tfile.c} can't be compiled on -+anything but a MIPS@. It does work to cross compile for a MIPS -+if you use the GNU assembler and linker. -+ -+The assembler from GNU binutils 2.17 and earlier has a bug in the way -+it sorts relocations for REL targets (o32, o64, EABI). This can cause -+bad code to be generated for simple C++ programs. Also the linker -+from GNU binutils versions prior to 2.17 has a bug which causes the -+runtime linker stubs in very large programs, like @file{libgcj.so}, to -+be incorrectly generated. GNU Binutils 2.18 and later (and snapshots -+made after Nov. 9, 2006) should be free from both of these problems. -+ -+@html -+
-+@end html -+@heading @anchor{mips-sgi-irix5}mips-sgi-irix5 -+ -+In order to compile GCC on an SGI running IRIX 5, the @samp{compiler_dev.hdr} -+subsystem must be installed from the IDO CD-ROM supplied by SGI@. -+It is also available for download from -+@uref{ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist}. -+ -+If you use the MIPS C compiler to bootstrap, it may be necessary -+to increase its table size for switch statements with the -+@option{-Wf,-XNg1500} option. If you use the @option{-O2} -+optimization option, you also need to use @option{-Olimit 3000}. -+ -+To enable debugging under IRIX 5, you must use GNU binutils 2.15 or -+later, and use the @option{--with-gnu-ld} @command{configure} option -+when configuring GCC@. You need to use GNU @command{ar} and @command{nm}, -+also distributed with GNU binutils. -+ -+Some users have reported that @command{/bin/sh} will hang during bootstrap. -+This problem can be avoided by running the commands: -+ -+@smallexample -+ % CONFIG_SHELL=/bin/ksh -+ % export CONFIG_SHELL -+@end smallexample -+ -+before starting the build. -+ -+@html -+
-+@end html -+@heading @anchor{mips-sgi-irix6}mips-sgi-irix6 -+ -+If you are using SGI's MIPSpro @command{cc} as your bootstrap compiler, you must -+ensure that the N32 ABI is in use. To test this, compile a simple C -+file with @command{cc} and then run @command{file} on the -+resulting object file. The output should look like: -+ -+@smallexample -+test.o: ELF N32 MSB @dots{} -+@end smallexample -+ -+If you see: -+ -+@smallexample -+test.o: ELF 32-bit MSB @dots{} -+@end smallexample -+ -+or -+ -+@smallexample -+test.o: ELF 64-bit MSB @dots{} -+@end smallexample -+ -+then your version of @command{cc} uses the O32 or N64 ABI by default. You -+should set the environment variable @env{CC} to @samp{cc -n32} -+before configuring GCC@. -+ -+If you want the resulting @command{gcc} to run on old 32-bit systems -+with the MIPS R4400 CPU, you need to ensure that only code for the @samp{mips3} -+instruction set architecture (ISA) is generated. While GCC 3.x does -+this correctly, both GCC 2.95 and SGI's MIPSpro @command{cc} may change -+the ISA depending on the machine where GCC is built. Using one of them -+as the bootstrap compiler may result in @samp{mips4} code, which won't run at -+all on @samp{mips3}-only systems. For the test program above, you should see: -+ -+@smallexample -+test.o: ELF N32 MSB mips-3 @dots{} -+@end smallexample -+ -+If you get: -+ -+@smallexample -+test.o: ELF N32 MSB mips-4 @dots{} -+@end smallexample -+ -+instead, you should set the environment variable @env{CC} to @samp{cc -+-n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. -+ -+MIPSpro C 7.4 may cause bootstrap failures, due to a bug when inlining -+@code{memcmp}. Either add @code{-U__INLINE_INTRINSICS} to the @env{CC} -+environment variable as a workaround or upgrade to MIPSpro C 7.4.1m. -+ -+GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs. If -+you build GCC on a system that doesn't have the N64 libraries installed -+or cannot run 64-bit binaries, -+you need to configure with @option{--disable-multilib} so GCC doesn't -+try to use them. This will disable building the O32 libraries, too. -+Look for @file{/usr/lib64/libc.so.1} to see if you -+have the 64-bit libraries installed. -+ -+To enable debugging for the O32 ABI, you must use GNU @command{as} from -+GNU binutils 2.15 or later. You may also use GNU @command{ld}, but -+this is not required and currently causes some problems with Ada. -+ -+The @option{--enable-libgcj} -+option is disabled by default: IRIX 6 uses a very low default limit -+(20480) for the command line length. Although @command{libtool} contains a -+workaround for this problem, at least the N64 @samp{libgcj} is known not -+to build despite this, running into an internal error of the native -+@command{ld}. A sure fix is to increase this limit (@samp{ncargs}) to -+its maximum of 262144 bytes. If you have root access, you can use the -+@command{systune} command to do this. -+ -+@code{wchar_t} support in @samp{libstdc++} is not available for old -+IRIX 6.5.x releases, @math{x < 19}. The problem cannot be autodetected -+and in order to build GCC for such targets you need to configure with -+@option{--disable-wchar_t}. -+ -+See @uref{http://freeware.sgi.com/} for more -+information about using GCC on IRIX platforms. -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-x}powerpc-*-* -+ -+You can specify a default version for the @option{-mcpu=@var{cpu_type}} -+switch by using the configure option @option{--with-cpu-@var{cpu_type}}. -+ -+You will need -+@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15} -+or newer for a working GCC@. -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-darwin}powerpc-*-darwin* -+PowerPC running Darwin (Mac OS X kernel). -+ -+Pre-installed versions of Mac OS X may not include any developer tools, -+meaning that you will not be able to build GCC from source. Tool -+binaries are available at -+@uref{http://developer.apple.com/darwin/projects/compiler/} (free -+registration required). -+ -+This version of GCC requires at least cctools-590.36. The -+cctools-590.36 package referenced from -+@uref{http://gcc.gnu.org/ml/gcc/2006-03/msg00507.html} will not work -+on systems older than 10.3.9 (aka darwin7.9.0). -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-elf}powerpc-*-elf -+PowerPC system in big endian mode, running System V.4. -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-linux-gnu}powerpc*-*-linux-gnu* -+ -+PowerPC system in big endian mode running Linux. -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-netbsd}powerpc-*-netbsd* -+PowerPC system in big endian mode running NetBSD@. -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-eabisim}powerpc-*-eabisim -+Embedded PowerPC system in big endian mode for use in running under the -+PSIM simulator. -+ -+@html -+
-+@end html -+@heading @anchor{powerpc-x-eabi}powerpc-*-eabi -+Embedded PowerPC system in big endian mode. -+ -+@html -+
-+@end html -+@heading @anchor{powerpcle-x-elf}powerpcle-*-elf -+PowerPC system in little endian mode, running System V.4. -+ -+@html -+
-+@end html -+@heading @anchor{powerpcle-x-eabisim}powerpcle-*-eabisim -+Embedded PowerPC system in little endian mode for use in running under -+the PSIM simulator. -+ -+@html -+
-+@end html -+@heading @anchor{powerpcle-x-eabi}powerpcle-*-eabi -+Embedded PowerPC system in little endian mode. -+ -+@html -+
-+@end html -+@heading @anchor{s390-x-linux}s390-*-linux* -+S/390 system running GNU/Linux for S/390@. -+ -+@html -+
-+@end html -+@heading @anchor{s390x-x-linux}s390x-*-linux* -+zSeries system (64-bit) running GNU/Linux for zSeries@. -+ -+@html -+
-+@end html -+@heading @anchor{s390x-ibm-tpf}s390x-ibm-tpf* -+zSeries system (64-bit) running TPF@. This platform is -+supported as cross-compilation target only. -+ -+@html -+
-+@end html -+@c Please use Solaris 2 to refer to all release of Solaris, starting -+@c with 2.0 until 2.6, 7, 8, etc. Solaris 1 was a marketing name for -+@c SunOS 4 releases which we don't use to avoid confusion. Solaris -+@c alone is too unspecific and must be avoided. -+@heading @anchor{x-x-solaris2}*-*-solaris2* -+ -+Sun does not ship a C compiler with Solaris 2. To bootstrap and install -+GCC you first have to install a pre-built compiler, see the -+@uref{binaries.html,,binaries page} for details. -+ -+The Solaris 2 @command{/bin/sh} will often fail to configure -+@file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. We therefore -+recommend using the following initial sequence of commands -+ -+@smallexample -+ % CONFIG_SHELL=/bin/ksh -+ % export CONFIG_SHELL -+@end smallexample -+ -+and proceed as described in @uref{configure.html,,the configure instructions}. -+In addition we strongly recommend specifying an absolute path to invoke -+@var{srcdir}/configure. -+ -+Solaris 2 comes with a number of optional OS packages. Some of these -+are needed to use GCC fully, namely @code{SUNWarc}, -+@code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm}, -+@code{SUNWsprot}, and @code{SUNWtoo}. If you did not install all -+optional packages when installing Solaris 2, you will need to verify that -+the packages that GCC needs are installed. -+ -+To check whether an optional package is installed, use -+the @command{pkginfo} command. To add an optional package, use the -+@command{pkgadd} command. For further details, see the Solaris 2 -+documentation. -+ -+Trying to use the linker and other tools in -+@file{/usr/ucb} to install GCC has been observed to cause trouble. -+For example, the linker may hang indefinitely. The fix is to remove -+@file{/usr/ucb} from your @env{PATH}. -+ -+The build process works more smoothly with the legacy Sun tools so, if you -+have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place -+@file{/usr/bin} before @file{/usr/xpg4/bin} for the duration of the build. -+ -+We recommend the use of GNU binutils 2.14 or later, or the vendor tools -+(Sun @command{as}, Sun @command{ld}). Note that your mileage may vary -+if you use a combination of the GNU tools and the Sun tools: while the -+combination GNU @command{as} + Sun @command{ld} should reasonably work, -+the reverse combination Sun @command{as} + GNU @command{ld} is known to -+cause memory corruption at runtime in some cases for C++ programs. -+ -+The stock GNU binutils 2.15 release is broken on this platform because of a -+single bug. It has been fixed on the 2.15 branch in the CVS repository. -+You can obtain a working version by checking out the binutils-2_15-branch -+from the CVS repository or applying the patch -+@uref{http://sourceware.org/ml/binutils-cvs/2004-09/msg00036.html} to the -+release. -+ -+We recommend the use of GNU binutils 2.16 or later in conjunction with GCC -+4.x, or the vendor tools (Sun @command{as}, Sun @command{ld}). However, -+for Solaris 10 and above, an additional patch is required in order for the -+GNU linker to be able to cope with a new flavor of shared libraries. You -+can obtain a working version by checking out the binutils-2_16-branch from -+the CVS repository or applying the patch -+@uref{http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html} to the -+release. -+ -+Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or -+newer: @command{g++} will complain that types are missing. These headers -+assume that omitting the type means @code{int}; this assumption worked for -+C89 but is wrong for C++, and is now wrong for C99 also. -+ -+@command{g++} accepts such (invalid) constructs with the option -+@option{-fpermissive}; it will assume that any missing type is @code{int} -+(as defined by C89). -+ -+There are patches for Solaris 7 (108376-21 or newer for SPARC, -+108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, -+108653-22 for Intel) that fix this bug. -+ -+Sun bug 4927647 sometimes causes random spurious testsuite failures -+related to missing diagnostic output. This bug doesn't affect GCC -+itself, rather it is a kernel bug triggered by the @command{expect} -+program which is used only by the GCC testsuite driver. When the bug -+causes the @command{expect} program to miss anticipated output, extra -+testsuite failures appear. -+ -+There are patches for Solaris 8 (117350-12 or newer for SPARC, -+117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for -+SPARC, 117172-11 or newer for Intel) that address this problem. -+ -+@html -+
-+@end html -+@heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2* -+ -+When GCC is configured to use binutils 2.14 or later the binaries -+produced are smaller than the ones produced using Sun's native tools; -+this difference is quite significant for binaries containing debugging -+information. -+ -+Starting with Solaris 7, the operating system is capable of executing -+64-bit SPARC V9 binaries. GCC 3.1 and later properly supports -+this; the @option{-m64} option enables 64-bit code generation. -+However, if all you want is code tuned for the UltraSPARC CPU, you -+should try the @option{-mtune=ultrasparc} option instead, which produces -+code that, unlike full 64-bit code, can still run on non-UltraSPARC -+machines. -+ -+When configuring on a Solaris 7 or later system that is running a kernel -+that supports only 32-bit binaries, one must configure with -+@option{--disable-multilib}, since we will not be able to build the -+64-bit target libraries. -+ -+GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of -+the GNU compiler (especially GCC 3.0.x versions), which lead to the -+miscompilation of the stage1 compiler and the subsequent failure of the -+bootstrap process. A workaround is to use GCC 3.2.3 as an intermediary -+stage, i.e.@: to bootstrap that compiler with the base compiler and then -+use it to bootstrap the final compiler. -+ -+GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) -+and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes a bootstrap -+failure in form of a miscompilation of the stage1 compiler by the Sun -+compiler. This is Sun bug 4974440. This is fixed with patch 112760-07. -+ -+GCC 3.4 changed the default debugging format from STABS to DWARF-2 for -+32-bit code on Solaris 7 and later. If you use the Sun assembler, this -+change apparently runs afoul of Sun bug 4910101 (which is referenced as -+a x86-only problem by Sun, probably because they do not use DWARF-2). -+A symptom of the problem is that you cannot compile C++ programs like -+@command{groff} 1.19.1 without getting messages similar to the following: -+ -+@smallexample -+ld: warning: relocation error: R_SPARC_UA32: @dots{} -+ external symbolic relocation against non-allocatable section -+ .debug_info cannot be processed at runtime: relocation ignored. -+@end smallexample -+ -+To work around this problem, compile with @option{-gstabs+} instead of -+plain @option{-g}. -+ -+When configuring the GNU Multiple Precision Library (GMP) or the MPFR -+library on a Solaris 7 or later system, the canonical target triplet -+must be specified as the @command{build} parameter on the configure -+line. This triplet can be obtained by invoking ./config.guess in -+the toplevel source directory of GCC (and not that of GMP or MPFR). -+For example on a Solaris 7 system: -+ -+@smallexample -+ % ./configure --build=sparc-sun-solaris2.7 --prefix=xxx -+@end smallexample -+ -+@html -+
-+@end html -+@heading @anchor{sparc-sun-solaris27}sparc-sun-solaris2.7 -+ -+Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in -+the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 -+and later, including all EGCS releases. Sun formerly recommended -+107058-01 for all Solaris 7 users, but around 1999-09-01 it started to -+recommend it only for people who use Sun's compilers. -+ -+Here are some workarounds to this problem: -+@itemize @bullet -+@item -+Do not install Sun patch 107058-01 until after Sun releases a -+complete patch for bug 4210064. This is the simplest course to take, -+unless you must also use Sun's C compiler. Unfortunately 107058-01 -+is preinstalled on some new Solaris 7-based hosts, so you may have to -+back it out. -+ -+@item -+Copy the original, unpatched Solaris 7 -+@command{/usr/ccs/bin/as} into -+@command{/usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as}, -+adjusting the latter name to fit your local conventions and software -+version numbers. -+ -+@item -+Install Sun patch 106950-03 (1999-05-25) or later. Nobody with -+both 107058-01 and 106950-03 installed has reported the bug with GCC -+and Sun's dynamic linker. This last course of action is riskiest, -+for two reasons. First, you must install 106950 on all hosts that -+run code generated by GCC; it doesn't suffice to install it only on -+the hosts that run GCC itself. Second, Sun says that 106950-03 is -+only a partial fix for bug 4210064, but Sun doesn't know whether the -+partial fix is adequate for GCC@. Revision -08 or later should fix -+the bug. The current (as of 2004-05-23) revision is -24, and is included in -+the Solaris 7 Recommended Patch Cluster. -+@end itemize -+ -+GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler, -+which causes a bootstrap failure when linking the 64-bit shared version of -+libgcc. A typical error message is: -+ -+@smallexample -+ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o: -+ symbol : offset 0xffffffff7ec133e7 is non-aligned. -+@end smallexample -+ -+This bug has been fixed in the final 5.0 version of the assembler. -+ -+A similar problem was reported for version Sun WorkShop 6 99/08/18 of the -+Sun assembler, which causes a bootstrap failure with GCC 4.0.0: -+ -+@smallexample -+ld: fatal: relocation error: R_SPARC_DISP32: -+ file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o: -+ symbol : offset 0xfccd33ad is non-aligned -+@end smallexample -+ -+This bug has been fixed in more recent revisions of the assembler. -+ -+@html -+
-+@end html -+@heading @anchor{sparc-x-linux}sparc-*-linux* -+ -+GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 -+or newer on this platform. All earlier binutils and glibc -+releases mishandled unaligned relocations on @code{sparc-*-*} targets. -+ -+ -+@html -+
-+@end html -+@heading @anchor{sparc64-x-solaris2}sparc64-*-solaris2* -+ -+When configuring the GNU Multiple Precision Library (GMP) or the -+MPFR library, the canonical target triplet must be specified as -+the @command{build} parameter on the configure line. For example -+on a Solaris 7 system: -+ -+@smallexample -+ % ./configure --build=sparc64-sun-solaris2.7 --prefix=xxx -+@end smallexample -+ -+The following compiler flags must be specified in the configure -+step in order to bootstrap this target with the Sun compiler: -+ -+@smallexample -+ % CC="cc -xarch=v9 -xildoff" @var{srcdir}/configure [@var{options}] [@var{target}] -+@end smallexample -+ -+@option{-xarch=v9} specifies the SPARC-V9 architecture to the Sun toolchain -+and @option{-xildoff} turns off the incremental linker. -+ -+@html -+
-+@end html -+@heading @anchor{sparcv9-x-solaris2}sparcv9-*-solaris2* -+ -+This is a synonym for sparc64-*-solaris2*. -+ -+@html -+
-+@end html -+@heading @anchor{x-x-vxworks}*-*-vxworks* -+Support for VxWorks is in flux. At present GCC supports @emph{only} the -+very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC@. -+We welcome patches for other architectures supported by VxWorks 5.5. -+Support for VxWorks AE would also be welcome; we believe this is merely -+a matter of writing an appropriate ``configlette'' (see below). We are -+not interested in supporting older, a.out or COFF-based, versions of -+VxWorks in GCC 3. -+ -+VxWorks comes with an older version of GCC installed in -+@file{@var{$WIND_BASE}/host}; we recommend you do not overwrite it. -+Choose an installation @var{prefix} entirely outside @var{$WIND_BASE}. -+Before running @command{configure}, create the directories @file{@var{prefix}} -+and @file{@var{prefix}/bin}. Link or copy the appropriate assembler, -+linker, etc.@: into @file{@var{prefix}/bin}, and set your @var{PATH} to -+include that directory while running both @command{configure} and -+@command{make}. -+ -+You must give @command{configure} the -+@option{--with-headers=@var{$WIND_BASE}/target/h} switch so that it can -+find the VxWorks system headers. Since VxWorks is a cross compilation -+target only, you must also specify @option{--target=@var{target}}. -+@command{configure} will attempt to create the directory -+@file{@var{prefix}/@var{target}/sys-include} and copy files into it; -+make sure the user running @command{configure} has sufficient privilege -+to do so. -+ -+GCC's exception handling runtime requires a special ``configlette'' -+module, @file{contrib/gthr_supp_vxw_5x.c}. Follow the instructions in -+that file to add the module to your kernel build. (Future versions of -+VxWorks will incorporate this module.) -+ -+@html -+
-+@end html -+@heading @anchor{x86-64-x-x}x86_64-*-*, amd64-*-* -+ -+GCC supports the x86-64 architecture implemented by the AMD64 processor -+(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD@. -+On GNU/Linux the default is a bi-arch compiler which is able to generate -+both 64-bit x86-64 and 32-bit x86 code (via the @option{-m32} switch). -+ -+@html -+
-+@end html -+@heading @anchor{xtensa-x-elf}xtensa*-*-elf -+ -+This target is intended for embedded Xtensa systems using the -+@samp{newlib} C library. It uses ELF but does not support shared -+objects. Designed-defined instructions specified via the -+Tensilica Instruction Extension (TIE) language are only supported -+through inline assembly. -+ -+The Xtensa configuration information must be specified prior to -+building GCC@. The @file{include/xtensa-config.h} header -+file contains the configuration information. If you created your -+own Xtensa configuration with the Xtensa Processor Generator, the -+downloaded files include a customized copy of this header file, -+which you can use to replace the default header file. -+ -+@html -+
-+@end html -+@heading @anchor{xtensa-x-linux}xtensa*-*-linux* -+ -+This target is for Xtensa systems running GNU/Linux. It supports ELF -+shared objects and the GNU C library (glibc). It also generates -+position-independent code (PIC) regardless of whether the -+@option{-fpic} or @option{-fPIC} options are used. In other -+respects, this target is the same as the -+@uref{#xtensa*-*-elf,,@samp{xtensa*-*-elf}} target. -+ -+@html -+
-+@end html -+@heading @anchor{windows}Microsoft Windows -+ -+@subheading Intel 16-bit versions -+The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not -+supported. -+ -+However, the 32-bit port has limited support for Microsoft -+Windows 3.11 in the Win32s environment, as a target only. See below. -+ -+@subheading Intel 32-bit versions -+ -+The 32-bit versions of Windows, including Windows 95, Windows NT, Windows -+XP, and Windows Vista, are supported by several different target -+platforms. These targets differ in which Windows subsystem they target -+and which C libraries are used. -+ -+@itemize -+@item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space -+Linux API emulation layer in the Win32 subsystem. -+@item Interix @uref{#x-x-interix,,*-*-interix}: The Interix subsystem -+provides native support for POSIX. -+@item MinGW @uref{#x-x-mingw,,*-*-mingw}: MinGW is a native GCC port for -+the Win32 subsystem that provides a subset of POSIX. -+@item MKS i386-pc-mks: NuTCracker from MKS. See -+@uref{http://www.mkssoftware.com/} for more information. -+@end itemize -+ -+@subheading Intel 64-bit versions -+ -+GCC contains support for x86-64 using the mingw-w64 -+runtime library, available from @uref{http://mingw-w64.sourceforge.net/}. -+This library should be used with the target triple x86_64-pc-mingw32. -+ -+Presently Windows for Itanium is not supported. -+ -+@subheading Windows CE -+ -+Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi -+SuperH (sh-wince-pe), and MIPS (mips-wince-pe). -+ -+@subheading Other Windows Platforms -+ -+GCC no longer supports Windows NT on the Alpha or PowerPC. -+ -+GCC no longer supports the Windows POSIX subsystem. However, it does -+support the Interix subsystem. See above. -+ -+Old target names including *-*-winnt and *-*-windowsnt are no longer used. -+ -+PW32 (i386-pc-pw32) support was never completed, and the project seems to -+be inactive. See @uref{http://pw32.sourceforge.net/} for more information. -+ -+UWIN support has been removed due to a lack of maintenance. -+ -+@html -+
-+@end html -+@heading @anchor{x-x-cygwin}*-*-cygwin -+ -+Ports of GCC are included with the -+@uref{http://www.cygwin.com/,,Cygwin environment}. -+ -+GCC will build under Cygwin without modification; it does not build -+with Microsoft's C++ compiler and there are no plans to make it do so. -+ -+Cygwin can be compiled with i?86-pc-cygwin. -+ -+@html -+
-+@end html -+@heading @anchor{x-x-interix}*-*-interix -+ -+The Interix target is used by OpenNT, Interix, Services For UNIX (SFU), -+and Subsystem for UNIX-based Applications (SUA). Applications compiled -+with this target run in the Interix subsystem, which is separate from -+the Win32 subsystem. This target was last known to work in GCC 3.3. -+ -+For more information, see @uref{http://www.interix.com/}. -+ -+@html -+
-+@end html -+@heading @anchor{x-x-mingw32}*-*-mingw32 -+ -+GCC will build with and support only MinGW runtime 3.12 and later. -+Earlier versions of headers are incompatible with the new default semantics -+of @code{extern inline} in @code{-std=c99} and @code{-std=gnu99} modes. -+ -+@html -+
-+@end html -+@heading @anchor{os2}OS/2 -+ -+GCC does not currently support OS/2. However, Andrew Zabolotny has been -+working on a generic OS/2 port with pgcc. The current code can be found -+at @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}. -+ -+@html -+
-+@end html -+@heading @anchor{older}Older systems -+ -+GCC contains support files for many older (1980s and early -+1990s) Unix variants. For the most part, support for these systems -+has not been deliberately removed, but it has not been maintained for -+several years and may suffer from bitrot. -+ -+Starting with GCC 3.1, each release has a list of ``obsoleted'' systems. -+Support for these systems is still present in that release, but -+@command{configure} will fail unless the @option{--enable-obsolete} -+option is given. Unless a maintainer steps forward, support for these -+systems will be removed from the next release of GCC@. -+ -+Support for old systems as hosts for GCC can cause problems if the -+workarounds for compiler, library and operating system bugs affect the -+cleanliness or maintainability of the rest of GCC@. In some cases, to -+bring GCC up on such a system, if still possible with current GCC, may -+require first installing an old version of GCC which did work on that -+system, and using it to compile a more recent GCC, to avoid bugs in the -+vendor compiler. Old releases of GCC 1 and GCC 2 are available in the -+@file{old-releases} directory on the @uref{../mirrors.html,,GCC mirror -+sites}. Header bugs may generally be avoided using -+@command{fixincludes}, but bugs or deficiencies in libraries and the -+operating system may still cause problems. -+ -+Support for older systems as targets for cross-compilation is less -+problematic than support for them as hosts for GCC; if an enthusiast -+wishes to make such a target work again (including resurrecting any of -+the targets that never worked with GCC 2, starting from the last -+version before they were removed), patches -+@uref{../contribute.html,,following the usual requirements} would be -+likely to be accepted, since they should not affect the support for more -+modern targets. -+ -+For some systems, old versions of GNU binutils may also be useful, -+and are available from @file{pub/binutils/old-releases} on -+@uref{http://sourceware.org/mirrors.html,,sourceware.org mirror sites}. -+ -+Some of the information on specific systems above relates to -+such older systems, but much of the information -+about GCC on such systems (which may no longer be applicable to -+current GCC) is to be found in the GCC texinfo manual. -+ -+@html -+
-+@end html -+@heading @anchor{elf}all ELF targets (SVR4, Solaris 2, etc.) -+ -+C++ support is significantly better on ELF targets if you use the -+@uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of -+inlines, vtables and template instantiations will be discarded -+automatically. -+ -+ -+@html -+
-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***Old documentation****************************************************** -+@ifset oldhtml -+@include install-old.texi -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c ***GFDL******************************************************************** -+@ifset gfdlhtml -+@include fdl.texi -+@html -+


-+

-+@end html -+@ifhtml -+@uref{./index.html,,Return to the GCC Installation page} -+@end ifhtml -+@end ifset -+ -+@c *************************************************************************** -+@c Part 6 The End of the Document -+@ifinfo -+@comment node-name, next, previous, up -+@node Concept Index, , GNU Free Documentation License, Top -+@end ifinfo -+ -+@ifinfo -+@unnumbered Concept Index -+ -+@printindex cp -+ -+@contents -+@end ifinfo -+@bye -diff -Naur gcc-4.4.2.orig/gcc/doc/invoke.texi gcc-4.4.2-rtems4.10-20091015/gcc/doc/invoke.texi ---- gcc-4.4.2.orig/gcc/doc/invoke.texi 2009-09-18 23:53:23.000000000 +0200 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/doc/invoke.texi 2009-10-15 18:36:00.000000000 +0200 -@@ -606,6 +606,10 @@ - -mno-sched-prefer-non-control-spec-insns @gol - -mno-sched-count-spec-in-critical-path} - -+@emph{LM32 Options} -+@gccoptlist{-mbarrel-shift-enabled -mdivide-enabled -mmultiply-enabled @gol -+-msign-extend-enabled -muser-enabled} -+ - @emph{M32R/D Options} - @gccoptlist{-m32r2 -m32rx -m32r @gol - -mdebug @gol -@@ -8853,6 +8857,7 @@ - * i386 and x86-64 Options:: - * i386 and x86-64 Windows Options:: - * IA-64 Options:: -+* LM32 Options:: - * M32C Options:: - * M32R/D Options:: - * M680x0 Options:: -@@ -11837,6 +11842,35 @@ - - @end table - -+@node LM32 Options -+@subsection LM32 Options -+@cindex LM32 options -+ -+These @option{-m} options are defined for the Lattice Mico32 architecture: -+ -+@table @gcctabopt -+@item -mbarrel-shift-enabled -+@opindex mbarrel-shift-enabled -+Enable barrel-shift instructions. -+ -+@item -mdivide-enabled -+@opindex mdivide-enabled -+Enable divide and modulus instructions. -+ -+@item -mmultiply-enabled -+@opindex multiply-enabled -+Enable multiply instructions. -+ -+@item -msign-extend-enabled -+@opindex msign-extend-enabled -+Enable sign extend instructions. -+ -+@item -muser-enabled -+@opindex muser-enabled -+Enable user-defined instructions. -+ -+@end table -+ - @node M32R/D Options - @subsection M32R/D Options - @cindex M32R/D options -diff -Naur gcc-4.4.2.orig/gcc/doc/invoke.texi.orig gcc-4.4.2-rtems4.10-20091015/gcc/doc/invoke.texi.orig ---- gcc-4.4.2.orig/gcc/doc/invoke.texi.orig 1970-01-01 01:00:00.000000000 +0100 -+++ gcc-4.4.2-rtems4.10-20091015/gcc/doc/invoke.texi.orig 2009-10-15 18:36:00.000000000 +0200 -@@ -0,0 +1,16649 @@ -+@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -+@c 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -+@c Free Software Foundation, Inc. -+@c This is part of the GCC manual. -+@c For copying conditions, see the file gcc.texi. -+ -+@ignore -+@c man begin INCLUDE -+@include gcc-vers.texi -+@c man end -+ -+@c man begin COPYRIGHT -+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -+1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -+Free Software Foundation, Inc. -+ -+Permission is granted to copy, distribute and/or modify this document -+under the terms of the GNU Free Documentation License, Version 1.2 or -+any later version published by the Free Software Foundation; with the -+Invariant Sections being ``GNU General Public License'' and ``Funding -+Free Software'', the Front-Cover texts being (a) (see below), and with -+the Back-Cover Texts being (b) (see below). A copy of the license is -+included in the gfdl(7) man page. -+ -+(a) The FSF's Front-Cover Text is: -+ -+ A GNU Manual -+ -+(b) The FSF's Back-Cover Text is: -+ -+ You have freedom to copy and modify this GNU Manual, like GNU -+ software. Copies published by the Free Software Foundation raise -+ funds for GNU development. -+@c man end -+@c Set file name and title for the man page. -+@setfilename gcc -+@settitle GNU project C and C++ compiler -+@c man begin SYNOPSIS -+gcc [@option{-c}|@option{-S}|@option{-E}] [@option{-std=}@var{standard}] -+ [@option{-g}] [@option{-pg}] [@option{-O}@var{level}] -+ [@option{-W}@var{warn}@dots{}] [@option{-pedantic}] -+ [@option{-I}@var{dir}@dots{}] [@option{-L}@var{dir}@dots{}] -+ [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}] -+ [@option{-f}@var{option}@dots{}] [@option{-m}@var{machine-option}@dots{}] -+ [@option{-o} @var{outfile}] [@@@var{file}] @var{infile}@dots{} -+ -+Only the most useful options are listed here; see below for the -+remainder. @samp{g++} accepts mostly the same options as @samp{gcc}. -+@c man end -+@c man begin SEEALSO -+gpl(7), gfdl(7), fsf-funding(7), -+cpp(1), gcov(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1) -+and the Info entries for @file{gcc}, @file{cpp}, @file{as}, -+@file{ld}, @file{binutils} and @file{gdb}. -+@c man end -+@c man begin BUGS -+For instructions on reporting bugs, see -+@w{@value{BUGURL}}. -+@c man end -+@c man begin AUTHOR -+See the Info entry for @command{gcc}, or -+@w{@uref{http://gcc.gnu.org/onlinedocs/gcc/Contributors.html}}, -+for contributors to GCC@. -+@c man end -+@end ignore -+ -+@node Invoking GCC -+@chapter GCC Command Options -+@cindex GCC command options -+@cindex command options -+@cindex options, GCC command -+ -+@c man begin DESCRIPTION -+When you invoke GCC, it normally does preprocessing, compilation, -+assembly and linking. The ``overall options'' allow you to stop this -+process at an intermediate stage. For example, the @option{-c} option -+says not to run the linker. Then the output consists of object files -+output by the assembler. -+ -+Other options are passed on to one stage of processing. Some options -+control the preprocessor and others the compiler itself. Yet other -+options control the assembler and linker; most of these are not -+documented here, since you rarely need to use any of them. -+ -+@cindex C compilation options -+Most of the command line options that you can use with GCC are useful -+for C programs; when an option is only useful with another language -+(usually C++), the explanation says so explicitly. If the description -+for a particular option does not mention a source language, you can use -+that option with all supported languages. -+ -+@cindex C++ compilation options -+@xref{Invoking G++,,Compiling C++ Programs}, for a summary of special -+options for compiling C++ programs. -+ -+@cindex grouping options -+@cindex options, grouping -+The @command{gcc} program accepts options and file names as operands. Many -+options have multi-letter names; therefore multiple single-letter options -+may @emph{not} be grouped: @option{-dv} is very different from @w{@samp{-d -+-v}}. -+ -+@cindex order of options -+@cindex options, order -+You can mix options and other arguments. For the most part, the order -+you use doesn't matter. Order does matter when you use several -+options of the same kind; for example, if you specify @option{-L} more -+than once, the directories are searched in the order specified. Also, -+the placement of the @option{-l} option is significant. -+ -+Many options have long names starting with @samp{-f} or with -+@samp{-W}---for example, -+@option{-fmove-loop-invariants}, @option{-Wformat} and so on. Most of -+these have both positive and negative forms; the negative form of -+@option{-ffoo} would be @option{-fno-foo}. This manual documents -+only one of these two forms, whichever one is not the default. -+ -+@c man end -+ -+@xref{Option Index}, for an index to GCC's options. -+ -+@menu -+* Option Summary:: Brief list of all options, without explanations. -+* Overall Options:: Controlling the kind of output: -+ an executable, object files, assembler files, -+ or preprocessed source. -+* Invoking G++:: Compiling C++ programs. -+* C Dialect Options:: Controlling the variant of C language compiled. -+* C++ Dialect Options:: Variations on C++. -+* Objective-C and Objective-C++ Dialect Options:: Variations on Objective-C -+ and Objective-C++. -+* Language Independent Options:: Controlling how diagnostics should be -+ formatted. -+* Warning Options:: How picky should the compiler be? -+* Debugging Options:: Symbol tables, measurements, and debugging dumps. -+* Optimize Options:: How much optimization? -+* Preprocessor Options:: Controlling header files and macro definitions. -+ Also, getting dependency information for Make. -+* Assembler Options:: Passing options to the assembler. -+* Link Options:: Specifying libraries and so on. -+* Directory Options:: Where to find header files and libraries. -+ Where to find the compiler executable files. -+* Spec Files:: How to pass switches to sub-processes. -+* Target Options:: Running a cross-compiler, or an old version of GCC. -+* Submodel Options:: Specifying minor hardware or convention variations, -+ such as 68010 vs 68020. -+* Code Gen Options:: Specifying conventions for function calls, data layout -+ and register usage. -+* Environment Variables:: Env vars that affect GCC. -+* Precompiled Headers:: Compiling a header once, and using it many times. -+* Running Protoize:: Automatically adding or removing function prototypes. -+@end menu -+ -+@c man begin OPTIONS -+ -+@node Option Summary -+@section Option Summary -+ -+Here is a summary of all the options, grouped by type. Explanations are -+in the following sections. -+ -+@table @emph -+@item Overall Options -+@xref{Overall Options,,Options Controlling the Kind of Output}. -+@gccoptlist{-c -S -E -o @var{file} -combine -pipe -pass-exit-codes @gol -+-x @var{language} -v -### --help@r{[}=@var{class}@r{[},@dots{}@r{]]} --target-help @gol -+--version -wrapper@@@var{file}} -+ -+@item C Language Options -+@xref{C Dialect Options,,Options Controlling C Dialect}. -+@gccoptlist{-ansi -std=@var{standard} -fgnu89-inline @gol -+-aux-info @var{filename} @gol -+-fno-asm -fno-builtin -fno-builtin-@var{function} @gol -+-fhosted -ffreestanding -fopenmp -fms-extensions @gol -+-trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol -+-fallow-single-precision -fcond-mismatch -flax-vector-conversions @gol -+-fsigned-bitfields -fsigned-char @gol -+-funsigned-bitfields -funsigned-char} -+ -+@item C++ Language Options -+@xref{C++ Dialect Options,,Options Controlling C++ Dialect}. -+@gccoptlist{-fabi-version=@var{n} -fno-access-control -fcheck-new @gol -+-fconserve-space -ffriend-injection @gol -+-fno-elide-constructors @gol -+-fno-enforce-eh-specs @gol -+-ffor-scope -fno-for-scope -fno-gnu-keywords @gol -+-fno-implicit-templates @gol -+-fno-implicit-inline-templates @gol -+-fno-implement-inlines -fms-extensions @gol -+-fno-nonansi-builtins -fno-operator-names @gol -+-fno-optional-diags -fpermissive @gol -+-frepo -fno-rtti -fstats -ftemplate-depth-@var{n} @gol -+-fno-threadsafe-statics -fuse-cxa-atexit -fno-weak -nostdinc++ @gol -+-fno-default-inline -fvisibility-inlines-hidden @gol -+-fvisibility-ms-compat @gol -+-Wabi -Wctor-dtor-privacy @gol -+-Wnon-virtual-dtor -Wreorder @gol -+-Weffc++ -Wstrict-null-sentinel @gol -+-Wno-non-template-friend -Wold-style-cast @gol -+-Woverloaded-virtual -Wno-pmf-conversions @gol -+-Wsign-promo} -+ -+@item Objective-C and Objective-C++ Language Options -+@xref{Objective-C and Objective-C++ Dialect Options,,Options Controlling -+Objective-C and Objective-C++ Dialects}. -+@gccoptlist{-fconstant-string-class=@var{class-name} @gol -+-fgnu-runtime -fnext-runtime @gol -+-fno-nil-receivers @gol -+-fobjc-call-cxx-cdtors @gol -+-fobjc-direct-dispatch @gol -+-fobjc-exceptions @gol -+-fobjc-gc @gol -+-freplace-objc-classes @gol -+-fzero-link @gol -+-gen-decls @gol -+-Wassign-intercept @gol -+-Wno-protocol -Wselector @gol -+-Wstrict-selector-match @gol -+-Wundeclared-selector} -+ -+@item Language Independent Options -+@xref{Language Independent Options,,Options to Control Diagnostic Messages Formatting}. -+@gccoptlist{-fmessage-length=@var{n} @gol -+-fdiagnostics-show-location=@r{[}once@r{|}every-line@r{]} @gol -+-fdiagnostics-show-option} -+ -+@item Warning Options -+@xref{Warning Options,,Options to Request or Suppress Warnings}. -+@gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol -+-w -Wextra -Wall -Waddress -Waggregate-return -Warray-bounds @gol -+-Wno-attributes -Wno-builtin-macro-redefined @gol -+-Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual @gol -+-Wchar-subscripts -Wclobbered -Wcomment @gol -+-Wconversion -Wcoverage-mismatch -Wno-deprecated @gol -+-Wno-deprecated-declarations -Wdisabled-optimization @gol -+-Wno-div-by-zero -Wempty-body -Wenum-compare -Wno-endif-labels @gol -+-Werror -Werror=* @gol -+-Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol -+-Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol -+-Wformat-security -Wformat-y2k @gol -+-Wframe-larger-than=@var{len} -Wignored-qualifiers @gol -+-Wimplicit -Wimplicit-function-declaration -Wimplicit-int @gol -+-Winit-self -Winline @gol -+-Wno-int-to-pointer-cast -Wno-invalid-offsetof @gol -+-Winvalid-pch -Wlarger-than=@var{len} -Wunsafe-loop-optimizations @gol -+-Wlogical-op -Wlong-long @gol -+-Wmain -Wmissing-braces -Wmissing-field-initializers @gol -+-Wmissing-format-attribute -Wmissing-include-dirs @gol -+-Wmissing-noreturn -Wno-mudflap @gol -+-Wno-multichar -Wnonnull -Wno-overflow @gol -+-Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol -+-Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol -+-Wpointer-arith -Wno-pointer-to-int-cast @gol -+-Wredundant-decls @gol -+-Wreturn-type -Wsequence-point -Wshadow @gol -+-Wsign-compare -Wsign-conversion -Wstack-protector @gol -+-Wstrict-aliasing -Wstrict-aliasing=n @gol -+-Wstrict-overflow -Wstrict-overflow=@var{n} @gol -+-Wswitch -Wswitch-default -Wswitch-enum -Wsync-nand @gol -+-Wsystem-headers -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized @gol -+-Wunknown-pragmas -Wno-pragmas -Wunreachable-code @gol -+-Wunused -Wunused-function -Wunused-label -Wunused-parameter @gol -+-Wunused-value -Wunused-variable @gol -+-Wvariadic-macros -Wvla @gol -+-Wvolatile-register-var -Wwrite-strings} -+ -+@item C and Objective-C-only Warning Options -+@gccoptlist{-Wbad-function-cast -Wmissing-declarations @gol -+-Wmissing-parameter-type -Wmissing-prototypes -Wnested-externs @gol -+-Wold-style-declaration -Wold-style-definition @gol -+-Wstrict-prototypes -Wtraditional -Wtraditional-conversion @gol -+-Wdeclaration-after-statement -Wpointer-sign} -+ -+@item Debugging Options -+@xref{Debugging Options,,Options for Debugging Your Program or GCC}. -+@gccoptlist{-d@var{letters} -dumpspecs -dumpmachine -dumpversion @gol -+-fdbg-cnt-list -fdbg-cnt=@var{counter-value-list} @gol -+-fdump-noaddr -fdump-unnumbered @gol -+-fdump-translation-unit@r{[}-@var{n}@r{]} @gol -+-fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol -+-fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline @gol -+-fdump-statistics @gol -+-fdump-tree-all @gol -+-fdump-tree-original@r{[}-@var{n}@r{]} @gol -+-fdump-tree-optimized@r{[}-@var{n}@r{]} @gol -+-fdump-tree-cfg -fdump-tree-vcg -fdump-tree-alias @gol -+-fdump-tree-ch @gol -+-fdump-tree-ssa@r{[}-@var{n}@r{]} -fdump-tree-pre@r{[}-@var{n}@r{]} @gol -+-fdump-tree-ccp@r{[}-@var{n}@r{]} -fdump-tree-dce@r{[}-@var{n}@r{]} @gol -+-fdump-tree-gimple@r{[}-raw@r{]} -fdump-tree-mudflap@r{[}-@var{n}@r{]} @gol -+-fdump-tree-dom@r{[}-@var{n}@r{]} @gol -+-fdump-tree-dse@r{[}-@var{n}@r{]} @gol -+-fdump-tree-phiopt@r{[}-@var{n}@r{]} @gol -+-fdump-tree-forwprop@r{[}-@var{n}@r{]} @gol -+-fdump-tree-copyrename@r{[}-@var{n}@r{]} @gol -+-fdump-tree-nrv -fdump-tree-vect @gol -+-fdump-tree-sink @gol -+-fdump-tree-sra@r{[}-@var{n}@r{]} @gol -+-fdump-tree-fre@r{[}-@var{n}@r{]} @gol -+-fdump-tree-vrp@r{[}-@var{n}@r{]} @gol -+-ftree-vectorizer-verbose=@var{n} @gol -+-fdump-tree-storeccp@r{[}-@var{n}@r{]} @gol -+-feliminate-dwarf2-dups -feliminate-unused-debug-types @gol -+-feliminate-unused-debug-symbols -femit-class-debug-always @gol -+-fmem-report -fpre-ipa-mem-report -fpost-ipa-mem-report -fprofile-arcs @gol -+-frandom-seed=@var{string} -fsched-verbose=@var{n} @gol -+-fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose @gol -+-ftest-coverage -ftime-report -fvar-tracking @gol -+-g -g@var{level} -gcoff -gdwarf-2 @gol -+-ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol -+-fno-merge-debug-strings -fno-dwarf2-cfi-asm @gol -+-fdebug-prefix-map=@var{old}=@var{new} @gol -+-femit-struct-debug-baseonly -femit-struct-debug-reduced @gol -+-femit-struct-debug-detailed@r{[}=@var{spec-list}@r{]} @gol -+-p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol -+-print-multi-directory -print-multi-lib @gol -+-print-prog-name=@var{program} -print-search-dirs -Q @gol -+-print-sysroot -print-sysroot-headers-suffix @gol -+-save-temps -time} -+ -+@item Optimization Options -+@xref{Optimize Options,,Options that Control Optimization}. -+@gccoptlist{ -+-falign-functions[=@var{n}] -falign-jumps[=@var{n}] @gol -+-falign-labels[=@var{n}] -falign-loops[=@var{n}] -fassociative-math @gol -+-fauto-inc-dec -fbranch-probabilities -fbranch-target-load-optimize @gol -+-fbranch-target-load-optimize2 -fbtr-bb-exclusive -fcaller-saves @gol -+-fcheck-data-deps -fconserve-stack -fcprop-registers -fcrossjumping @gol -+-fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules -fcx-limited-range @gol -+-fdata-sections -fdce -fdce @gol -+-fdelayed-branch -fdelete-null-pointer-checks -fdse -fdse @gol -+-fearly-inlining -fexpensive-optimizations -ffast-math @gol -+-ffinite-math-only -ffloat-store -fforward-propagate @gol -+-ffunction-sections -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm @gol -+-fgcse-sm -fif-conversion -fif-conversion2 -findirect-inlining @gol -+-finline-functions -finline-functions-called-once -finline-limit=@var{n} @gol -+-finline-small-functions -fipa-cp -fipa-cp-clone -fipa-matrix-reorg -fipa-pta @gol -+-fipa-pure-const -fipa-reference -fipa-struct-reorg @gol -+-fipa-type-escape -fira-algorithm=@var{algorithm} @gol -+-fira-region=@var{region} -fira-coalesce -fno-ira-share-save-slots @gol -+-fno-ira-share-spill-slots -fira-verbose=@var{n} @gol -+-fivopts -fkeep-inline-functions -fkeep-static-consts @gol -+-floop-block -floop-interchange -floop-strip-mine @gol -+-fmerge-all-constants -fmerge-constants -fmodulo-sched @gol -+-fmodulo-sched-allow-regmoves -fmove-loop-invariants -fmudflap @gol -+-fmudflapir -fmudflapth -fno-branch-count-reg -fno-default-inline @gol -+-fno-defer-pop -fno-function-cse -fno-guess-branch-probability @gol -+-fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol -+-fno-sched-interblock -fno-sched-spec -fno-signed-zeros @gol -+-fno-toplevel-reorder -fno-trapping-math -fno-zero-initialized-in-bss @gol -+-fomit-frame-pointer -foptimize-register-move -foptimize-sibling-calls @gol -+-fpeel-loops -fpredictive-commoning -fprefetch-loop-arrays @gol -+-fprofile-correction -fprofile-dir=@var{path} -fprofile-generate @gol -+-fprofile-generate=@var{path} @gol -+-fprofile-use -fprofile-use=@var{path} -fprofile-values @gol -+-freciprocal-math -fregmove -frename-registers -freorder-blocks @gol -+-freorder-blocks-and-partition -freorder-functions @gol -+-frerun-cse-after-loop -freschedule-modulo-scheduled-loops @gol -+-frounding-math -frtl-abstract-sequences -fsched2-use-superblocks @gol -+-fsched2-use-traces -fsched-spec-load -fsched-spec-load-dangerous @gol -+-fsched-stalled-insns-dep[=@var{n}] -fsched-stalled-insns[=@var{n}] @gol -+-fschedule-insns -fschedule-insns2 -fsection-anchors -fsee @gol -+-fselective-scheduling -fselective-scheduling2 @gol -+-fsel-sched-pipelining -fsel-sched-pipelining-outer-loops @gol -+-fsignaling-nans -fsingle-precision-constant -fsplit-ivs-in-unroller @gol -+-fsplit-wide-types -fstack-protector -fstack-protector-all @gol -+-fstrict-aliasing -fstrict-overflow -fthread-jumps -ftracer @gol -+-ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copy-prop @gol -+-ftree-copyrename -ftree-dce @gol -+-ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im @gol -+-ftree-loop-distribution @gol -+-ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol -+-ftree-parallelize-loops=@var{n} -ftree-pre -ftree-reassoc @gol -+-ftree-sink -ftree-sra -ftree-switch-conversion @gol -+-ftree-ter -ftree-vect-loop-version -ftree-vectorize -ftree-vrp @gol -+-funit-at-a-time -funroll-all-loops -funroll-loops @gol -+-funsafe-loop-optimizations -funsafe-math-optimizations -funswitch-loops @gol -+-fvariable-expansion-in-unroller -fvect-cost-model -fvpt -fweb @gol -+-fwhole-program @gol -+--param @var{name}=@var{value} -+-O -O0 -O1 -O2 -O3 -Os} -+ -+@item Preprocessor Options -+@xref{Preprocessor Options,,Options Controlling the Preprocessor}. -+@gccoptlist{-A@var{question}=@var{answer} @gol -+-A-@var{question}@r{[}=@var{answer}@r{]} @gol -+-C -dD -dI -dM -dN @gol -+-D@var{macro}@r{[}=@var{defn}@r{]} -E -H @gol -+-idirafter @var{dir} @gol -+-include @var{file} -imacros @var{file} @gol -+-iprefix @var{file} -iwithprefix @var{dir} @gol -+-iwithprefixbefore @var{dir} -isystem @var{dir} @gol -+-imultilib @var{dir} -isysroot @var{dir} @gol -+-M -MM -MF -MG -MP -MQ -MT -nostdinc @gol -+-P -fworking-directory -remap @gol -+-trigraphs -undef -U@var{macro} -Wp,@var{option} @gol -+-Xpreprocessor @var{option}} -+ -+@item Assembler Option -+@xref{Assembler Options,,Passing Options to the Assembler}. -+@gccoptlist{-Wa,@var{option} -Xassembler @var{option}} -+ -+@item Linker Options -+@xref{Link Options,,Options for Linking}. -+@gccoptlist{@var{object-file-name} -l@var{library} @gol -+-nostartfiles -nodefaultlibs -nostdlib -pie -rdynamic @gol -+-s -static -static-libgcc -shared -shared-libgcc -symbolic @gol -+-T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol -+-u @var{symbol}} -+ -+@item Directory Options -+@xref{Directory Options,,Options for Directory Search}. -+@gccoptlist{-B@var{prefix} -I@var{dir} -iquote@var{dir} -L@var{dir} -+-specs=@var{file} -I- --sysroot=@var{dir}} -+ -+@item Target Options -+@c I wrote this xref this way to avoid overfull hbox. -- rms -+@xref{Target Options}. -+@gccoptlist{-V @var{version} -b @var{machine}} -+ -+@item Machine Dependent Options -+@xref{Submodel Options,,Hardware Models and Configurations}. -+@c This list is ordered alphanumerically by subsection name. -+@c Try and put the significant identifier (CPU or system) first, -+@c so users have a clue at guessing where the ones they want will be. -+ -+@emph{ARC Options} -+@gccoptlist{-EB -EL @gol -+-mmangle-cpu -mcpu=@var{cpu} -mtext=@var{text-section} @gol -+-mdata=@var{data-section} -mrodata=@var{readonly-data-section}} -+ -+@emph{ARM Options} -+@gccoptlist{-mapcs-frame -mno-apcs-frame @gol -+-mabi=@var{name} @gol -+-mapcs-stack-check -mno-apcs-stack-check @gol -+-mapcs-float -mno-apcs-float @gol -+-mapcs-reentrant -mno-apcs-reentrant @gol -+-msched-prolog -mno-sched-prolog @gol -+-mlittle-endian -mbig-endian -mwords-little-endian @gol -+-mfloat-abi=@var{name} -msoft-float -mhard-float -mfpe @gol -+-mthumb-interwork -mno-thumb-interwork @gol -+-mcpu=@var{name} -march=@var{name} -mfpu=@var{name} @gol -+-mstructure-size-boundary=@var{n} @gol -+-mabort-on-noreturn @gol -+-mlong-calls -mno-long-calls @gol -+-msingle-pic-base -mno-single-pic-base @gol -+-mpic-register=@var{reg} @gol -+-mnop-fun-dllimport @gol -+-mcirrus-fix-invalid-insns -mno-cirrus-fix-invalid-insns @gol -+-mpoke-function-name @gol -+-mthumb -marm @gol -+-mtpcs-frame -mtpcs-leaf-frame @gol -+-mcaller-super-interworking -mcallee-super-interworking @gol -+-mtp=@var{name} @gol -+-mword-relocations @gol -+-mfix-cortex-m3-ldrd} -+ -+@emph{AVR Options} -+@gccoptlist{-mmcu=@var{mcu} -msize -mno-interrupts @gol -+-mcall-prologues -mno-tablejump -mtiny-stack -mint8} -+ -+@emph{Blackfin Options} -+@gccoptlist{-mcpu=@var{cpu}@r{[}-@var{sirevision}@r{]} @gol -+-msim -momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer @gol -+-mspecld-anomaly -mno-specld-anomaly -mcsync-anomaly -mno-csync-anomaly @gol -+-mlow-64k -mno-low64k -mstack-check-l1 -mid-shared-library @gol -+-mno-id-shared-library -mshared-library-id=@var{n} @gol -+-mleaf-id-shared-library -mno-leaf-id-shared-library @gol -+-msep-data -mno-sep-data -mlong-calls -mno-long-calls @gol -+-mfast-fp -minline-plt -mmulticore -mcorea -mcoreb -msdram @gol -+-micplb} -+ -+@emph{CRIS Options} -+@gccoptlist{-mcpu=@var{cpu} -march=@var{cpu} -mtune=@var{cpu} @gol -+-mmax-stack-frame=@var{n} -melinux-stacksize=@var{n} @gol -+-metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects @gol -+-mstack-align -mdata-align -mconst-align @gol -+-m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt @gol -+-melf -maout -melinux -mlinux -sim -sim2 @gol -+-mmul-bug-workaround -mno-mul-bug-workaround} -+ -+@emph{CRX Options} -+@gccoptlist{-mmac -mpush-args} -+ -+@emph{Darwin Options} -+@gccoptlist{-all_load -allowable_client -arch -arch_errors_fatal @gol -+-arch_only -bind_at_load -bundle -bundle_loader @gol -+-client_name -compatibility_version -current_version @gol -+-dead_strip @gol -+-dependency-file -dylib_file -dylinker_install_name @gol -+-dynamic -dynamiclib -exported_symbols_list @gol -+-filelist -flat_namespace -force_cpusubtype_ALL @gol -+-force_flat_namespace -headerpad_max_install_names @gol -+-iframework @gol -+-image_base -init -install_name -keep_private_externs @gol -+-multi_module -multiply_defined -multiply_defined_unused @gol -+-noall_load -no_dead_strip_inits_and_terms @gol -+-nofixprebinding -nomultidefs -noprebind -noseglinkedit @gol -+-pagezero_size -prebind -prebind_all_twolevel_modules @gol -+-private_bundle -read_only_relocs -sectalign @gol -+-sectobjectsymbols -whyload -seg1addr @gol -+-sectcreate -sectobjectsymbols -sectorder @gol -+-segaddr -segs_read_only_addr -segs_read_write_addr @gol -+-seg_addr_table -seg_addr_table_filename -seglinkedit @gol -+-segprot -segs_read_only_addr -segs_read_write_addr @gol -+-single_module -static -sub_library -sub_umbrella @gol -+-twolevel_namespace -umbrella -undefined @gol -+-unexported_symbols_list -weak_reference_mismatches @gol -+-whatsloaded -F -gused -gfull -mmacosx-version-min=@var{version} @gol -+-mkernel -mone-byte-bool} -+ -+@emph{DEC Alpha Options} -+@gccoptlist{-mno-fp-regs -msoft-float -malpha-as -mgas @gol -+-mieee -mieee-with-inexact -mieee-conformant @gol -+-mfp-trap-mode=@var{mode} -mfp-rounding-mode=@var{mode} @gol -+-mtrap-precision=@var{mode} -mbuild-constants @gol -+-mcpu=@var{cpu-type} -mtune=@var{cpu-type} @gol -+-mbwx -mmax -mfix -mcix @gol -+-mfloat-vax -mfloat-ieee @gol -+-mexplicit-relocs -msmall-data -mlarge-data @gol -+-msmall-text -mlarge-text @gol -+-mmemory-latency=@var{time}} -+ -+@emph{DEC Alpha/VMS Options} -+@gccoptlist{-mvms-return-codes} -+ -+@emph{FR30 Options} -+@gccoptlist{-msmall-model -mno-lsim} -+ -+@emph{FRV Options} -+@gccoptlist{-mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 @gol -+-mhard-float -msoft-float @gol -+-malloc-cc -mfixed-cc -mdword -mno-dword @gol -+-mdouble -mno-double @gol -+-mmedia -mno-media -mmuladd -mno-muladd @gol -+-mfdpic -minline-plt -mgprel-ro -multilib-library-pic @gol -+-mlinked-fp -mlong-calls -malign-labels @gol -+-mlibrary-pic -macc-4 -macc-8 @gol -+-mpack -mno-pack -mno-eflags -mcond-move -mno-cond-move @gol -+-moptimize-membar -mno-optimize-membar @gol -+-mscc -mno-scc -mcond-exec -mno-cond-exec @gol -+-mvliw-branch -mno-vliw-branch @gol -+-mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec @gol -+-mno-nested-cond-exec -mtomcat-stats @gol -+-mTLS -mtls @gol -+-mcpu=@var{cpu}} -+ -+@emph{GNU/Linux Options} -+@gccoptlist{-muclibc} -+ -+@emph{H8/300 Options} -+@gccoptlist{-mrelax -mh -ms -mn -mint32 -malign-300} -+ -+@emph{HPPA Options} -+@gccoptlist{-march=@var{architecture-type} @gol -+-mbig-switch -mdisable-fpregs -mdisable-indexing @gol -+-mfast-indirect-calls -mgas -mgnu-ld -mhp-ld @gol -+-mfixed-range=@var{register-range} @gol -+-mjump-in-delay -mlinker-opt -mlong-calls @gol -+-mlong-load-store -mno-big-switch -mno-disable-fpregs @gol -+-mno-disable-indexing -mno-fast-indirect-calls -mno-gas @gol -+-mno-jump-in-delay -mno-long-load-store @gol -+-mno-portable-runtime -mno-soft-float @gol -+-mno-space-regs -msoft-float -mpa-risc-1-0 @gol -+-mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime @gol -+-mschedule=@var{cpu-type} -mspace-regs -msio -mwsio @gol -+-munix=@var{unix-std} -nolibdld -static -threads} -+ -+@emph{i386 and x86-64 Options} -+@gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol -+-mfpmath=@var{unit} @gol -+-masm=@var{dialect} -mno-fancy-math-387 @gol -+-mno-fp-ret-in-387 -msoft-float @gol -+-mno-wide-multiply -mrtd -malign-double @gol -+-mpreferred-stack-boundary=@var{num} -+-mincoming-stack-boundary=@var{num} -+-mcld -mcx16 -msahf -mrecip @gol -+-mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx @gol -+-maes -mpclmul @gol -+-msse4a -m3dnow -mpopcnt -mabm -msse5 @gol -+-mthreads -mno-align-stringops -minline-all-stringops @gol -+-minline-stringops-dynamically -mstringop-strategy=@var{alg} @gol -+-mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -+-m96bit-long-double -mregparm=@var{num} -msseregparm @gol -+-mveclibabi=@var{type} -mpc32 -mpc64 -mpc80 -mstackrealign @gol -+-momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs @gol -+-mcmodel=@var{code-model} @gol -+-m32 -m64 -mlarge-data-threshold=@var{num} @gol -+-mfused-madd -mno-fused-madd -msse2avx} -+ -+@emph{IA-64 Options} -+@gccoptlist{-mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic @gol -+-mvolatile-asm-stop -mregister-names -mno-sdata @gol -+-mconstant-gp -mauto-pic -minline-float-divide-min-latency @gol -+-minline-float-divide-max-throughput @gol -+-minline-int-divide-min-latency @gol -+-minline-int-divide-max-throughput @gol -+-minline-sqrt-min-latency -minline-sqrt-max-throughput @gol -+-mno-dwarf2-asm -mearly-stop-bits @gol -+-mfixed-range=@var{register-range} -mtls-size=@var{tls-size} @gol -+-mtune=@var{cpu-type} -mt -pthread -milp32 -mlp64 @gol -+-mno-sched-br-data-spec -msched-ar-data-spec -mno-sched-control-spec @gol -+-msched-br-in-data-spec -msched-ar-in-data-spec -msched-in-control-spec @gol -+-msched-ldc -mno-sched-control-ldc -mno-sched-spec-verbose @gol -+-mno-sched-prefer-non-data-spec-insns @gol -+-mno-sched-prefer-non-control-spec-insns @gol -+-mno-sched-count-spec-in-critical-path} -+ -+@emph{M32R/D Options} -+@gccoptlist{-m32r2 -m32rx -m32r @gol -+-mdebug @gol -+-malign-loops -mno-align-loops @gol -+-missue-rate=@var{number} @gol -+-mbranch-cost=@var{number} @gol -+-mmodel=@var{code-size-model-type} @gol -+-msdata=@var{sdata-type} @gol -+-mno-flush-func -mflush-func=@var{name} @gol -+-mno-flush-trap -mflush-trap=@var{number} @gol -+-G @var{num}} -+ -+@emph{M32C Options} -+@gccoptlist{-mcpu=@var{cpu} -msim -memregs=@var{number}} -+ -+@emph{M680x0 Options} -+@gccoptlist{-march=@var{arch} -mcpu=@var{cpu} -mtune=@var{tune} -+-m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 @gol -+-m68060 -mcpu32 -m5200 -m5206e -m528x -m5307 -m5407 @gol -+-mcfv4e -mbitfield -mno-bitfield -mc68000 -mc68020 @gol -+-mnobitfield -mrtd -mno-rtd -mdiv -mno-div -mshort @gol -+-mno-short -mhard-float -m68881 -msoft-float -mpcrel @gol -+-malign-int -mstrict-align -msep-data -mno-sep-data @gol -+-mshared-library-id=n -mid-shared-library -mno-id-shared-library @gol -+-mxgot -mno-xgot} -+ -+@emph{M68hc1x Options} -+@gccoptlist{-m6811 -m6812 -m68hc11 -m68hc12 -m68hcs12 @gol -+-mauto-incdec -minmax -mlong-calls -mshort @gol -+-msoft-reg-count=@var{count}} -+ -+@emph{MCore Options} -+@gccoptlist{-mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates @gol -+-mno-relax-immediates -mwide-bitfields -mno-wide-bitfields @gol -+-m4byte-functions -mno-4byte-functions -mcallgraph-data @gol -+-mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim @gol -+-mlittle-endian -mbig-endian -m210 -m340 -mstack-increment} -+ -+@emph{MIPS Options} -+@gccoptlist{-EL -EB -march=@var{arch} -mtune=@var{arch} @gol -+-mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 @gol -+-mips64 -mips64r2 @gol -+-mips16 -mno-mips16 -mflip-mips16 @gol -+-minterlink-mips16 -mno-interlink-mips16 @gol -+-mabi=@var{abi} -mabicalls -mno-abicalls @gol -+-mshared -mno-shared -mplt -mno-plt -mxgot -mno-xgot @gol -+-mgp32 -mgp64 -mfp32 -mfp64 -mhard-float -msoft-float @gol -+-msingle-float -mdouble-float -mdsp -mno-dsp -mdspr2 -mno-dspr2 @gol -+-mfpu=@var{fpu-type} @gol -+-msmartmips -mno-smartmips @gol -+-mpaired-single -mno-paired-single -mdmx -mno-mdmx @gol -+-mips3d -mno-mips3d -mmt -mno-mt -mllsc -mno-llsc @gol -+-mlong64 -mlong32 -msym32 -mno-sym32 @gol -+-G@var{num} -mlocal-sdata -mno-local-sdata @gol -+-mextern-sdata -mno-extern-sdata -mgpopt -mno-gopt @gol -+-membedded-data -mno-embedded-data @gol -+-muninit-const-in-rodata -mno-uninit-const-in-rodata @gol -+-mcode-readable=@var{setting} @gol -+-msplit-addresses -mno-split-addresses @gol -+-mexplicit-relocs -mno-explicit-relocs @gol -+-mcheck-zero-division -mno-check-zero-division @gol -+-mdivide-traps -mdivide-breaks @gol -+-mmemcpy -mno-memcpy -mlong-calls -mno-long-calls @gol -+-mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp @gol -+-mfix-r4000 -mno-fix-r4000 -mfix-r4400 -mno-fix-r4400 @gol -+-mfix-r10000 -mno-fix-r10000 -mfix-vr4120 -mno-fix-vr4120 @gol -+-mfix-vr4130 -mno-fix-vr4130 -mfix-sb1 -mno-fix-sb1 @gol -+-mflush-func=@var{func} -mno-flush-func @gol -+-mbranch-cost=@var{num} -mbranch-likely -mno-branch-likely @gol -+-mfp-exceptions -mno-fp-exceptions @gol -+-mvr4130-align -mno-vr4130-align} -+ -+@emph{MMIX Options} -+@gccoptlist{-mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu @gol -+-mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols @gol -+-melf -mbranch-predict -mno-branch-predict -mbase-addresses @gol -+-mno-base-addresses -msingle-exit -mno-single-exit} -+ -+@emph{MN10300 Options} -+@gccoptlist{-mmult-bug -mno-mult-bug @gol -+-mam33 -mno-am33 @gol -+-mam33-2 -mno-am33-2 @gol -+-mreturn-pointer-on-d0 @gol -+-mno-crt0 -mrelax} -+ -+@emph{PDP-11 Options} -+@gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol -+-mbcopy -mbcopy-builtin -mint32 -mno-int16 @gol -+-mint16 -mno-int32 -mfloat32 -mno-float64 @gol -+-mfloat64 -mno-float32 -mabshi -mno-abshi @gol -+-mbranch-expensive -mbranch-cheap @gol -+-msplit -mno-split -munix-asm -mdec-asm} -+ -+@emph{picoChip Options} -+@gccoptlist{-mae=@var{ae_type} -mvliw-lookahead=@var{N} -+-msymbol-as-address -mno-inefficient-warnings} -+ -+@emph{PowerPC Options} -+See RS/6000 and PowerPC Options. -+ -+@emph{RS/6000 and PowerPC Options} -+@gccoptlist{-mcpu=@var{cpu-type} @gol -+-mtune=@var{cpu-type} @gol -+-mpower -mno-power -mpower2 -mno-power2 @gol -+-mpowerpc -mpowerpc64 -mno-powerpc @gol -+-maltivec -mno-altivec @gol -+-mpowerpc-gpopt -mno-powerpc-gpopt @gol -+-mpowerpc-gfxopt -mno-powerpc-gfxopt @gol -+-mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb -mfprnd -mno-fprnd @gol -+-mcmpb -mno-cmpb -mmfpgpr -mno-mfpgpr -mhard-dfp -mno-hard-dfp @gol -+-mnew-mnemonics -mold-mnemonics @gol -+-mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc @gol -+-m64 -m32 -mxl-compat -mno-xl-compat -mpe @gol -+-malign-power -malign-natural @gol -+-msoft-float -mhard-float -mmultiple -mno-multiple @gol -+-msingle-float -mdouble-float -msimple-fpu @gol -+-mstring -mno-string -mupdate -mno-update @gol -+-mavoid-indexed-addresses -mno-avoid-indexed-addresses @gol -+-mfused-madd -mno-fused-madd -mbit-align -mno-bit-align @gol -+-mstrict-align -mno-strict-align -mrelocatable @gol -+-mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol -+-mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol -+-mdynamic-no-pic -maltivec -mswdiv @gol -+-mprioritize-restricted-insns=@var{priority} @gol -+-msched-costly-dep=@var{dependence_type} @gol -+-minsert-sched-nops=@var{scheme} @gol -+-mcall-sysv -mcall-netbsd @gol -+-maix-struct-return -msvr4-struct-return @gol -+-mabi=@var{abi-type} -msecure-plt -mbss-plt @gol -+-misel -mno-isel @gol -+-misel=yes -misel=no @gol -+-mspe -mno-spe @gol -+-mspe=yes -mspe=no @gol -+-mpaired @gol -+-mgen-cell-microcode -mwarn-cell-microcode @gol -+-mvrsave -mno-vrsave @gol -+-mmulhw -mno-mulhw @gol -+-mdlmzb -mno-dlmzb @gol -+-mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double @gol -+-mprototype -mno-prototype @gol -+-msim -mmvme -mads -myellowknife -memb -msdata @gol -+-msdata=@var{opt} -mvxworks -G @var{num} -pthread} -+ -+@emph{S/390 and zSeries Options} -+@gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol -+-mhard-float -msoft-float -mhard-dfp -mno-hard-dfp @gol -+-mlong-double-64 -mlong-double-128 @gol -+-mbackchain -mno-backchain -mpacked-stack -mno-packed-stack @gol -+-msmall-exec -mno-small-exec -mmvcle -mno-mvcle @gol -+-m64 -m31 -mdebug -mno-debug -mesa -mzarch @gol -+-mtpf-trace -mno-tpf-trace -mfused-madd -mno-fused-madd @gol -+-mwarn-framesize -mwarn-dynamicstack -mstack-size -mstack-guard} -+ -+@emph{Score Options} -+@gccoptlist{-meb -mel @gol -+-mnhwloop @gol -+-muls @gol -+-mmac @gol -+-mscore5 -mscore5u -mscore7 -mscore7d} -+ -+@emph{SH Options} -+@gccoptlist{-m1 -m2 -m2e -m3 -m3e @gol -+-m4-nofpu -m4-single-only -m4-single -m4 @gol -+-m4a-nofpu -m4a-single-only -m4a-single -m4a -m4al @gol -+-m5-64media -m5-64media-nofpu @gol -+-m5-32media -m5-32media-nofpu @gol -+-m5-compact -m5-compact-nofpu @gol -+-mb -ml -mdalign -mrelax @gol -+-mbigtable -mfmovd -mhitachi -mrenesas -mno-renesas -mnomacsave @gol -+-mieee -mbitops -misize -minline-ic_invalidate -mpadstruct -mspace @gol -+-mprefergot -musermode -multcost=@var{number} -mdiv=@var{strategy} @gol -+-mdivsi3_libfunc=@var{name} -mfixed-range=@var{register-range} @gol -+-madjust-unroll -mindexed-addressing -mgettrcost=@var{number} -mpt-fixed @gol -+-minvalid-symbols} -+ -+@emph{SPARC Options} -+@gccoptlist{-mcpu=@var{cpu-type} @gol -+-mtune=@var{cpu-type} @gol -+-mcmodel=@var{code-model} @gol -+-m32 -m64 -mapp-regs -mno-app-regs @gol -+-mfaster-structs -mno-faster-structs @gol -+-mfpu -mno-fpu -mhard-float -msoft-float @gol -+-mhard-quad-float -msoft-quad-float @gol -+-mimpure-text -mno-impure-text -mlittle-endian @gol -+-mstack-bias -mno-stack-bias @gol -+-munaligned-doubles -mno-unaligned-doubles @gol -+-mv8plus -mno-v8plus -mvis -mno-vis -+-threads -pthreads -pthread} -+ -+@emph{SPU Options} -+@gccoptlist{-mwarn-reloc -merror-reloc @gol -+-msafe-dma -munsafe-dma @gol -+-mbranch-hints @gol -+-msmall-mem -mlarge-mem -mstdmain @gol -+-mfixed-range=@var{register-range}} -+ -+@emph{System V Options} -+@gccoptlist{-Qy -Qn -YP,@var{paths} -Ym,@var{dir}} -+ -+@emph{V850 Options} -+@gccoptlist{-mlong-calls -mno-long-calls -mep -mno-ep @gol -+-mprolog-function -mno-prolog-function -mspace @gol -+-mtda=@var{n} -msda=@var{n} -mzda=@var{n} @gol -+-mapp-regs -mno-app-regs @gol -+-mdisable-callt -mno-disable-callt @gol -+-mv850e1 @gol -+-mv850e @gol -+-mv850 -mbig-switch} -+ -+@emph{VAX Options} -+@gccoptlist{-mg -mgnu -munix} -+ -+@emph{VxWorks Options} -+@gccoptlist{-mrtp -non-static -Bstatic -Bdynamic @gol -+-Xbind-lazy -Xbind-now} -+ -+@emph{x86-64 Options} -+See i386 and x86-64 Options. -+ -+@emph{i386 and x86-64 Windows Options} -+@gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll -+-mnop-fun-dllimport -mthread -mwin32 -mwindows} -+ -+@emph{Xstormy16 Options} -+@gccoptlist{-msim} -+ -+@emph{Xtensa Options} -+@gccoptlist{-mconst16 -mno-const16 @gol -+-mfused-madd -mno-fused-madd @gol -+-mserialize-volatile -mno-serialize-volatile @gol -+-mtext-section-literals -mno-text-section-literals @gol -+-mtarget-align -mno-target-align @gol -+-mlongcalls -mno-longcalls} -+ -+@emph{zSeries Options} -+See S/390 and zSeries Options. -+ -+@item Code Generation Options -+@xref{Code Gen Options,,Options for Code Generation Conventions}. -+@gccoptlist{-fcall-saved-@var{reg} -fcall-used-@var{reg} @gol -+-ffixed-@var{reg} -fexceptions @gol -+-fnon-call-exceptions -funwind-tables @gol -+-fasynchronous-unwind-tables @gol -+-finhibit-size-directive -finstrument-functions @gol -+-finstrument-functions-exclude-function-list=@var{sym},@var{sym},@dots{} @gol -+-finstrument-functions-exclude-file-list=@var{file},@var{file},@dots{} @gol -+-fno-common -fno-ident @gol -+-fpcc-struct-return -fpic -fPIC -fpie -fPIE @gol -+-fno-jump-tables @gol -+-frecord-gcc-switches @gol -+-freg-struct-return -fshort-enums @gol -+-fshort-double -fshort-wchar @gol -+-fverbose-asm -fpack-struct[=@var{n}] -fstack-check @gol -+-fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol -+-fno-stack-limit -fargument-alias -fargument-noalias @gol -+-fargument-noalias-global -fargument-noalias-anything @gol -+-fleading-underscore -ftls-model=@var{model} @gol -+-ftrapv -fwrapv -fbounds-check @gol -+-fvisibility} -+@end table -+ -+@menu -+* Overall Options:: Controlling the kind of output: -+ an executable, object files, assembler files, -+ or preprocessed source. -+* C Dialect Options:: Controlling the variant of C language compiled. -+* C++ Dialect Options:: Variations on C++. -+* Objective-C and Objective-C++ Dialect Options:: Variations on Objective-C -+ and Objective-C++. -+* Language Independent Options:: Controlling how diagnostics should be -+ formatted. -+* Warning Options:: How picky should the compiler be? -+* Debugging Options:: Symbol tables, measurements, and debugging dumps. -+* Optimize Options:: How much optimization? -+* Preprocessor Options:: Controlling header files and macro definitions. -+ Also, getting dependency information for Make. -+* Assembler Options:: Passing options to the assembler. -+* Link Options:: Specifying libraries and so on. -+* Directory Options:: Where to find header files and libraries. -+ Where to find the compiler executable files. -+* Spec Files:: How to pass switches to sub-processes. -+* Target Options:: Running a cross-compiler, or an old version of GCC. -+@end menu -+ -+@node Overall Options -+@section Options Controlling the Kind of Output -+ -+Compilation can involve up to four stages: preprocessing, compilation -+proper, assembly and linking, always in that order. GCC is capable of -+preprocessing and compiling several files either into several -+assembler input files, or into one assembler input file; then each -+assembler input file produces an object file, and linking combines all -+the object files (those newly compiled, and those specified as input) -+into an executable file. -+ -+@cindex file name suffix -+For any given input file, the file name suffix determines what kind of -+compilation is done: -+ -+@table @gcctabopt -+@item @var{file}.c -+C source code which must be preprocessed. -+ -+@item @var{file}.i -+C source code which should not be preprocessed. -+ -+@item @var{file}.ii -+C++ source code which should not be preprocessed. -+ -+@item @var{file}.m -+Objective-C source code. Note that you must link with the @file{libobjc} -+library to make an Objective-C program work. -+ -+@item @var{file}.mi -+Objective-C source code which should not be preprocessed. -+ -+@item @var{file}.mm -+@itemx @var{file}.M -+Objective-C++ source code. Note that you must link with the @file{libobjc} -+library to make an Objective-C++ program work. Note that @samp{.M} refers -+to a literal capital M@. -+ -+@item @var{file}.mii -+Objective-C++ source code which should not be preprocessed. -+ -+@item @var{file}.h -+C, C++, Objective-C or Objective-C++ header file to be turned into a -+precompiled header. -+ -+@item @var{file}.cc -+@itemx @var{file}.cp -+@itemx @var{file}.cxx -+@itemx @var{file}.cpp -+@itemx @var{file}.CPP -+@itemx @var{file}.c++ -+@itemx @var{file}.C -+C++ source code which must be preprocessed. Note that in @samp{.cxx}, -+the last two letters must both be literally @samp{x}. Likewise, -+@samp{.C} refers to a literal capital C@. -+ -+@item @var{file}.mm -+@itemx @var{file}.M -+Objective-C++ source code which must be preprocessed. -+ -+@item @var{file}.mii -+Objective-C++ source code which should not be preprocessed. -+ -+@item @var{file}.hh -+@itemx @var{file}.H -+@itemx @var{file}.hp -+@itemx @var{file}.hxx -+@itemx @var{file}.hpp -+@itemx @var{file}.HPP -+@itemx @var{file}.h++ -+@itemx @var{file}.tcc -+C++ header file to be turned into a precompiled header. -+ -+@item @var{file}.f -+@itemx @var{file}.for -+@itemx @var{file}.ftn -+Fixed form Fortran source code which should not be preprocessed. -+ -+@item @var{file}.F -+@itemx @var{file}.FOR -+@itemx @var{file}.fpp -+@itemx @var{file}.FPP -+@itemx @var{file}.FTN -+Fixed form Fortran source code which must be preprocessed (with the traditional -+preprocessor). -+ -+@item @var{file}.f90 -+@itemx @var{file}.f95 -+@itemx @var{file}.f03 -+@itemx @var{file}.f08 -+Free form Fortran source code which should not be preprocessed. -+ -+@item @var{file}.F90 -+@itemx @var{file}.F95 -+@itemx @var{file}.F03 -+@itemx @var{file}.F08 -+Free form Fortran source code which must be preprocessed (with the -+traditional preprocessor). -+ -+@c FIXME: Descriptions of Java file types. -+@c @var{file}.java -+@c @var{file}.class -+@c @var{file}.zip -+@c @var{file}.jar -+ -+@item @var{file}.ads -+Ada source code file which contains a library unit declaration (a -+declaration of a package, subprogram, or generic, or a generic -+instantiation), or a library unit renaming declaration (a package, -+generic, or subprogram renaming declaration). Such files are also -+called @dfn{specs}. -+ -+@item @var{file}.adb -+Ada source code file containing a library unit body (a subprogram or -+package body). Such files are also called @dfn{bodies}. -+ -+@c GCC also knows about some suffixes for languages not yet included: -+@c Pascal: -+@c @var{file}.p -+@c @var{file}.pas -+@c Ratfor: -+@c @var{file}.r -+ -+@item @var{file}.s -+Assembler code. -+ -+@item @var{file}.S -+@itemx @var{file}.sx -+Assembler code which must be preprocessed. -+ -+@item @var{other} -+An object file to be fed straight into linking. -+Any file name with no recognized suffix is treated this way. -+@end table -+ -+@opindex x -+You can specify the input language explicitly with the @option{-x} option: -+ -+@table @gcctabopt -+@item -x @var{language} -+Specify explicitly the @var{language} for the following input files -+(rather than letting the compiler choose a default based on the file -+name suffix). This option applies to all following input files until -+the next @option{-x} option. Possible values for @var{language} are: -+@smallexample -+c c-header c-cpp-output -+c++ c++-header c++-cpp-output -+objective-c objective-c-header objective-c-cpp-output -+objective-c++ objective-c++-header objective-c++-cpp-output -+assembler assembler-with-cpp -+ada -+f77 f77-cpp-input f95 f95-cpp-input -+java -+@end smallexample -+ -+@item -x none -+Turn off any specification of a language, so that subsequent files are -+handled according to their file name suffixes (as they are if @option{-x} -+has not been used at all). -+ -+@item -pass-exit-codes -+@opindex pass-exit-codes -+Normally the @command{gcc} program will exit with the code of 1 if any -+phase of the compiler returns a non-success return code. If you specify -+@option{-pass-exit-codes}, the @command{gcc} program will instead return with -+numerically highest error produced by any phase that returned an error -+indication. The C, C++, and Fortran frontends return 4, if an internal -+compiler error is encountered. -+@end table -+ -+If you only want some of the stages of compilation, you can use -+@option{-x} (or filename suffixes) to tell @command{gcc} where to start, and -+one of the options @option{-c}, @option{-S}, or @option{-E} to say where -+@command{gcc} is to stop. Note that some combinations (for example, -+@samp{-x cpp-output -E}) instruct @command{gcc} to do nothing at all. -+ -+@table @gcctabopt -+@item -c -+@opindex c -+Compile or assemble the source files, but do not link. The linking -+stage simply is not done. The ultimate output is in the form of an -+object file for each source file. -+ -+By default, the object file name for a source file is made by replacing -+the suffix @samp{.c}, @samp{.i}, @samp{.s}, etc., with @samp{.o}. -+ -+Unrecognized input files, not requiring compilation or assembly, are -+ignored. -+ -+@item -S -+@opindex S -+Stop after the stage of compilation proper; do not assemble. The output -+is in the form of an assembler code file for each non-assembler input -+file specified. -+ -+By default, the assembler file name for a source file is made by -+replacing the suffix @samp{.c}, @samp{.i}, etc., with @samp{.s}. -+ -+Input files that don't require compilation are ignored. -+ -+@item -E -+@opindex E -+Stop after the preprocessing stage; do not run the compiler proper. The -+output is in the form of preprocessed source code, which is sent to the -+standard output. -+ -+Input files which don't require preprocessing are ignored. -+ -+@cindex output file option -+@item -o @var{file} -+@opindex o -+Place output in file @var{file}. This applies regardless to whatever -+sort of output is being produced, whether it be an executable file, -+an object file, an assembler file or preprocessed C code. -+ -+If @option{-o} is not specified, the default is to put an executable -+file in @file{a.out}, the object file for -+@file{@var{source}.@var{suffix}} in @file{@var{source}.o}, its -+assembler file in @file{@var{source}.s}, a precompiled header file in -+@file{@var{source}.@var{suffix}.gch}, and all preprocessed C source on -+standard output. -+ -+@item -v -+@opindex v -+Print (on standard error output) the commands executed to run the stages -+of compilation. Also print the version number of the compiler driver -+program and of the preprocessor and the compiler proper. -+ -+@item -### -+@opindex ### -+Like @option{-v} except the commands are not executed and all command -+arguments are quoted. This is useful for shell scripts to capture the -+driver-generated command lines. -+ -+@item -pipe -+@opindex pipe -+Use pipes rather than temporary files for communication between the -+various stages of compilation. This fails to work on some systems where -+the assembler is unable to read from a pipe; but the GNU assembler has -+no trouble. -+ -+@item -combine -+@opindex combine -+If you are compiling multiple source files, this option tells the driver -+to pass all the source files to the compiler at once (for those -+languages for which the compiler can handle this). This will allow -+intermodule analysis (IMA) to be performed by the compiler. Currently the only -+language for which this is supported is C@. If you pass source files for -+multiple languages to the driver, using this option, the driver will invoke -+the compiler(s) that support IMA once each, passing each compiler all the -+source files appropriate for it. For those languages that do not support -+IMA this option will be ignored, and the compiler will be invoked once for -+each source file in that language. If you use this option in conjunction -+with @option{-save-temps}, the compiler will generate multiple -+pre-processed files -+(one for each source file), but only one (combined) @file{.o} or -+@file{.s} file. -+ -+@item --help -+@opindex help -+Print (on the standard output) a description of the command line options -+understood by @command{gcc}. If the @option{-v} option is also specified -+then @option{--help} will also be passed on to the various processes -+invoked by @command{gcc}, so that they can display the command line options -+they accept. If the @option{-Wextra} option has also been specified -+(prior to the @option{--help} option), then command line options which -+have no documentation associated with them will also be displayed. -+ -+@item --target-help -+@opindex target-help -+Print (on the standard output) a description of target-specific command -+line options for each tool. For some targets extra target-specific -+information may also be printed. -+ -+@item --help=@{@var{class}@r{|[}^@r{]}@var{qualifier}@}@r{[},@dots{}@r{]} -+Print (on the standard output) a description of the command line -+options understood by the compiler that fit into all specified classes -+and qualifiers. These are the supported classes: -+ -+@table @asis -+@item @samp{optimizers} -+This will display all of the optimization options supported by the -+compiler. -+ -+@item @samp{warnings} -+This will display all of the options controlling warning messages -+produced by the compiler. -+ -+@item @samp{target} -+This will display target-specific options. Unlike the -+@option{--target-help} option however, target-specific options of the -+linker and assembler will not be displayed. This is because those -+tools do not currently support the extended @option{--help=} syntax. -+ -+@item @samp{params} -+This will display the values recognized by the @option{--param} -+option. -+ -+@item @var{language} -+This will display the options supported for @var{language}, where -+@var{language} is the name of one of the languages supported in this -+version of GCC. -+ -+@item @samp{common} -+This will display the options that are common to all languages. -+@end table -+ -+These are the supported qualifiers: -+ -+@table @asis -+@item @samp{undocumented} -+Display only those options which are undocumented. -+ -+@item @samp{joined} -+Display options which take an argument that appears after an equal -+sign in the same continuous piece of text, such as: -+@samp{--help=target}. -+ -+@item @samp{separate} -+Display options which take an argument that appears as a separate word -+following the original option, such as: @samp{-o output-file}. -+@end table -+ -+Thus for example to display all the undocumented target-specific -+switches supported by the compiler the following can be used: -+ -+@smallexample -+--help=target,undocumented -+@end smallexample -+ -+The sense of a qualifier can be inverted by prefixing it with the -+@samp{^} character, so for example to display all binary warning -+options (i.e., ones that are either on or off and that do not take an -+argument), which have a description the following can be used: -+ -+@smallexample -+--help=warnings,^joined,^undocumented -+@end smallexample -+ -+The argument to @option{--help=} should not consist solely of inverted -+qualifiers. -+ -+Combining several classes is possible, although this usually -+restricts the output by so much that there is nothing to display. One -+case where it does work however is when one of the classes is -+@var{target}. So for example to display all the target-specific -+optimization options the following can be used: -+ -+@smallexample -+--help=target,optimizers -+@end smallexample -+ -+The @option{--help=} option can be repeated on the command line. Each -+successive use will display its requested class of options, skipping -+those that have already been displayed. -+ -+If the @option{-Q} option appears on the command line before the -+@option{--help=} option, then the descriptive text displayed by -+@option{--help=} is changed. Instead of describing the displayed -+options, an indication is given as to whether the option is enabled, -+disabled or set to a specific value (assuming that the compiler -+knows this at the point where the @option{--help=} option is used). -+ -+Here is a truncated example from the ARM port of @command{gcc}: -+ -+@smallexample -+ % gcc -Q -mabi=2 --help=target -c -+ The following options are target specific: -+ -mabi= 2 -+ -mabort-on-noreturn [disabled] -+ -mapcs [disabled] -+@end smallexample -+ -+The output is sensitive to the effects of previous command line -+options, so for example it is possible to find out which optimizations -+are enabled at @option{-O2} by using: -+ -+@smallexample -+-Q -O2 --help=optimizers -+@end smallexample -+ -+Alternatively you can discover which binary optimizations are enabled -+by @option{-O3} by using: -+ -+@smallexample -+gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts -+gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts -+diff /tmp/O2-opts /tmp/O3-opts | grep enabled -+@end smallexample -+ -+@item --version -+@opindex version -+Display the version number and copyrights of the invoked GCC@. -+ -+@item -wrapper -+@opindex wrapper -+Invoke all subcommands under a wrapper program. It takes a single -+comma separated list as an argument, which will be used to invoke -+the wrapper: -+ -+@smallexample -+gcc -c t.c -wrapper gdb,--args -+@end smallexample -+ -+This will invoke all subprograms of gcc under "gdb --args", -+thus cc1 invocation will be "gdb --args cc1 ...". -+ -+@include @value{srcdir}/../libiberty/at-file.texi -+@end table -+ -+@node Invoking G++ -+@section Compiling C++ Programs -+ -+@cindex suffixes for C++ source -+@cindex C++ source file suffixes -+C++ source files conventionally use one of the suffixes @samp{.C}, -+@samp{.cc}, @samp{.cpp}, @samp{.CPP}, @samp{.c++}, @samp{.cp}, or -+@samp{.cxx}; C++ header files often use @samp{.hh}, @samp{.hpp}, -+@samp{.H}, or (for shared template code) @samp{.tcc}; and -+preprocessed C++ files use the suffix @samp{.ii}. GCC recognizes -+files with these names and compiles them as C++ programs even if you -+call the compiler the same way as for compiling C programs (usually -+with the name @command{gcc}). -+ -+@findex g++ -+@findex c++ -+However, the use of @command{gcc} does not add the C++ library. -+@command{g++} is a program that calls GCC and treats @samp{.c}, -+@samp{.h} and @samp{.i} files as C++ source files instead of C source -+files unless @option{-x} is used, and automatically specifies linking -+against the C++ library. This program is also useful when -+precompiling a C header file with a @samp{.h} extension for use in C++ -+compilations. On many systems, @command{g++} is also installed with -+the name @command{c++}. -+ -+@cindex invoking @command{g++} -+When you compile C++ programs, you may specify many of the same -+command-line options that you use for compiling programs in any -+language; or command-line options meaningful for C and related -+languages; or options that are meaningful only for C++ programs. -+@xref{C Dialect Options,,Options Controlling C Dialect}, for -+explanations of options for languages related to C@. -+@xref{C++ Dialect Options,,Options Controlling C++ Dialect}, for -+explanations of options that are meaningful only for C++ programs. -+ -+@node C Dialect Options -+@section Options Controlling C Dialect -+@cindex dialect options -+@cindex language dialect options -+@cindex options, dialect -+ -+The following options control the dialect of C (or languages derived -+from C, such as C++, Objective-C and Objective-C++) that the compiler -+accepts: -+ -+@table @gcctabopt -+@cindex ANSI support -+@cindex ISO support -+@item -ansi -+@opindex ansi -+In C mode, this is equivalent to @samp{-std=c89}. In C++ mode, it is -+equivalent to @samp{-std=c++98}. -+ -+This turns off certain features of GCC that are incompatible with ISO -+C90 (when compiling C code), or of standard C++ (when compiling C++ code), -+such as the @code{asm} and @code{typeof} keywords, and -+predefined macros such as @code{unix} and @code{vax} that identify the -+type of system you are using. It also enables the undesirable and -+rarely used ISO trigraph feature. For the C compiler, -+it disables recognition of C++ style @samp{//} comments as well as -+the @code{inline} keyword. -+ -+The alternate keywords @code{__asm__}, @code{__extension__}, -+@code{__inline__} and @code{__typeof__} continue to work despite -+@option{-ansi}. You would not want to use them in an ISO C program, of -+course, but it is useful to put them in header files that might be included -+in compilations done with @option{-ansi}. Alternate predefined macros -+such as @code{__unix__} and @code{__vax__} are also available, with or -+without @option{-ansi}. -+ -+The @option{-ansi} option does not cause non-ISO programs to be -+rejected gratuitously. For that, @option{-pedantic} is required in -+addition to @option{-ansi}. @xref{Warning Options}. -+ -+The macro @code{__STRICT_ANSI__} is predefined when the @option{-ansi} -+option is used. Some header files may notice this macro and refrain -+from declaring certain functions or defining certain macros that the -+ISO standard doesn't call for; this is to avoid interfering with any -+programs that might use these names for other things. -+ -+Functions that would normally be built in but do not have semantics -+defined by ISO C (such as @code{alloca} and @code{ffs}) are not built-in -+functions when @option{-ansi} is used. @xref{Other Builtins,,Other -+built-in functions provided by GCC}, for details of the functions -+affected. -+ -+@item -std= -+@opindex std -+Determine the language standard. @xref{Standards,,Language Standards -+Supported by GCC}, for details of these standard versions. This option -+is currently only supported when compiling C or C++. -+ -+The compiler can accept several base standards, such as @samp{c89} or -+@samp{c++98}, and GNU dialects of those standards, such as -+@samp{gnu89} or @samp{gnu++98}. By specifying a base standard, the -+compiler will accept all programs following that standard and those -+using GNU extensions that do not contradict it. For example, -+@samp{-std=c89} turns off certain features of GCC that are -+incompatible with ISO C90, such as the @code{asm} and @code{typeof} -+keywords, but not other GNU extensions that do not have a meaning in -+ISO C90, such as omitting the middle term of a @code{?:} -+expression. On the other hand, by specifying a GNU dialect of a -+standard, all features the compiler support are enabled, even when -+those features change the meaning of the base standard and some -+strict-conforming programs may be rejected. The particular standard -+is used by @option{-pedantic} to identify which features are GNU -+extensions given that version of the standard. For example -+@samp{-std=gnu89 -pedantic} would warn about C++ style @samp{//} -+comments, while @samp{-std=gnu99 -pedantic} would not. -+ -+A value for this option must be provided; possible values are -+ -+@table @samp -+@item c89 -+@itemx iso9899:1990 -+Support all ISO C90 programs (certain GNU extensions that conflict -+with ISO C90 are disabled). Same as @option{-ansi} for C code. -+ -+@item iso9899:199409 -+ISO C90 as modified in amendment 1. -+ -+@item c99 -+@itemx c9x -+@itemx iso9899:1999 -+@itemx iso9899:199x -+ISO C99. Note that this standard is not yet fully supported; see -+@w{@uref{http://gcc.gnu.org/gcc-4.4/c99status.html}} for more information. The -+names @samp{c9x} and @samp{iso9899:199x} are deprecated. -+ -+@item gnu89 -+GNU dialect of ISO C90 (including some C99 features). This -+is the default for C code. -+ -+@item gnu99 -+@itemx gnu9x -+GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC, -+this will become the default. The name @samp{gnu9x} is deprecated. -+ -+@item c++98 -+The 1998 ISO C++ standard plus amendments. Same as @option{-ansi} for -+C++ code. -+ -+@item gnu++98 -+GNU dialect of @option{-std=c++98}. This is the default for -+C++ code. -+ -+@item c++0x -+The working draft of the upcoming ISO C++0x standard. This option -+enables experimental features that are likely to be included in -+C++0x. The working draft is constantly changing, and any feature that is -+enabled by this flag may be removed from future versions of GCC if it is -+not part of the C++0x standard. -+ -+@item gnu++0x -+GNU dialect of @option{-std=c++0x}. This option enables -+experimental features that may be removed in future versions of GCC. -+@end table -+ -+@item -fgnu89-inline -+@opindex fgnu89-inline -+The option @option{-fgnu89-inline} tells GCC to use the traditional -+GNU semantics for @code{inline} functions when in C99 mode. -+@xref{Inline,,An Inline Function is As Fast As a Macro}. This option -+is accepted and ignored by GCC versions 4.1.3 up to but not including -+4.3. In GCC versions 4.3 and later it changes the behavior of GCC in -+C99 mode. Using this option is roughly equivalent to adding the -+@code{gnu_inline} function attribute to all inline functions -+(@pxref{Function Attributes}). -+ -+The option @option{-fno-gnu89-inline} explicitly tells GCC to use the -+C99 semantics for @code{inline} when in C99 or gnu99 mode (i.e., it -+specifies the default behavior). This option was first supported in -+GCC 4.3. This option is not supported in C89 or gnu89 mode. -+ -+The preprocessor macros @code{__GNUC_GNU_INLINE__} and -+@code{__GNUC_STDC_INLINE__} may be used to check which semantics are -+in effect for @code{inline} functions. @xref{Common Predefined -+Macros,,,cpp,The C Preprocessor}. -+ -+@item -aux-info @var{filename} -+@opindex aux-info -+Output to the given filename prototyped declarations for all functions -+declared and/or defined in a translation unit, including those in header -+files. This option is silently ignored in any language other than C@. -+ -+Besides declarations, the file indicates, in comments, the origin of -+each declaration (source file and line), whether the declaration was -+implicit, prototyped or unprototyped (@samp{I}, @samp{N} for new or -+@samp{O} for old, respectively, in the first character after the line -+number and the colon), and whether it came from a declaration or a -+definition (@samp{C} or @samp{F}, respectively, in the following -+character). In the case of function definitions, a K&R-style list of -+arguments followed by their declarations is also provided, inside -+comments, after the declaration. -+ -+@item -fno-asm -+@opindex fno-asm -+Do not recognize @code{asm}, @code{inline} or @code{typeof} as a -+keyword, so that code can use these words as identifiers. You can use -+the keywords @code{__asm__}, @code{__inline__} and @code{__typeof__} -+instead. @option{-ansi} implies @option{-fno-asm}. -+ -+In C++, this switch only affects the @code{typeof} keyword, since -+@code{asm} and @code{inline} are standard keywords. You may want to -+use the @option{-fno-gnu-keywords} flag instead, which has the same -+effect. In C99 mode (@option{-std=c99} or @option{-std=gnu99}), this -+switch only affects the @code{asm} and @code{typeof} keywords, since -+@code{inline} is a standard keyword in ISO C99. -+ -+@item -fno-builtin -+@itemx -fno-builtin-@var{function} -+@opindex fno-builtin -+@cindex built-in functions -+Don't recognize built-in functions that do not begin with -+@samp{__builtin_} as prefix. @xref{Other Builtins,,Other built-in -+functions provided by GCC}, for details of the functions affected, -+including those which are not built-in functions when @option{-ansi} or -+@option{-std} options for strict ISO C conformance are used because they -+do not have an ISO standard meaning. -+ -+GCC normally generates special code to handle certain built-in functions -+more efficiently; for instance, calls to @code{alloca} may become single -+instructions that adjust the stack directly, and calls to @code{memcpy} -+may become inline copy loops. The resulting code is often both smaller -+and faster, but since the function calls no longer appear as such, you -+cannot set a breakpoint on those calls, nor can you change the behavior -+of the functions by linking with a different library. In addition, -+when a function is recognized as a built-in function, GCC may use -+information about that function to warn about problems with calls to -+that function, or to generate more efficient code, even if the -+resulting code still contains calls to that function. For example, -+warnings are given with @option{-Wformat} for bad calls to -+@code{printf}, when @code{printf} is built in, and @code{strlen} is -+known not to modify global memory. -+ -+With the @option{-fno-builtin-@var{function}} option -+only the built-in function @var{function} is -+disabled. @var{function} must not begin with @samp{__builtin_}. If a -+function is named that is not built-in in this version of GCC, this -+option is ignored. There is no corresponding -+@option{-fbuiltin-@var{function}} option; if you wish to enable -+built-in functions selectively when using @option{-fno-builtin} or -+@option{-ffreestanding}, you may define macros such as: -+ -+@smallexample -+#define abs(n) __builtin_abs ((n)) -+#define strcpy(d, s) __builtin_strcpy ((d), (s)) -+@end smallexample -+ -+@item -fhosted -+@opindex fhosted -+@cindex hosted environment -+ -+Assert that compilation takes place in a hosted environment. This implies -+@option{-fbuiltin}. A hosted environment is one in which the -+entire standard library is available, and in which @code{main} has a return -+type of @code{int}. Examples are nearly everything except a kernel. -+This is equivalent to @option{-fno-freestanding}. -+ -+@item -ffreestanding -+@opindex ffreestanding -+@cindex hosted environment -+ -+Assert that compilation takes place in a freestanding environment. This -+implies @option{-fno-builtin}. A freestanding environment -+is one in which the standard library may not exist, and program startup may -+not necessarily be at @code{main}. The most obvious example is an OS kernel. -+This is equivalent to @option{-fno-hosted}. -+ -+@xref{Standards,,Language Standards Supported by GCC}, for details of -+freestanding and hosted environments. -+ -+@item -fopenmp -+@opindex fopenmp -+@cindex openmp parallel -+Enable handling of OpenMP directives @code{#pragma omp} in C/C++ and -+@code{!$omp} in Fortran. When @option{-fopenmp} is specified, the -+compiler generates parallel code according to the OpenMP Application -+Program Interface v2.5 @w{@uref{http://www.openmp.org/}}. This option -+implies @option{-pthread}, and thus is only supported on targets that -+have support for @option{-pthread}. -+ -+@item -fms-extensions -+@opindex fms-extensions -+Accept some non-standard constructs used in Microsoft header files. -+ -+Some cases of unnamed fields in structures and unions are only -+accepted with this option. @xref{Unnamed Fields,,Unnamed struct/union -+fields within structs/unions}, for details. -+ -+@item -trigraphs -+@opindex trigraphs -+Support ISO C trigraphs. The @option{-ansi} option (and @option{-std} -+options for strict ISO C conformance) implies @option{-trigraphs}. -+ -+@item -no-integrated-cpp -+@opindex no-integrated-cpp -+Performs a compilation in two passes: preprocessing and compiling. This -+option allows a user supplied "cc1", "cc1plus", or "cc1obj" via the -+@option{-B} option. The user supplied compilation step can then add in -+an additional preprocessing step after normal preprocessing but before -+compiling. The default is to use the integrated cpp (internal cpp) -+ -+The semantics of this option will change if "cc1", "cc1plus", and -+"cc1obj" are merged. -+ -+@cindex traditional C language -+@cindex C language, traditional -+@item -traditional -+@itemx -traditional-cpp -+@opindex traditional-cpp -+@opindex traditional -+Formerly, these options caused GCC to attempt to emulate a pre-standard -+C compiler. They are now only supported with the @option{-E} switch. -+The preprocessor continues to support a pre-standard mode. See the GNU -+CPP manual for details. -+ -+@item -fcond-mismatch -+@opindex fcond-mismatch -+Allow conditional expressions with mismatched types in the second and -+third arguments. The value of such an expression is void. This option -+is not supported for C++. -+ -+@item -flax-vector-conversions -+@opindex flax-vector-conversions -+Allow implicit conversions between vectors with differing numbers of -+elements and/or incompatible element types. This option should not be -+used for new code. -+ -+@item -funsigned-char -+@opindex funsigned-char -+Let the type @code{char} be unsigned, like @code{unsigned char}. -+ -+Each kind of machine has a default for what @code{char} should -+be. It is either like @code{unsigned char} by default or like -+@code{signed char} by default. -+ -+Ideally, a portable program should always use @code{signed char} or -+@code{unsigned char} when it depends on the signedness of an object. -+But many programs have been written to use plain @code{char} and -+expect it to be signed, or expect it to be unsigned, depending on the -+machines they were written for. This option, and its inverse, let you -+make such a program work with the opposite default. -+ -+The type @code{char} is always a distinct type from each of -+@code{signed char} or @code{unsigned char}, even though its behavior -+is always just like one of those two. -+ -+@item -fsigned-char -+@opindex fsigned-char -+Let the type @code{char} be signed, like @code{signed char}. -+ -+Note that this is equivalent to @option{-fno-unsigned-char}, which is -+the negative form of @option{-funsigned-char}. Likewise, the option -+@option{-fno-signed-char} is equivalent to @option{-funsigned-char}. -+ -+@item -fsigned-bitfields -+@itemx -funsigned-bitfields -+@itemx -fno-signed-bitfields -+@itemx -fno-unsigned-bitfields -+@opindex fsigned-bitfields -+@opindex funsigned-bitfields -+@opindex fno-signed-bitfields -+@opindex fno-unsigned-bitfields -+These options control whether a bit-field is signed or unsigned, when the -+declaration does not use either @code{signed} or @code{unsigned}. By -+default, such a bit-field is signed, because this is consistent: the -+basic integer types such as @code{int} are signed types. -+@end table -+ -+@node C++ Dialect Options -+@section Options Controlling C++ Dialect -+ -+@cindex compiler options, C++ -+@cindex C++ options, command line -+@cindex options, C++ -+This section describes the command-line options that are only meaningful -+for C++ programs; but you can also use most of the GNU compiler options -+regardless of what language your program is in. For example, you -+might compile a file @code{firstClass.C} like this: -+ -+@smallexample -+g++ -g -frepo -O -c firstClass.C -+@end smallexample -+ -+@noindent -+In this example, only @option{-frepo} is an option meant -+only for C++ programs; you can use the other options with any -+language supported by GCC@. -+ -+Here is a list of options that are @emph{only} for compiling C++ programs: -+ -+@table @gcctabopt -+ -+@item -fabi-version=@var{n} -+@opindex fabi-version -+Use version @var{n} of the C++ ABI@. Version 2 is the version of the -+C++ ABI that first appeared in G++ 3.4. Version 1 is the version of -+the C++ ABI that first appeared in G++ 3.2. Version 0 will always be -+the version that conforms most closely to the C++ ABI specification. -+Therefore, the ABI obtained using version 0 will change as ABI bugs -+are fixed. -+ -+The default is version 2. -+ -+@item -fno-access-control -+@opindex fno-access-control -+Turn off all access checking. This switch is mainly useful for working -+around bugs in the access control code. -+ -+@item -fcheck-new -+@opindex fcheck-new -+Check that the pointer returned by @code{operator new} is non-null -+before attempting to modify the storage allocated. This check is -+normally unnecessary because the C++ standard specifies that -+@code{operator new} will only return @code{0} if it is declared -+@samp{throw()}, in which case the compiler will always check the -+return value even without this option. In all other cases, when -+@code{operator new} has a non-empty exception specification, memory -+exhaustion is signalled by throwing @code{std::bad_alloc}. See also -+@samp{new (nothrow)}. -+ -+@item -fconserve-space -+@opindex fconserve-space -+Put uninitialized or runtime-initialized global variables into the -+common segment, as C does. This saves space in the executable at the -+cost of not diagnosing duplicate definitions. If you compile with this -+flag and your program mysteriously crashes after @code{main()} has -+completed, you may have an object that is being destroyed twice because -+two definitions were merged. -+ -+This option is no longer useful on most targets, now that support has -+been added for putting variables into BSS without making them common. -+ -+@item -fno-deduce-init-list -+@opindex fno-deduce-init-list -+Disable deduction of a template type parameter as -+std::initializer_list from a brace-enclosed initializer list, i.e. -+ -+@smallexample -+template auto forward(T t) -> decltype (realfn (t)) -+@{ -+ return realfn (t); -+@} -+ -+void f() -+@{ -+ forward(@{1,2@}); // call forward> -+@} -+@end smallexample -+ -+This option is present because this deduction is an extension to the -+current specification in the C++0x working draft, and there was -+some concern about potential overload resolution problems. -+ -+@item -ffriend-injection -+@opindex ffriend-injection -+Inject friend functions into the enclosing namespace, so that they are -+visible outside the scope of the class in which they are declared. -+Friend functions were documented to work this way in the old Annotated -+C++ Reference Manual, and versions of G++ before 4.1 always worked -+that way. However, in ISO C++ a friend function which is not declared -+in an enclosing scope can only be found using argument dependent -+lookup. This option causes friends to be injected as they were in -+earlier releases. -+ -+This option is for compatibility, and may be removed in a future -+release of G++. -+ -+@item -fno-elide-constructors -+@opindex fno-elide-constructors -+The C++ standard allows an implementation to omit creating a temporary -+which is only used to initialize another object of the same type. -+Specifying this option disables that optimization, and forces G++ to -+call the copy constructor in all cases. -+ -+@item -fno-enforce-eh-specs -+@opindex fno-enforce-eh-specs -+Don't generate code to check for violation of exception specifications -+at runtime. This option violates the C++ standard, but may be useful -+for reducing code size in production builds, much like defining -+@samp{NDEBUG}. This does not give user code permission to throw -+exceptions in violation of the exception specifications; the compiler -+will still optimize based on the specifications, so throwing an -+unexpected exception will result in undefined behavior. -+ -+@item -ffor-scope -+@itemx -fno-for-scope -+@opindex ffor-scope -+@opindex fno-for-scope -+If @option{-ffor-scope} is specified, the scope of variables declared in -+a @i{for-init-statement} is limited to the @samp{for} loop itself, -+as specified by the C++ standard. -+If @option{-fno-for-scope} is specified, the scope of variables declared in -+a @i{for-init-statement} extends to the end of the enclosing scope, -+as was the case in old versions of G++, and other (traditional) -+implementations of C++. -+ -+The default if neither flag is given to follow the standard, -+but to allow and give a warning for old-style code that would -+otherwise be invalid, or have different behavior. -+ -+@item -fno-gnu-keywords -+@opindex fno-gnu-keywords -+Do not recognize @code{typeof} as a keyword, so that code can use this -+word as an identifier. You can use the keyword @code{__typeof__} instead. -+@option{-ansi} implies @option{-fno-gnu-keywords}. -+ -+@item -fno-implicit-templates -+@opindex fno-implicit-templates -+Never emit code for non-inline templates which are instantiated -+implicitly (i.e.@: by use); only emit code for explicit instantiations. -+@xref{Template Instantiation}, for more information. -+ -+@item -fno-implicit-inline-templates -+@opindex fno-implicit-inline-templates -+Don't emit code for implicit instantiations of inline templates, either. -+The default is to handle inlines differently so that compiles with and -+without optimization will need the same set of explicit instantiations. -+ -+@item -fno-implement-inlines -+@opindex fno-implement-inlines -+To save space, do not emit out-of-line copies of inline functions -+controlled by @samp{#pragma implementation}. This will cause linker -+errors if these functions are not inlined everywhere they are called. -+ -+@item -fms-extensions -+@opindex fms-extensions -+Disable pedantic warnings about constructs used in MFC, such as implicit -+int and getting a pointer to member function via non-standard syntax. -+ -+@item -fno-nonansi-builtins -+@opindex fno-nonansi-builtins -+Disable built-in declarations of functions that are not mandated by -+ANSI/ISO C@. These include @code{ffs}, @code{alloca}, @code{_exit}, -+@code{index}, @code{bzero}, @code{conjf}, and other related functions. -+ -+@item -fno-operator-names -+@opindex fno-operator-names -+Do not treat the operator name keywords @code{and}, @code{bitand}, -+@code{bitor}, @code{compl}, @code{not}, @code{or} and @code{xor} as -+synonyms as keywords. -+ -+@item -fno-optional-diags -+@opindex fno-optional-diags -+Disable diagnostics that the standard says a compiler does not need to -+issue. Currently, the only such diagnostic issued by G++ is the one for -+a name having multiple meanings within a class. -+ -+@item -fpermissive -+@opindex fpermissive -+Downgrade some diagnostics about nonconformant code from errors to -+warnings. Thus, using @option{-fpermissive} will allow some -+nonconforming code to compile. -+ -+@item -frepo -+@opindex frepo -+Enable automatic template instantiation at link time. This option also -+implies @option{-fno-implicit-templates}. @xref{Template -+Instantiation}, for more information. -+ -+@item -fno-rtti -+@opindex fno-rtti -+Disable generation of information about every class with virtual -+functions for use by the C++ runtime type identification features -+(@samp{dynamic_cast} and @samp{typeid}). If you don't use those parts -+of the language, you can save some space by using this flag. Note that -+exception handling uses the same information, but it will generate it as -+needed. The @samp{dynamic_cast} operator can still be used for casts that -+do not require runtime type information, i.e.@: casts to @code{void *} or to -+unambiguous base classes. -+ -+@item -fstats -+@opindex fstats -+Emit statistics about front-end processing at the end of the compilation. -+This information is generally only useful to the G++ development team. -+ -+@item -ftemplate-depth-@var{n} -+@opindex ftemplate-depth -+Set the maximum instantiation depth for template classes to @var{n}. -+A limit on the template instantiation depth is needed to detect -+endless recursions during template class instantiation. ANSI/ISO C++ -+conforming programs must not rely on a maximum depth greater than 17. -+ -+@item -fno-threadsafe-statics -+@opindex fno-threadsafe-statics -+Do not emit the extra code to use the routines specified in the C++ -+ABI for thread-safe initialization of local statics. You can use this -+option to reduce code size slightly in code that doesn't need to be -+thread-safe. -+ -+@item -fuse-cxa-atexit -+@opindex fuse-cxa-atexit -+Register destructors for objects with static storage duration with the -+@code{__cxa_atexit} function rather than the @code{atexit} function. -+This option is required for fully standards-compliant handling of static -+destructors, but will only work if your C library supports -+@code{__cxa_atexit}. -+ -+@item -fno-use-cxa-get-exception-ptr -+@opindex fno-use-cxa-get-exception-ptr -+Don't use the @code{__cxa_get_exception_ptr} runtime routine. This -+will cause @code{std::uncaught_exception} to be incorrect, but is necessary -+if the runtime routine is not available. -+ -+@item -fvisibility-inlines-hidden -+@opindex fvisibility-inlines-hidden -+This switch declares that the user does not attempt to compare -+pointers to inline methods where the addresses of the two functions -+were taken in different shared objects. -+ -+The effect of this is that GCC may, effectively, mark inline methods with -+@code{__attribute__ ((visibility ("hidden")))} so that they do not -+appear in the export table of a DSO and do not require a PLT indirection -+when used within the DSO@. Enabling this option can have a dramatic effect -+on load and link times of a DSO as it massively reduces the size of the -+dynamic export table when the library makes heavy use of templates. -+ -+The behavior of this switch is not quite the same as marking the -+methods as hidden directly, because it does not affect static variables -+local to the function or cause the compiler to deduce that -+the function is defined in only one shared object. -+ -+You may mark a method as having a visibility explicitly to negate the -+effect of the switch for that method. For example, if you do want to -+compare pointers to a particular inline method, you might mark it as -+having default visibility. Marking the enclosing class with explicit -+visibility will have no effect. -+ -+Explicitly instantiated inline methods are unaffected by this option -+as their linkage might otherwise cross a shared library boundary. -+@xref{Template Instantiation}. -+ -+@item -fvisibility-ms-compat -+@opindex fvisibility-ms-compat -+This flag attempts to use visibility settings to make GCC's C++ -+linkage model compatible with that of Microsoft Visual Studio. -+ -+The flag makes these changes to GCC's linkage model: -+ -+@enumerate -+@item -+It sets the default visibility to @code{hidden}, like -+@option{-fvisibility=hidden}. -+ -+@item -+Types, but not their members, are not hidden by default. -+ -+@item -+The One Definition Rule is relaxed for types without explicit -+visibility specifications which are defined in more than one different -+shared object: those declarations are permitted if they would have -+been permitted when this option was not used. -+@end enumerate -+ -+In new code it is better to use @option{-fvisibility=hidden} and -+export those classes which are intended to be externally visible. -+Unfortunately it is possible for code to rely, perhaps accidentally, -+on the Visual Studio behavior. -+ -+Among the consequences of these changes are that static data members -+of the same type with the same name but defined in different shared -+objects will be different, so changing one will not change the other; -+and that pointers to function members defined in different shared -+objects may not compare equal. When this flag is given, it is a -+violation of the ODR to define types with the same name differently. -+ -+@item -fno-weak -+@opindex fno-weak -+Do not use weak symbol support, even if it is provided by the linker. -+By default, G++ will use weak symbols if they are available. This -+option exists only for testing, and should not be used by end-users; -+it will result in inferior code and has no benefits. This option may -+be removed in a future release of G++. -+ -+@item -nostdinc++ -+@opindex nostdinc++ -+Do not search for header files in the standard directories specific to -+C++, but do still search the other standard directories. (This option -+is used when building the C++ library.) -+@end table -+ -+In addition, these optimization, warning, and code generation options -+have meanings only for C++ programs: -+ -+@table @gcctabopt -+@item -fno-default-inline -+@opindex fno-default-inline -+Do not assume @samp{inline} for functions defined inside a class scope. -+@xref{Optimize Options,,Options That Control Optimization}. Note that these -+functions will have linkage like inline functions; they just won't be -+inlined by default. -+ -+@item -Wabi @r{(C, Objective-C, C++ and Objective-C++ only)} -+@opindex Wabi -+@opindex Wno-abi -+Warn when G++ generates code that is probably not compatible with the -+vendor-neutral C++ ABI@. Although an effort has been made to warn about -+all such cases, there are probably some cases that are not warned about, -+even though G++ is generating incompatible code. There may also be -+cases where warnings are emitted even though the code that is generated -+will be compatible. -+ -+You should rewrite your code to avoid these warnings if you are -+concerned about the fact that code generated by G++ may not be binary -+compatible with code generated by other compilers. -+ -+The known incompatibilities at this point include: -+ -+@itemize @bullet -+ -+@item -+Incorrect handling of tail-padding for bit-fields. G++ may attempt to -+pack data into the same byte as a base class. For example: -+ -+@smallexample -+struct A @{ virtual void f(); int f1 : 1; @}; -+struct B : public A @{ int f2 : 1; @}; -+@end smallexample -+ -+@noindent -+In this case, G++ will place @code{B::f2} into the same byte -+as@code{A::f1}; other compilers will not. You can avoid this problem -+by explicitly padding @code{A} so that its size is a multiple of the -+byte size on your platform; that will cause G++ and other compilers to -+layout @code{B} identically. -+ -+@item -+Incorrect handling of tail-padding for virtual bases. G++ does not use -+tail padding when laying out virtual bases. For example: -+ -+@smallexample -+struct A @{ virtual void f(); char c1; @}; -+struct B @{ B(); char c2; @}; -+struct C : public A, public virtual B @{@}; -+@end smallexample -+ -+@noindent -+In this case, G++ will not place @code{B} into the tail-padding for -+@code{A}; other compilers will. You can avoid this problem by -+explicitly padding @code{A} so that its size is a multiple of its -+alignment (ignoring virtual base classes); that will cause G++ and other -+compilers to layout @code{C} identically. -+ -+@item -+Incorrect handling of bit-fields with declared widths greater than that -+of their underlying types, when the bit-fields appear in a union. For -+example: -+ -+@smallexample -+union U @{ int i : 4096; @}; -+@end smallexample -+ -+@noindent -+Assuming that an @code{int} does not have 4096 bits, G++ will make the -+union too small by the number of bits in an @code{int}. -+ -+@item -+Empty classes can be placed at incorrect offsets. For example: -+ -+@smallexample -+struct A @{@}; -+ -+struct B @{ -+ A a; -+ virtual void f (); -+@}; -+ -+struct C : public B, public A @{@}; -+@end smallexample -+ -+@noindent -+G++ will place the @code{A} base class of @code{C} at a nonzero offset; -+it should be placed at offset zero. G++ mistakenly believes that the -+@code{A} data member of @code{B} is already at offset zero. -+ -+@item -+Names of template functions whose types involve @code{typename} or -+template template parameters can be mangled incorrectly. -+ -+@smallexample -+template -+void f(typename Q::X) @{@} -+ -+template