re PR go/64595 (go programs abort when debug info is stripped)
PR go/64595 * go-lang.c (go_langhook_init_options_struct): Set default debug_info_level. (go_langhook_post_options): If debug_info_level is still the default, make sure write_symbols is set. * gccgo.texi (Invoking gccgo): Document that -g1 is the default. From-SVN: r220064
This commit is contained in:
parent
af955a5298
commit
818424b256
|
@ -1,3 +1,12 @@
|
|||
2015-01-23 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
PR go/64595
|
||||
* go-lang.c (go_langhook_init_options_struct): Set default
|
||||
debug_info_level.
|
||||
(go_langhook_post_options): If debug_info_level is still the
|
||||
default, make sure write_symbols is set.
|
||||
* gccgo.texi (Invoking gccgo): Document that -g1 is the default.
|
||||
|
||||
2015-01-16 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* go-gcc.cc (Gcc_backend::call_expression): Add chain_expr argument.
|
||||
|
|
|
@ -223,6 +223,18 @@ may be used. Or the checks may be removed via
|
|||
@option{-fno-go-check-divide-overflow}. This option is currently on
|
||||
by default, but in the future may be off by default on systems that do
|
||||
not require it.
|
||||
|
||||
@item -g
|
||||
@cindex @option{-g for gccgo}
|
||||
This is the standard @command{gcc} option (@pxref{Debugging Options, ,
|
||||
Debugging Options, gcc, Using the GNU Compiler Collection (GCC)}). It
|
||||
is mentioned here because by default @command{gccgo} turns on
|
||||
debugging information generation with the equivalent of the standard
|
||||
option @option{-g1}. This is because Go programs require debugging
|
||||
information to be available in order to get backtrace information. An
|
||||
explicit @option{-g0} may be used to disable the generation of
|
||||
debugging information, in which case certain standard library
|
||||
functions, such as @code{runtime.Callers}, will not operate correctly.
|
||||
@end table
|
||||
|
||||
@c man end
|
||||
|
|
|
@ -171,6 +171,12 @@ go_langhook_init_options_struct (struct gcc_options *opts)
|
|||
/* Exceptions are used to handle recovering from panics. */
|
||||
opts->x_flag_exceptions = 1;
|
||||
opts->x_flag_non_call_exceptions = 1;
|
||||
|
||||
/* Go programs expect runtime.Callers to work, and that uses
|
||||
libbacktrace that uses debug info. Set the debug info level to 1
|
||||
by default. In post_options we will set the debug type if the
|
||||
debug info level was not set back to 0 on the command line. */
|
||||
opts->x_debug_info_level = DINFO_LEVEL_TERSE;
|
||||
}
|
||||
|
||||
/* Infrastructure for a vector of char * pointers. */
|
||||
|
@ -289,6 +295,12 @@ go_langhook_post_options (const char **pfilename ATTRIBUTE_UNUSED)
|
|||
if (!global_options_set.x_flag_optimize_sibling_calls)
|
||||
global_options.x_flag_optimize_sibling_calls = 0;
|
||||
|
||||
/* If the debug info level is still 1, as set in init_options, make
|
||||
sure that some debugging type is selected. */
|
||||
if (global_options.x_debug_info_level == DINFO_LEVEL_TERSE
|
||||
&& global_options.x_write_symbols == NO_DEBUG)
|
||||
global_options.x_write_symbols = PREFERRED_DEBUGGING_TYPE;
|
||||
|
||||
/* Returning false means that the backend should be used. */
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue