On Mon, Nov 07, 2011 at 09:44:25PM -0600, Joel Sherrill wrote: > Hi, > > powerpc-rtems does not compile on the head due > to what appear to be changes in the way CPU > features are represented for the arguments. > > The compilation error is: > > /users/joel/test-gcc/gcc-svn/gcc/config/rs6000/rs6000.c -o rs6000.o > /users/joel/test-gcc/gcc-svn/gcc/config/rs6000/rs6000.c: In function > ‘rs6000_option_override_internal’: > /users/joel/test-gcc/gcc-svn/gcc/config/rs6000/rs6000.c:2826:3: > error: ‘rs6000_explicit_options’ undeclared (first use in this > function) > /users/joel/test-gcc/gcc-svn/gcc/config/rs6000/rs6000.c:2826:3: > note: each undeclared identifier is reported only once for each > function it appears in > At top level: > > The code is in rtems.h is currently: > > if (TARGET_E500) \ > { \ > if (TARGET_HARD_FLOAT && !rs6000_explicit_options.float_gprs) \ > rs6000_float_gprs = 1; \ > if (rs6000_float_gprs != 0 && !rs6000_explicit_options.spe) \ > rs6000_spe = 1; \ > if (rs6000_spe && !rs6000_explicit_options.spe_abi) \ > rs6000_spe_abi = 1; \ > } \ > > I think that changes to something like: > > if (TARGET_E500) \ > { \ > if (!global_options_set.x_rs6000_float_gprs) \ > rs6000_float_gprs = 1; \ > if (!global_options_set.x_rs6000_spe) \ > rs6000_spe = 1; \ > if (!global_options_set.x_rs6000_spe_abi) \ > rs6000_spe_abi = 1; \ > } \ > > That compiles but I wanted a sanity check that it is the right > transformation.
Yes, this is the right transformation. Here is an untested patch that fixes it: 2011-11-08 Michael Meissner <meiss...@linux.vnet.ibm.com> * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use global_options_set instead of rs6000_explicit_options, which was removed on May 5th. Index: gcc/config/rs6000/rtems.h =================================================================== --- gcc/config/rs6000/rtems.h (revision 181174) +++ gcc/config/rs6000/rtems.h (working copy) @@ -61,11 +61,11 @@ do { \ if (TARGET_E500) \ { \ - if (TARGET_HARD_FLOAT && !rs6000_explicit_options.float_gprs) \ + if (TARGET_HARD_FLOAT && !global_options_set.x_float_gprs) \ rs6000_float_gprs = 1; \ - if (rs6000_float_gprs != 0 && !rs6000_explicit_options.spe) \ + if (rs6000_float_gprs != 0 && !global_options_set.x_spe) \ rs6000_spe = 1; \ - if (rs6000_spe && !rs6000_explicit_options.spe_abi) \ + if (rs6000_spe && !global_options_set.x_spe_abi) \ rs6000_spe_abi = 1; \ } \ } while(0) -- Michael Meissner, IBM 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA meiss...@linux.vnet.ibm.com fax +1 (978) 399-6899