This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: powerpc rs6000_explicit_options change help request


On 11/08/2011 04:44 AM, 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.

I am not sure, either, but your code matches what other files being found in GCC trunk.


I so far have been experimenting with a less intrusive patch:

diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h
index 2c0c73b..6c36e94 100644
--- a/gcc/config/rs6000/rtems.h
+++ b/gcc/config/rs6000/rtems.h
@@ -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_rs6000_float_gprs) \
rs6000_float_gprs = 1; \
- if (rs6000_float_gprs != 0 && !rs6000_explicit_options.spe) \
+ if (rs6000_float_gprs != 0 && !global_options_set.x_rs6000_spe) \
rs6000_spe = 1; \
- if (rs6000_spe && !rs6000_explicit_options.spe_abi) \
+ if (rs6000_spe && !global_options_set.x_rs6000_spe_abi) \
rs6000_spe_abi = 1; \
} \
} while(0)



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]