If further testing is needed on this patch I can do it, but I need more information what variations need to be tested?

It's not clear to me what distro/gcc/glibc versions and type of build causes the error. I have not been able to reproduce the
original problem.

On 06/15/2015 01:58 PM, Andreas Schwab wrote:
        * go-lang.c (go_langhook_init_options_struct): Don't set
        x_flag_split_stack.
        (go_langhook_post_options): Set it here instead.
---
  gcc/go/go-lang.c | 9 +++++----
  1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c
index ce4dd9b..d952e0f 100644
--- a/gcc/go/go-lang.c
+++ b/gcc/go/go-lang.c
@@ -158,10 +158,6 @@ go_langhook_init_options_struct (struct gcc_options *opts)
    opts->x_flag_errno_math = 0;
    opts->frontend_set_flag_errno_math = true;

-  /* We turn on stack splitting if we can.  */
-  if (targetm_common.supports_split_stack (false, opts))
-    opts->x_flag_split_stack = 1;
-
    /* Exceptions are used to handle recovering from panics.  */
    opts->x_flag_exceptions = 1;
    opts->x_flag_non_call_exceptions = 1;
@@ -295,6 +291,11 @@ go_langhook_post_options (const char **pfilename 
ATTRIBUTE_UNUSED)
        && global_options.x_write_symbols == NO_DEBUG)
      global_options.x_write_symbols = PREFERRED_DEBUGGING_TYPE;

+  /* We turn on stack splitting if we can.  */
+  if (!global_options_set.x_flag_split_stack
+      && targetm_common.supports_split_stack (false, &global_options))
+    global_options.x_flag_split_stack = 1;
+
    /* Returning false means that the backend should be used.  */
    return false;
  }

Reply via email to