Hi, The attached patch is to fix build failure on sh-linux caused with the recent Oleg's changes. Committed on trunk.
Regards, kaz -- 2013-03-14 Kaz Kojima <kkoj...@gcc.gnu.org> * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE. (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default. * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE. (SUBTARGET_OVERRIDE_OPTIONS): New. diff -up ORIG/trunk/gcc/config/sh/linux.h trunk/gcc/config/sh/linux.h --- ORIG/trunk/gcc/config/sh/linux.h 2013-02-04 09:32:36.000000000 +0900 +++ trunk/gcc/config/sh/linux.h 2013-03-14 11:25:41.000000000 +0900 @@ -39,8 +39,7 @@ along with GCC; see the file COPYING3. #undef TARGET_DEFAULT #define TARGET_DEFAULT \ - (TARGET_CPU_DEFAULT | MASK_USERMODE | TARGET_ENDIAN_DEFAULT \ - | TARGET_OPT_DEFAULT) + (TARGET_CPU_DEFAULT | TARGET_ENDIAN_DEFAULT | TARGET_OPT_DEFAULT) #define TARGET_ASM_FILE_END file_end_indicate_exec_stack @@ -146,5 +145,8 @@ along with GCC; see the file COPYING3. else if (TARGET_SH1) \ sh_atomic_model_str = "soft-imask"; \ } \ + /* Set -musermode if it hasn't been specified. */ \ + if (global_options_set.x_TARGET_USERMODE == 0) \ + TARGET_USERMODE = true; \ } \ while (0) diff -up ORIG/trunk/gcc/config/sh/netbsd-elf.h trunk/gcc/config/sh/netbsd-elf.h --- ORIG/trunk/gcc/config/sh/netbsd-elf.h 2013-02-04 09:32:37.000000000 +0900 +++ trunk/gcc/config/sh/netbsd-elf.h 2013-03-14 11:25:11.000000000 +0900 @@ -58,7 +58,7 @@ along with GCC; see the file COPYING3. #undef TARGET_DEFAULT #define TARGET_DEFAULT \ - (TARGET_CPU_DEFAULT | MASK_USERMODE | TARGET_ENDIAN_DEFAULT) + (TARGET_CPU_DEFAULT | TARGET_ENDIAN_DEFAULT) /* Define because we use the label and we do not need them. */ #define NO_PROFILE_COUNTERS 1 @@ -94,3 +94,13 @@ while (0) #define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL2 #undef SH_DIV_STR_FOR_SIZE #define SH_DIV_STR_FOR_SIZE "call2" + +#undef SUBTARGET_OVERRIDE_OPTIONS +#define SUBTARGET_OVERRIDE_OPTIONS \ + do \ + { \ + /* Set -musermode if it hasn't been specified. */ \ + if (global_options_set.x_TARGET_USERMODE == 0) \ + TARGET_USERMODE = true; \ + } \ + while (0)