> 2012-10-17  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       * config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
>       replace target_flags that gives us 63 possible switches.
>       (x_rs6000_isa_flags): Save area for rs6000_isa_flags.
>       (x_rs6000_isa_flags_explicit): Save area for
>       rs6000_isa_flags_explicit.
>       (rs6000_target_flags_explicit): Delete in favor of
>       x_rs6000_isa_flags_explicit.
>       (-mpowerpc64): Change all switches that used to be in target_flags
>       to now be in rs6000_isa_flags.  In using rs6000_isa_flags, the
>       options machinary will generate names of the form OPITON_<xxx>
>       instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of
>       MASK_<xxx>.
>       (-mpowerpc-gpopt): Likewise.
>       (-mpowerpc-gfxopt): Likewise.
>       (-mmfcrf): Likewise.
>       (-mpopcntb): Likewise.
>       (-mfprnd): Likewise.
>       (-mcmpb): Likewise.
>       (-mmfpgpr): Likewise.
>       (-maltivec): Likewise.
>       (-mhard-dfp): Likewise.
>       (-mmulhw): Likewise.
>       (-mdlmzb): Likewise.
>       (-mmultiple): Likewise.
>       (-mstring): Likewise.
>       (-msoft-float): Likewise.
>       (-mhard-float): Likewise.
>       (-mpopcntd): Likewise.
>       (-mvsx): Likewise.
>       (-mno-update): Likewise.
>       (-mupdate): Likewise.
>       (-mrecip-precision): Likewise.
>       (-mminimal-toc): Likewise.
>       (-misel): Likewise.
>       * config/rs6000/aix64.opt (-maix64): Likewise.
>       (-maix32): Likewise.
>       * config/rs6000/sysv4.opt (-mstrict-align): Likewise.
>       (-mrelocatable): Likewise.
>       (-mlittle-endian): Likewise.
>       (-mlittle): Likewise.
>       (-mbig-endian): LIkewise.
>       (-mbig): Likewise.
>       (-meabi): Likewise.
>       (-m64): Likewise.
>       (-m32): Likewise.
>       * config/rs6000/darwin.opt (-m64): Likewise.
>       (-m32): Likewise.
> 
>       * config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
>       masks used in rs6000.c here, since they are more logically in this
>       file.  Convert from being enums to just #defines, since the types
>       of these masks is now HOST_WIDE_INT instead of int.  For
>       POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
>       in the mask.  Change the use in rs6000.c not to do the OR of
>       MASK_SOFT_FLOAT.
>       (ISA_2_1_MASKS): Likewise.
>       (ISA_2_2_MASKS): Likewise.
>       (ISA_2_4_MASKS): Likewise.
>       (ISA_2_5_MASKS_EMBEDDED): Likewise.
>       (ISA_2_5_MASKS_SERVER): Likewise.
>       (POWERPC_7400_MASK): Likewise.
>       (POWERPC_MASKS): Likewise.
>       * config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
>       (ISA_2_1_MASKS): Likewise.
>       (ISA_2_2_MASKS): Likewise.
>       (ISA_2_4_MASKS): Likewise.
>       (ISA_2_5_MASKS_EMBEDDED): Likewise.
>       (ISA_2_5_MASKS_SERVER): Likewise.
>       (POWERPC_7400_MASK): Likewise.
>       (POWERPC_MASKS): Likewise.
>       (rs6000_option_override_internal): Likewise.
> 
>       * config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
>       all uses of target_flags to rs6000_isa_flags.  Change all uses of
>       target_flags_explicit to rs6000_isa_flags_explicit.  Change the
>       use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
>       we use a secondary flags word.  Save/restore/print the new flags
>       word when switching contexts with different target attributes.
>       (rs6000_option_override_internal): Likewise.
>       (rs6000_darwin_file_start): Likewise.
>       (rs6000_opt_masks): Likewise.
>       (rs6000_inner_target_options): Likewise.
>       (rs6000_pragma_target_parse): Likewise.
>       (rs6000_set_current_function): Likewise.
>       (rs6000_function_specific_save): Likewise.
>       (rs6000_function_specific_restore): Likewise.
>       (rs6000_function_specific_print): Likewise.
>       (rs6000_can_inline_p): Likewise.
>       * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
>       Likewise.
>       (rs6000_cpu_cpp_builtins): Likewise.
>       * common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
>       Likewise.
> 
>       * config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
>       Var(...) for all of the isa switches, the options machinery now
>       uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
>       Use #define to map the old name into the new name.  For switches
>       that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
>       the definition if those switches were defined.
>       (MASK_ALTIVEC): Likewise.
>       (MASK_CMPB): Likewise.
>       (MASK_DFP): Likewise.
>       (MASK_DLMZB): Likewise.
>       (MASK_EABI): Likewise.
>       (MASK_FPRND): Likewise.
>       (MASK_HARD_FLOAT): Likewise.
>       (MASK_ISEL): Likewise.
>       (MASK_MFCRF): Likewise.
>       (MASK_MFPGPR): Likewise.
>       (MASK_MULHW): Likewise.
>       (MASK_MULTIPLE): Likewise.
>       (MASK_NO_UPDATE): Likewise.
>       (MASK_POPCNTB): Likewise.
>       (MASK_POPCNTD): Likewise.
>       (MASK_PPC_GFXOPT): Likewise.
>       (MASK_PPC_GPOPT): Likewise.
>       (MASK_RECIP_PRECISION): Likewise.
>       (MASK_SOFT_FLOAT): Likewise.
>       (MASK_STRICT_ALIGN): Likewise.
>       (MASK_STRING): Likewise.
>       (MASK_UPDATE): Likewise.
>       (MASK_VSX): Likewise.
>       (MASK_POWERPC64): Likewise.
>       (MASK_64BIT): Likewise.
>       (MASK_RELOCATABLE): Likewise.
>       (MASK_LITTLE_ENDIAN): Likewise.
>       (MASK_MINIMAL_TOC): Likewise.
>       (MASK_REGNAMES): Likewise.
>       (MASK_PROTOTYPE): Likewise.
>       (rs6000_isa_flags_explicit): Define in terms of the
>       global_options_set structure.
> 
>       * gcc/config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
>       Change use of target_flags to rs6000_isa_flags,
>       target_flags_explicit to rs6000_isa_flags_explicit, and MASK_<xxx>
>       to OPTION_MASK_<xxx>.
>       * gcc/config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS):
>       Likewise.
>       * gcc/config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS):
>       Likewise.
>       * gcc/config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS):
>       Likewise.
>       * gcc/config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS):
>       Likewise.
>       * gcc/config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP):
>       Likewise.
>       (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
>       * gcc/config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP):
>       Likewise.
>       * gcc/config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP):
>       Likewise.
>       (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
>       (OPTION_LITTLE_ENDIAN): Likewise.
>       (OPTION_RELOCATABLE): Likewise.
>       (OPTION_EABI): Likewise.
>       (OPTION_PROTOTYPE): Likewise.
>       * gcc/config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
>       * gcc/config/rs6000/option-defaults.h (OPTION_MASK_64BIT):
>       Likewise.
>       (OPT_ARCH32): Likewise.
>       (OPT_ARCH64): Likewise.
>       * gcc/config/rs6000/sysv4.h (TARGET_TOC): Likewise.
>       (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
>       (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
>       (TARGET_OS_SYSV_CPP_BUILTINS): Likewise.
> 
>       * config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
>       dependency.

This apparently breaks bootstrap on PowerPC/Linux:

libtool: compile:  /nile.build/botcazou/gcc-head/powerpc-linux-gnu/./gcc/xgcc 
-B/nile.build/botcazou/gcc-head/powerpc-linux-gnu/./gcc/ -
B/nile.build/botcazou/gcc-head/install_ppc/powerpc-linux-gnu/bin/ -
B/nile.build/botcazou/gcc-head/install_ppc/powerpc-linux-gnu/lib/ -isystem 
/nile.build/botcazou/gcc-head/install_ppc/powerpc-linux-gnu/include -isystem 
/nile.build/botcazou/gcc-head/install_ppc/powerpc-linux-gnu/sys-include 
/nile.build/botcazou/gcc-head/src/libobjc/encoding.c -c -I. -
I/nile.build/botcazou/gcc-head/src/libobjc -g -O2 -W -Wall -Wwrite-strings -
Wstrict-prototypes -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions 
-I/nile.build/botcazou/gcc-head/src/libobjc/../gcc -I/nile.build/botcazou/gcc-
head/src/libobjc/../gcc/config -I../.././gcc -I/nile.build/botcazou/gcc-
head/src/libobjc/../libgcc -I../libgcc -I/nile.build/botcazou/gcc-
head/src/libobjc/../include  -fPIC -DPIC -o .libs/encoding.o
In file included from ../.././gcc/tm.h:19:0,
                 from /nile.build/botcazou/gcc-head/src/libobjc/encoding.c:37:
/nile.build/botcazou/gcc-head/src/libobjc/encoding.c: In function 
'objc_layout_structure_next_member':
../.././gcc/options.h:4286:26: error: 'rs6000_isa_flags' undeclared (first use 
in this function)
 #define TARGET_ALTIVEC ((rs6000_isa_flags & OPTION_MASK_ALTIVEC) != 0)
                          ^
/nile.build/botcazou/gcc-head/src/libobjc/../gcc/config/rs6000/sysv4.h:301:4: 
note: in expansion of macro 'TARGET_ALTIVEC'
  ((TARGET_ALTIVEC && TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE)     \
    ^
/nile.build/botcazou/gcc-head/src/libobjc/encoding.c:1138:19: note: in 
expansion of macro 'ADJUST_FIELD_ALIGN'
   desired_align = ADJUST_FIELD_ALIGN (type, desired_align);
                   ^
../.././gcc/options.h:4286:26: note: each undeclared identifier is reported 
only once for each function it appears in
 #define TARGET_ALTIVEC ((rs6000_isa_flags & OPTION_MASK_ALTIVEC) != 0)
                          ^
/nile.build/botcazou/gcc-head/src/libobjc/../gcc/config/rs6000/sysv4.h:301:4: 
note: in expansion of macro 'TARGET_ALTIVEC'
  ((TARGET_ALTIVEC && TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE)     \
    ^
/nile.build/botcazou/gcc-head/src/libobjc/encoding.c:1138:19: note: in 
expansion of macro 'ADJUST_FIELD_ALIGN'
   desired_align = ADJUST_FIELD_ALIGN (type, desired_align);
                   ^
../.././gcc/options.h:4255:30: error: 'HOST_WIDE_INT_1' undeclared (first use 
in this function)
 #define OPTION_MASK_ALTIVEC (HOST_WIDE_INT_1 << 1)
                              ^
../.././gcc/options.h:4286:45: note: in expansion of macro 
'OPTION_MASK_ALTIVEC'
 #define TARGET_ALTIVEC ((rs6000_isa_flags & OPTION_MASK_ALTIVEC) != 0)
                                             ^
/nile.build/botcazou/gcc-head/src/libobjc/../gcc/config/rs6000/sysv4.h:301:4: 
note: in expansion of macro 'TARGET_ALTIVEC'
  ((TARGET_ALTIVEC && TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE)     \
    ^
/nile.build/botcazou/gcc-head/src/libobjc/encoding.c:1138:19: note: in 
expansion of macro 'ADJUST_FIELD_ALIGN'
   desired_align = ADJUST_FIELD_ALIGN (type, desired_align);
                   ^
make[1]: *** [encoding.lo] Error 1
make[1]: Leaving directory `/nfs/nile/nile.build/botcazou/gcc-head/powerpc-
linux-gnu/powerpc-linux-gnu/libobjc'
make: *** [all-target-libobjc] Error 2

-- 
Eric Botcazou

Reply via email to