Message ID | Pine.LNX.4.64.1008021642040.4379@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
On Aug 2, 2010, at 9:43 AM, Joseph S. Myers wrote: > This patch fixes a collection of miscellaneous issues with > command-line option handling in preparation for sharing infrastructure > OK to commit? I looked at the entire patch, looks all good me me. Ok to the darwin bits.
> ada: > 2010-08-02 Joseph Myers <joseph@codesourcery.com> > > * gcc-interface/lang-specs.h: Don't pass -a options. OK, thanks.
On Mon, Aug 2, 2010 at 6:43 PM, Joseph S. Myers <joseph@codesourcery.com> wrote: > This patch fixes a collection of miscellaneous issues with > command-line option handling in preparation for sharing infrastructure > between the driver and cc1, to avoid that sharing causing unwanted > changes in behavior or perturbing where bugs appear. These issues > were all found in the course of analysing differences between the > command-line interfaces to the driver and the core compilers. > > * "-G n" with separate operand needs SWITCH_TAKES_ARG support which > was missing on alpha and ia64. > > * The SWITCH_TAKES_ARG support for -G n on iq2000 was an unnecessary > copy from some other target since iq2000 doesn't support the -G > option. > > * The bfin specs passing -G* to the assembler and linker also appear > to be a bogus copy from another target since there is no -Gn support > in those tools for bfin. > > * WORD_SWITCH_TAKES_ARG didn't handle the Darwin -iframework option. > > * The rx -patch= option alias was useless as the driver wouldn't > accept or pass it down so it could only be passed directly to cc1; > this patch removes it. > > * Similarly, the C option -print-pch-checksum was useless and unused > as it could only be passed directly to cc1, and is removed. > > * Several relics of the -a/-ax block profiling, removed by > <http://gcc.gnu.org/ml/gcc-patches/2001-12/msg00147.html>, were > left: -a references in specs and a --profile-blocks option alias. > These are removed, or in the case of one %{a*} changed to pass down > the only -a* options needing to be passed down, -aux-info options. > (-auxbase* would have been accepted by that spec, but not processed > correctly by the driver for lack of WORD_SWITCH_TAKES_ARG handling. > Thus it would always have been useless to pass them to the driver, so > making it reject them by tightening the spec seems appropriate. > There is already another spec to handle -ansi, the remaining -a* > option.) > > * Although -imultilib is essentially an option for the driver to > generate, not for the user to use, since %{i*} specs will pass it > down DEFAULT_WORD_SWITCH_TAKES_ARG ought to know about how to handle > it correctly. > > * config/rs6000/sysv4.h had a definition of SWITCH_TAKES_ARG that did > not inherit from DEFAULT_SWITCH_TAKES_ARG, failed to handle the > Fortran -J option and still handled the -b and -V options that have > been removed. Once those issues are fixed it becomes identical to > the default except for also handling -G, so is made to inherit > accordingly. > > * There were long option aliases --quiet and --silent for a short > option -q that doesn't actually exist in the driver; these useless > aliases are removed. > > Bootstrapped with no regressions on x86_64-unknown-linux-gnu. Also > tested building cc1 for: alpha-dec-osf5.1 bfin-elf i686-darwin > ia64-linux-gnu iq2000-elf powerpc-linux-gnu rx-elf. OK to commit? Ok. Thanks, Richard. > 2010-08-02 Joseph Myers <joseph@codesourcery.com> > > * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define. > * config/alpha/osf5.h (LIB_SPEC): Don't handle -a. > * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* > options. > * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework. > * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define. > * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove. > * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using > DEFAULT_SWITCH_TAKES_ARG. > * config/rx/rx.opt (-patch=): Remove option. > * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_. > * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib. > * doc/invoke.texi (RX Options): Remove -patch=. > * gcc.c (cc1_options): Pass -aux-info* instead of -a* options. > (option_map): Remove --profile-blocks, --quiet and --silent. > > ada: > 2010-08-02 Joseph Myers <joseph@codesourcery.com> > > * gcc-interface/lang-specs.h: Don't pass -a options. > > c-family: > 2010-08-02 Joseph Myers <joseph@codesourcery.com> > > * c.opt (-print-pch-checksum): Remove option. > * c-opts.c (c_common_handle_option): Don't handle > OPT_print_pch_checksum. > > Index: gcc/doc/invoke.texi > =================================================================== > --- gcc/doc/invoke.texi (revision 162722) > +++ gcc/doc/invoke.texi (working copy) > @@ -790,7 +790,7 @@ See RS/6000 and PowerPC Options. > > @emph{RX Options} > @gccoptlist{-m64bit-doubles -m32bit-doubles -fpu -nofpu@gol > --mcpu= -patch=@gol > +-mcpu=@gol > -mbig-endian-data -mlittle-endian-data @gol > -msmall-data @gol > -msim -mno-sim@gol > @@ -15816,9 +15816,7 @@ use then the FPU hardware will not be us > This is because the RX FPU instructions are themselves unsafe. > > @item -mcpu=@var{name} > -@itemx -patch=@var{name} > @opindex -mcpu > -@opindex -patch > Selects the type of RX CPU to be targeted. Currently three types are > supported, the generic @var{RX600} and @var{RX200} series hardware and > the specific @var{RX610} cpu. The default is @var{RX600}. > Index: gcc/c-family/c.opt > =================================================================== > --- gcc/c-family/c.opt (revision 162722) > +++ gcc/c-family/c.opt (working copy) > @@ -952,10 +952,6 @@ print-objc-runtime-info > ObjC ObjC++ > Generate C header of platform-specific features > > -print-pch-checksum > -C ObjC C++ ObjC++ > -Print a checksum of the executable for PCH validity checking, and stop > - > remap > C ObjC C++ ObjC++ > Remap file names when including files > Index: gcc/c-family/c-opts.c > =================================================================== > --- gcc/c-family/c-opts.c (revision 162722) > +++ gcc/c-family/c-opts.c (working copy) > @@ -849,11 +849,6 @@ c_common_handle_option (size_t scode, co > print_struct_values = 1; > break; > > - case OPT_print_pch_checksum: > - c_common_print_pch_checksum (stdout); > - exit_after_options = true; > - break; > - > case OPT_remap: > cpp_opts->remap = 1; > break; > Index: gcc/defaults.h > =================================================================== > --- gcc/defaults.h (revision 162722) > +++ gcc/defaults.h (working copy) > @@ -50,7 +50,7 @@ see the files COPYING3 and COPYING.RUNTI > || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \ > || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \ > || !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \ > - || !strcmp (STR, "isysroot") \ > + || !strcmp (STR, "isysroot") || !strcmp (STR, "imultilib") \ > || !strcmp (STR, "-param") || !strcmp (STR, "specs") \ > || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ") \ > || !strcmp (STR, "fintrinsic-modules-path") \ > Index: gcc/gcc.c > =================================================================== > --- gcc/gcc.c (revision 162722) > +++ gcc/gcc.c (working copy) > @@ -858,7 +858,7 @@ static const char *cpp_debug_options = " > static const char *cc1_options = > "%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ > %{!iplugindir*:%{fplugin*:%:find-plugindir()}}\ > - %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{a*}\ > + %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{aux-info*}\ > %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b)} \ > %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}}%{!c:%{!S:-auxbase %b}} \ > %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs}\ > @@ -1199,12 +1199,9 @@ static const struct option_map option_ma > {"--print-sysroot", "-print-sysroot", 0}, > {"--print-sysroot-headers-suffix", "-print-sysroot-headers-suffix", 0}, > {"--profile", "-p", 0}, > - {"--profile-blocks", "-a", 0}, > - {"--quiet", "-q", 0}, > {"--resource", "-fcompile-resource=", "aj"}, > {"--save-temps", "-save-temps", 0}, > {"--shared", "-shared", 0}, > - {"--silent", "-q", 0}, > {"--specs", "-specs=", "aj"}, > {"--static", "-static", 0}, > {"--std", "-std=", "aj"}, > Index: gcc/ada/gcc-interface/lang-specs.h > =================================================================== > --- gcc/ada/gcc-interface/lang-specs.h (revision 162722) > +++ gcc/ada/gcc-interface/lang-specs.h (working copy) > @@ -36,7 +36,7 @@ > %{nostdinc*} %{nostdlib*}\ > -dumpbase %{.adb:%b.adb}%{.ads:%b.ads}%{!.adb:%{!.ads:%b.ada}}\ > %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}} \ > - %{O*} %{W*} %{w} %{p} %{pg:-p} %{a} %{d*} %{f*}\ > + %{O*} %{W*} %{w} %{p} %{pg:-p} %{d*} %{f*}\ > %{coverage:-fprofile-arcs -ftest-coverage} " > "%{gnatea:-gnatez} %{g*&m*} " > #if defined(TARGET_VXWORKS_RTP) > Index: gcc/config/alpha/alpha.h > =================================================================== > --- gcc/config/alpha/alpha.h (revision 162722) > +++ gcc/config/alpha/alpha.h (working copy) > @@ -96,6 +96,9 @@ along with GCC; see the file COPYING3. > while (0) > #endif > > +#define SWITCH_TAKES_ARG(CHAR) \ > + (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') > + > #define WORD_SWITCH_TAKES_ARG(STR) \ > (!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR)) > > Index: gcc/config/alpha/osf5.h > =================================================================== > --- gcc/config/alpha/osf5.h (revision 162722) > +++ gcc/config/alpha/osf5.h (working copy) > @@ -84,7 +84,7 @@ along with GCC; see the file COPYING3. > -lpdf. */ > > #define LIB_SPEC \ > -"%{p|pg:-lprof1%{pthread|threads:_r} -lpdf} %{a:-lprof2} \ > +"%{p|pg:-lprof1%{pthread|threads:_r} -lpdf} \ > %{threads: -lpthreads} %{pthread|threads: -lpthread -lmach -lexc} -lc" > > /* Pass "-G 8" to ld because Alpha's CC does. Pass -O3 if we are > Index: gcc/config/rx/rx.c > =================================================================== > --- gcc/config/rx/rx.c (revision 162722) > +++ gcc/config/rx/rx.c (working copy) > @@ -2130,7 +2130,6 @@ rx_handle_option (size_t code, const cha > return value >= 0 && value <= 4; > > case OPT_mcpu_: > - case OPT_patch_: > if (strcasecmp (arg, "RX610") == 0) > rx_cpu_type = RX610; > else if (strcasecmp (arg, "RX200") == 0) > Index: gcc/config/rx/rx.opt > =================================================================== > --- gcc/config/rx/rx.opt (revision 162722) > +++ gcc/config/rx/rx.opt (working copy) > @@ -46,10 +46,6 @@ mcpu= > Target RejectNegative Joined Var(rx_cpu_name) Report > Specify the target RX cpu type. > > -patch= > -Target RejectNegative Joined Var(rx_cpu_name) > -Alias for -mcpu. > - > ;--------------------------------------------------- > > mbig-endian-data > Index: gcc/config/iq2000/iq2000.h > =================================================================== > --- gcc/config/iq2000/iq2000.h (revision 162722) > +++ gcc/config/iq2000/iq2000.h (working copy) > @@ -1,6 +1,6 @@ > /* Definitions of target machine for GNU compiler. > Vitesse IQ2000 processors > - Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 > + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 > Free Software Foundation, Inc. > > This file is part of GCC. > @@ -21,10 +21,6 @@ > > /* Driver configuration. */ > > -#undef SWITCH_TAKES_ARG > -#define SWITCH_TAKES_ARG(CHAR) \ > - (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') > - > /* The svr4.h LIB_SPEC with -leval and --*group tacked on */ > #undef LIB_SPEC > #define LIB_SPEC "%{!shared:%{!symbolic:--start-group -lc -leval -lgcc --end-group}}" > Index: gcc/config/ia64/ia64.h > =================================================================== > --- gcc/config/ia64/ia64.h (revision 162722) > +++ gcc/config/ia64/ia64.h (working copy) > @@ -53,6 +53,9 @@ do { \ > > #define ASM_EXTRA_SPEC "" > > +#define SWITCH_TAKES_ARG(CHAR) \ > + (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') > + > /* Variables which are this size or smaller are put in the sdata/sbss > sections. */ > extern unsigned int ia64_section_threshold; > Index: gcc/config/rs6000/sysv4.h > =================================================================== > --- gcc/config/rs6000/sysv4.h (revision 162722) > +++ gcc/config/rs6000/sysv4.h (working copy) > @@ -1,6 +1,6 @@ > /* Target definitions for GNU compiler for PowerPC running System V.4 > Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, > - 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. > + 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. > Contributed by Cygnus Support. > > This file is part of GCC. > @@ -520,12 +520,8 @@ do { \ > > /* Override svr4.h definition. */ > #undef SWITCH_TAKES_ARG > -#define SWITCH_TAKES_ARG(CHAR) \ > - ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \ > - || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \ > - || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \ > - || (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'V' \ > - || (CHAR) == 'B' || (CHAR) == 'b' || (CHAR) == 'G') > +#define SWITCH_TAKES_ARG(CHAR) \ > + (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') > > extern int fixuplabelno; > > Index: gcc/config/darwin.h > =================================================================== > --- gcc/config/darwin.h (revision 162722) > +++ gcc/config/darwin.h (working copy) > @@ -236,6 +236,7 @@ extern GTY(()) int darwin_ms_struct; > !strcmp (STR, "sectobjectsymbols") ? 2 : \ > !strcmp (STR, "segcreate") ? 3 : \ > !strcmp (STR, "dylinker_install_name") ? 1 : \ > + !strcmp (STR, "iframework") ? 1 : \ > 0) > > #define SUBTARGET_C_COMMON_OVERRIDE_OPTIONS do { \ > Index: gcc/config/bfin/bfin.h > =================================================================== > --- gcc/config/bfin/bfin.h (revision 162722) > +++ gcc/config/bfin/bfin.h (working copy) > @@ -1,5 +1,5 @@ > /* Definitions for the Blackfin port. > - Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. > + Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. > Contributed by Analog Devices. > > This file is part of GCC. > @@ -252,7 +252,7 @@ extern int target_flags; > Defined in svr4.h. */ > #undef ASM_SPEC > #define ASM_SPEC "\ > -%{G*} %{v} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ > +%{v} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ > %{mno-fdpic:-mnopic} %{mfdpic}" > > #define LINK_SPEC "\ > @@ -262,7 +262,6 @@ extern int target_flags; > %{static:-dn -Bstatic} \ > %{shared:-G -Bdynamic} \ > %{symbolic:-Bsymbolic} \ > -%{G*} \ > %{YP,*} \ > %{Qy:} %{!Qn:-Qy} \ > -init __init -fini __fini " > > -- > Joseph S. Myers > joseph@codesourcery.com >
On Mon, Aug 02, 2010 at 04:43:30PM +0000, Joseph S. Myers wrote: > * The SWITCH_TAKES_ARG support for -G n on iq2000 was an unnecessary > copy from some other target since iq2000 doesn't support the -G > option. This bit breaks building libgcc for iq2000-elf because t-iq2000 does specify -G: # We must build libgcc2.a with -G 0, in case the user wants to link # without the $gp register. TARGET_LIBGCC2_CFLAGS = -G 0 Removing that line is easy enough, but perhaps -G really is (supposed to be) supported? Nick, is -G supported or not on iq2000? -Nathan
On Sun, 8 Aug 2010, Nathan Froyd wrote: > On Mon, Aug 02, 2010 at 04:43:30PM +0000, Joseph S. Myers wrote: > > * The SWITCH_TAKES_ARG support for -G n on iq2000 was an unnecessary > > copy from some other target since iq2000 doesn't support the -G > > option. > > This bit breaks building libgcc for iq2000-elf because t-iq2000 does > specify -G: > > # We must build libgcc2.a with -G 0, in case the user wants to link > # without the $gp register. > TARGET_LIBGCC2_CFLAGS = -G 0 > > Removing that line is easy enough, but perhaps -G really is (supposed to > be) supported? Nick, is -G supported or not on iq2000? I assessed what is meant to support -G based on what uses the g_switch_* variables. The iq2000 back end does not use them. I suppose it would have been accepted only because of the specs in svr4.h which that target uses - that is, the driver thought this was a linker option (and if -G, without argument, is being accepted as a linker option on a given target, then the driver should not for other purposes be treating it as an option taking an argument).
Index: gcc/doc/invoke.texi =================================================================== --- gcc/doc/invoke.texi (revision 162722) +++ gcc/doc/invoke.texi (working copy) @@ -790,7 +790,7 @@ See RS/6000 and PowerPC Options. @emph{RX Options} @gccoptlist{-m64bit-doubles -m32bit-doubles -fpu -nofpu@gol --mcpu= -patch=@gol +-mcpu=@gol -mbig-endian-data -mlittle-endian-data @gol -msmall-data @gol -msim -mno-sim@gol @@ -15816,9 +15816,7 @@ use then the FPU hardware will not be us This is because the RX FPU instructions are themselves unsafe. @item -mcpu=@var{name} -@itemx -patch=@var{name} @opindex -mcpu -@opindex -patch Selects the type of RX CPU to be targeted. Currently three types are supported, the generic @var{RX600} and @var{RX200} series hardware and the specific @var{RX610} cpu. The default is @var{RX600}. Index: gcc/c-family/c.opt =================================================================== --- gcc/c-family/c.opt (revision 162722) +++ gcc/c-family/c.opt (working copy) @@ -952,10 +952,6 @@ print-objc-runtime-info ObjC ObjC++ Generate C header of platform-specific features -print-pch-checksum -C ObjC C++ ObjC++ -Print a checksum of the executable for PCH validity checking, and stop - remap C ObjC C++ ObjC++ Remap file names when including files Index: gcc/c-family/c-opts.c =================================================================== --- gcc/c-family/c-opts.c (revision 162722) +++ gcc/c-family/c-opts.c (working copy) @@ -849,11 +849,6 @@ c_common_handle_option (size_t scode, co print_struct_values = 1; break; - case OPT_print_pch_checksum: - c_common_print_pch_checksum (stdout); - exit_after_options = true; - break; - case OPT_remap: cpp_opts->remap = 1; break; Index: gcc/defaults.h =================================================================== --- gcc/defaults.h (revision 162722) +++ gcc/defaults.h (working copy) @@ -50,7 +50,7 @@ see the files COPYING3 and COPYING.RUNTI || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \ || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \ || !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \ - || !strcmp (STR, "isysroot") \ + || !strcmp (STR, "isysroot") || !strcmp (STR, "imultilib") \ || !strcmp (STR, "-param") || !strcmp (STR, "specs") \ || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ") \ || !strcmp (STR, "fintrinsic-modules-path") \ Index: gcc/gcc.c =================================================================== --- gcc/gcc.c (revision 162722) +++ gcc/gcc.c (working copy) @@ -858,7 +858,7 @@ static const char *cpp_debug_options = " static const char *cc1_options = "%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ %{!iplugindir*:%{fplugin*:%:find-plugindir()}}\ - %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{a*}\ + %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{aux-info*}\ %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b)} \ %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}}%{!c:%{!S:-auxbase %b}} \ %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs}\ @@ -1199,12 +1199,9 @@ static const struct option_map option_ma {"--print-sysroot", "-print-sysroot", 0}, {"--print-sysroot-headers-suffix", "-print-sysroot-headers-suffix", 0}, {"--profile", "-p", 0}, - {"--profile-blocks", "-a", 0}, - {"--quiet", "-q", 0}, {"--resource", "-fcompile-resource=", "aj"}, {"--save-temps", "-save-temps", 0}, {"--shared", "-shared", 0}, - {"--silent", "-q", 0}, {"--specs", "-specs=", "aj"}, {"--static", "-static", 0}, {"--std", "-std=", "aj"}, Index: gcc/ada/gcc-interface/lang-specs.h =================================================================== --- gcc/ada/gcc-interface/lang-specs.h (revision 162722) +++ gcc/ada/gcc-interface/lang-specs.h (working copy) @@ -36,7 +36,7 @@ %{nostdinc*} %{nostdlib*}\ -dumpbase %{.adb:%b.adb}%{.ads:%b.ads}%{!.adb:%{!.ads:%b.ada}}\ %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}} \ - %{O*} %{W*} %{w} %{p} %{pg:-p} %{a} %{d*} %{f*}\ + %{O*} %{W*} %{w} %{p} %{pg:-p} %{d*} %{f*}\ %{coverage:-fprofile-arcs -ftest-coverage} " "%{gnatea:-gnatez} %{g*&m*} " #if defined(TARGET_VXWORKS_RTP) Index: gcc/config/alpha/alpha.h =================================================================== --- gcc/config/alpha/alpha.h (revision 162722) +++ gcc/config/alpha/alpha.h (working copy) @@ -96,6 +96,9 @@ along with GCC; see the file COPYING3. while (0) #endif +#define SWITCH_TAKES_ARG(CHAR) \ + (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') + #define WORD_SWITCH_TAKES_ARG(STR) \ (!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR)) Index: gcc/config/alpha/osf5.h =================================================================== --- gcc/config/alpha/osf5.h (revision 162722) +++ gcc/config/alpha/osf5.h (working copy) @@ -84,7 +84,7 @@ along with GCC; see the file COPYING3. -lpdf. */ #define LIB_SPEC \ -"%{p|pg:-lprof1%{pthread|threads:_r} -lpdf} %{a:-lprof2} \ +"%{p|pg:-lprof1%{pthread|threads:_r} -lpdf} \ %{threads: -lpthreads} %{pthread|threads: -lpthread -lmach -lexc} -lc" /* Pass "-G 8" to ld because Alpha's CC does. Pass -O3 if we are Index: gcc/config/rx/rx.c =================================================================== --- gcc/config/rx/rx.c (revision 162722) +++ gcc/config/rx/rx.c (working copy) @@ -2130,7 +2130,6 @@ rx_handle_option (size_t code, const cha return value >= 0 && value <= 4; case OPT_mcpu_: - case OPT_patch_: if (strcasecmp (arg, "RX610") == 0) rx_cpu_type = RX610; else if (strcasecmp (arg, "RX200") == 0) Index: gcc/config/rx/rx.opt =================================================================== --- gcc/config/rx/rx.opt (revision 162722) +++ gcc/config/rx/rx.opt (working copy) @@ -46,10 +46,6 @@ mcpu= Target RejectNegative Joined Var(rx_cpu_name) Report Specify the target RX cpu type. -patch= -Target RejectNegative Joined Var(rx_cpu_name) -Alias for -mcpu. - ;--------------------------------------------------- mbig-endian-data Index: gcc/config/iq2000/iq2000.h =================================================================== --- gcc/config/iq2000/iq2000.h (revision 162722) +++ gcc/config/iq2000/iq2000.h (working copy) @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Vitesse IQ2000 processors - Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -21,10 +21,6 @@ /* Driver configuration. */ -#undef SWITCH_TAKES_ARG -#define SWITCH_TAKES_ARG(CHAR) \ - (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') - /* The svr4.h LIB_SPEC with -leval and --*group tacked on */ #undef LIB_SPEC #define LIB_SPEC "%{!shared:%{!symbolic:--start-group -lc -leval -lgcc --end-group}}" Index: gcc/config/ia64/ia64.h =================================================================== --- gcc/config/ia64/ia64.h (revision 162722) +++ gcc/config/ia64/ia64.h (working copy) @@ -53,6 +53,9 @@ do { \ #define ASM_EXTRA_SPEC "" +#define SWITCH_TAKES_ARG(CHAR) \ + (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') + /* Variables which are this size or smaller are put in the sdata/sbss sections. */ extern unsigned int ia64_section_threshold; Index: gcc/config/rs6000/sysv4.h =================================================================== --- gcc/config/rs6000/sysv4.h (revision 162722) +++ gcc/config/rs6000/sysv4.h (working copy) @@ -1,6 +1,6 @@ /* Target definitions for GNU compiler for PowerPC running System V.4 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GCC. @@ -520,12 +520,8 @@ do { \ /* Override svr4.h definition. */ #undef SWITCH_TAKES_ARG -#define SWITCH_TAKES_ARG(CHAR) \ - ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \ - || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \ - || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \ - || (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'V' \ - || (CHAR) == 'B' || (CHAR) == 'b' || (CHAR) == 'G') +#define SWITCH_TAKES_ARG(CHAR) \ + (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G') extern int fixuplabelno; Index: gcc/config/darwin.h =================================================================== --- gcc/config/darwin.h (revision 162722) +++ gcc/config/darwin.h (working copy) @@ -236,6 +236,7 @@ extern GTY(()) int darwin_ms_struct; !strcmp (STR, "sectobjectsymbols") ? 2 : \ !strcmp (STR, "segcreate") ? 3 : \ !strcmp (STR, "dylinker_install_name") ? 1 : \ + !strcmp (STR, "iframework") ? 1 : \ 0) #define SUBTARGET_C_COMMON_OVERRIDE_OPTIONS do { \ Index: gcc/config/bfin/bfin.h =================================================================== --- gcc/config/bfin/bfin.h (revision 162722) +++ gcc/config/bfin/bfin.h (working copy) @@ -1,5 +1,5 @@ /* Definitions for the Blackfin port. - Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. @@ -252,7 +252,7 @@ extern int target_flags; Defined in svr4.h. */ #undef ASM_SPEC #define ASM_SPEC "\ -%{G*} %{v} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ +%{v} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ %{mno-fdpic:-mnopic} %{mfdpic}" #define LINK_SPEC "\ @@ -262,7 +262,6 @@ extern int target_flags; %{static:-dn -Bstatic} \ %{shared:-G -Bdynamic} \ %{symbolic:-Bsymbolic} \ -%{G*} \ %{YP,*} \ %{Qy:} %{!Qn:-Qy} \ -init __init -fini __fini "