shift flag_next/gnu_runtime to modern opts system.

gcc:

	* doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
	* doc/tm.texi: Regenerate.
	* flags.h (flag_next_runtime): Remove references.
	* toplev.c: Likewise.
	* defaults.h (NEXT_OBJC_RUNTIME): Provide default.
	* gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
	* config/darwin.c (darwin_override_options): Provide default
	Objective-C abi settings and target conflict checks.
	* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
	code. Adjust indenting.

gcc/c-family:

	* c.opt (fgnu-runtime): Provide full description.
	(fnext-runtime): Likewise.
	* c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.

From-SVN: r181837
This commit is contained in:
Iain Sandoe 2011-11-30 10:42:58 +00:00
parent 0f14d442fc
commit fea3ca9130
12 changed files with 79 additions and 50 deletions

View File

@ -1,3 +1,16 @@
2011-11-30 Iain Sandoe <iains@gcc.gnu.org>
* doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
* doc/tm.texi: Regenerate.
* flags.h (flag_next_runtime): Remove references.
* toplev.c: Likewise.
* defaults.h (NEXT_OBJC_RUNTIME): Provide default.
* gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
* config/darwin.c (darwin_override_options): Provide default
Objective-C abi settings and target conflict checks.
* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
code. Adjust indenting.
2011-11-29 Joseph Myers <joseph@codesourcery.com> 2011-11-29 Joseph Myers <joseph@codesourcery.com>
* config/sh/sh.h (enum reg_class, REG_CLASS_NAMES) * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)

View File

@ -1,3 +1,9 @@
2011-11-30 Iain Sandoe <iains@gcc.gnu.org>
* c.opt (fgnu-runtime): Provide full description.
(fnext-runtime): Likewise.
* c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.
2011-11-28 Andrew MacLeod <amacleod@redhat.com> 2011-11-28 Andrew MacLeod <amacleod@redhat.com>
* c-cpp-builtin.c (cpp_atomic_builtins):New. Emit all atomic * c-cpp-builtin.c (cpp_atomic_builtins):New. Emit all atomic

View File

@ -604,14 +604,6 @@ c_common_handle_option (size_t scode, const char *arg, int value,
cpp_opts->extended_identifiers = value; cpp_opts->extended_identifiers = value;
break; break;
case OPT_fgnu_runtime:
flag_next_runtime = !value;
break;
case OPT_fnext_runtime:
flag_next_runtime = value;
break;
case OPT_foperator_names: case OPT_foperator_names:
cpp_opts->operator_names = value; cpp_opts->operator_names = value;
break; break;

View File

@ -810,7 +810,7 @@ C++ ObjC++ Var(flag_no_gnu_keywords, 0)
Recognize GNU-defined keywords Recognize GNU-defined keywords
fgnu-runtime fgnu-runtime
ObjC ObjC++ ObjC ObjC++ Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME)
Generate code for GNU runtime environment Generate code for GNU runtime environment
fgnu89-inline fgnu89-inline
@ -872,7 +872,7 @@ fnew-abi
C++ ObjC++ Ignore Warn(switch %qs is no longer supported) C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
fnext-runtime fnext-runtime
ObjC ObjC++ ObjC ObjC++ Report RejectNegative Var(flag_next_runtime)
Generate code for NeXT (Apple Mac OS X) runtime environment Generate code for NeXT (Apple Mac OS X) runtime environment
fnil-receivers fnil-receivers

View File

@ -2942,6 +2942,33 @@ darwin_override_options (void)
/* Earlier versions are not specifically accounted, until required. */ /* Earlier versions are not specifically accounted, until required. */
} }
/* In principle, this should be c-family only. However, we really need to
set sensible defaults for LTO as well, since the section selection stuff
should check for correctness re. the ABI. TODO: check and provide the
flags (runtime & ABI) from the lto wrapper). */
/* Unless set, force ABI=2 for NeXT and m64, 0 otherwise. */
if (!global_options_set.x_flag_objc_abi)
global_options.x_flag_objc_abi
= (!flag_next_runtime)
? 0
: (TARGET_64BIT ? 2
: (generating_for_darwin_version >= 9) ? 1
: 0);
/* Objective-C family ABI 2 is only valid for next/m64 at present. */
if (global_options_set.x_flag_objc_abi && flag_next_runtime)
{
if (TARGET_64BIT && global_options.x_flag_objc_abi < 2)
error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 must be"
" used for %<-m64%> targets with"
" %<-fnext-runtime%>");
if (!TARGET_64BIT && global_options.x_flag_objc_abi >= 2)
error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 is not"
" supported on %<-m32%> targets with"
" %<-fnext-runtime%>");
}
/* Don't emit DWARF3/4 unless specifically selected. This is a /* Don't emit DWARF3/4 unless specifically selected. This is a
workaround for tool bugs. */ workaround for tool bugs. */
if (!global_options_set.x_dwarf_strict) if (!global_options_set.x_dwarf_strict)

View File

@ -112,7 +112,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* Default to using the NeXT-style runtime, since that's what is /* Default to using the NeXT-style runtime, since that's what is
pre-installed on Darwin systems. */ pre-installed on Darwin systems. */
#define NEXT_OBJC_RUNTIME #define NEXT_OBJC_RUNTIME 1
/* Don't default to pcc-struct-return, because gcc is the only compiler, and /* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */ we want to retain compatibility with older gcc versions. */
@ -140,20 +140,8 @@ extern GTY(()) int darwin_ms_struct;
} while (0) } while (0)
#define SUBTARGET_C_COMMON_OVERRIDE_OPTIONS do { \ #define SUBTARGET_C_COMMON_OVERRIDE_OPTIONS do { \
/* Unless set, force ABI=2 for NeXT and m64, 0 otherwise. */ \ if (!global_options_set.x_flag_objc_sjlj_exceptions) \
if (!global_options_set.x_flag_objc_abi) \ global_options.x_flag_objc_sjlj_exceptions = \
global_options.x_flag_objc_abi \
= (flag_next_runtime && TARGET_64BIT) ? 2 : 0; \
/* Objective-C family ABI 2 is only valid for next/m64 at present. */ \
if (global_options_set.x_flag_objc_abi && flag_next_runtime) \
if (TARGET_64BIT && global_options.x_flag_objc_abi < 2) \
error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 is only" \
" supported on %<-m64%> targets for" \
" %<-fnext-runtime%>"); \
/* Sort out ObjC exceptions: If the runtime is NeXT we default to \
sjlj for m32 only. */ \
if (!global_options_set.x_flag_objc_sjlj_exceptions) \
global_options.x_flag_objc_sjlj_exceptions = \
flag_next_runtime && !TARGET_64BIT; \ flag_next_runtime && !TARGET_64BIT; \
if (flag_mkernel || flag_apple_kext) \ if (flag_mkernel || flag_apple_kext) \
{ \ { \

View File

@ -793,6 +793,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define ACCUMULATE_OUTGOING_ARGS 0 #define ACCUMULATE_OUTGOING_ARGS 0
#endif #endif
/* By default, use the GNU runtime for Objective C. */
#ifndef NEXT_OBJC_RUNTIME
#define NEXT_OBJC_RUNTIME 0
#endif
/* Supply a default definition for PUSH_ARGS. */ /* Supply a default definition for PUSH_ARGS. */
#ifndef PUSH_ARGS #ifndef PUSH_ARGS
#ifdef PUSH_ROUNDING #ifdef PUSH_ROUNDING

View File

@ -5351,13 +5351,18 @@ void sincosl(long double x, long double *sin, long double *cos);
@end defmac @end defmac
@defmac NEXT_OBJC_RUNTIME @defmac NEXT_OBJC_RUNTIME
Define this macro to generate code for Objective-C message sending using Set this macro to 1 to use the "NeXT" Objective-C message sending conventions
the calling convention of the NeXT system. This calling convention by default. This calling convention involves passing the object, the selector
involves passing the object, the selector and the method arguments all and the method arguments all at once to the method-lookup library function.
at once to the method-lookup library function. This is the usual setting when targeting Darwin/Mac OS X systems, which have
the NeXT runtime installed.
The default calling convention passes just the object and the selector If the macro is set to 0, the "GNU" Objective-C message sending convention
to the lookup function, which returns a pointer to the method. will be used by default. This convention passes just the object and the
selector to the method-lookup function, which returns a pointer to the method.
In either case, it remains possible to select code-generation for the alternate
scheme, by means of compiler command line switches.
@end defmac @end defmac
@node Addressing Modes @node Addressing Modes

View File

@ -5289,13 +5289,18 @@ void sincosl(long double x, long double *sin, long double *cos);
@end defmac @end defmac
@defmac NEXT_OBJC_RUNTIME @defmac NEXT_OBJC_RUNTIME
Define this macro to generate code for Objective-C message sending using Set this macro to 1 to use the "NeXT" Objective-C message sending conventions
the calling convention of the NeXT system. This calling convention by default. This calling convention involves passing the object, the selector
involves passing the object, the selector and the method arguments all and the method arguments all at once to the method-lookup library function.
at once to the method-lookup library function. This is the usual setting when targeting Darwin/Mac OS X systems, which have
the NeXT runtime installed.
The default calling convention passes just the object and the selector If the macro is set to 0, the "GNU" Objective-C message sending convention
to the lookup function, which returns a pointer to the method. will be used by default. This convention passes just the object and the
selector to the method-lookup function, which returns a pointer to the method.
In either case, it remains possible to select code-generation for the alternate
scheme, by means of compiler command line switches.
@end defmac @end defmac
@node Addressing Modes @node Addressing Modes

View File

@ -56,10 +56,6 @@ extern bool final_insns_dump_p;
/* Nonzero means make permerror produce warnings instead of errors. */ /* Nonzero means make permerror produce warnings instead of errors. */
extern int flag_permissive; extern int flag_permissive;
/* Generate code for GNU or NeXT Objective-C runtime environment. */
extern int flag_next_runtime;
/* Other basic status info about current function. */ /* Other basic status info about current function. */

View File

@ -33,7 +33,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options ATTRIBUTE_UN
/* Systems which use the NeXT runtime by default should arrange /* Systems which use the NeXT runtime by default should arrange
for the shared libgcc to be used when -fgnu-runtime is passed for the shared libgcc to be used when -fgnu-runtime is passed
through specs. */ through specs. */
#if defined(ENABLE_SHARED_LIBGCC) && ! defined(NEXT_OBJC_RUNTIME) #if defined(ENABLE_SHARED_LIBGCC) && ! NEXT_OBJC_RUNTIME
unsigned int i; unsigned int i;
/* The new argument list will be contained in this. */ /* The new argument list will be contained in this. */

View File

@ -146,14 +146,6 @@ HOST_WIDE_INT random_seed;
/* -f flags. */ /* -f flags. */
/* Generate code for GNU or NeXT Objective-C runtime environment. */
#ifdef NEXT_OBJC_RUNTIME
int flag_next_runtime = 1;
#else
int flag_next_runtime = 0;
#endif
/* Nonzero means make permerror produce warnings instead of errors. */ /* Nonzero means make permerror produce warnings instead of errors. */
int flag_permissive = 0; int flag_permissive = 0;