powerpc rs6000_explicit_options change help request

Ralf Corsepius ralf.corsepius@rtems.org
Tue Nov 8 08:32:00 GMT 2011


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)



More information about the Gcc mailing list