From db66903a3841ff91bd1ef7a9b17e1cb56003d573 Mon Sep 17 00:00:00 2001 From: ro Date: Mon, 7 May 2012 11:07:31 +0000 Subject: [PATCH] Don't use DWARF 4 on Solaris * config/sol2.c (solaris_override_options): New function. * config/sol2-protos.h (solaris_override_options): Declare. * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187230 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/sol2-protos.h | 3 ++- gcc/config/sol2.c | 12 +++++++++++- gcc/config/sol2.h | 6 ++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6317962..089dd9c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-05-07 Rainer Orth + + * config/sol2.c (solaris_override_options): New function. + * config/sol2-protos.h (solaris_override_options): Declare. + * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define. + 2012-05-07 Richard Guenther * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return diff --git a/gcc/config/sol2-protos.h b/gcc/config/sol2-protos.h index 9f31ce3..3d24e92 100644 --- a/gcc/config/sol2-protos.h +++ b/gcc/config/sol2-protos.h @@ -1,6 +1,6 @@ /* Operating system specific prototypes to be used when targeting GCC for any Solaris 2 system. - Copyright 2004, 2007, 2010, 2011 Free Software Foundation, Inc. + Copyright 2004, 2007, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -24,6 +24,7 @@ extern void solaris_elf_asm_comdat_section (const char *, unsigned int, tree); extern void solaris_file_end (void); extern void solaris_insert_attributes (tree, tree *); extern void solaris_output_init_fini (FILE *, tree); +extern void solaris_override_options (void); /* In sol2-c.c. */ extern void solaris_register_pragmas (void); diff --git a/gcc/config/sol2.c b/gcc/config/sol2.c index b1f0196..b15b895 100644 --- a/gcc/config/sol2.c +++ b/gcc/config/sol2.c @@ -1,5 +1,6 @@ /* General Solaris system support. - Copyright (C) 2004, 2005 , 2007, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2004, 2005 , 2007, 2010, 2011, 2012 + Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. @@ -282,3 +283,12 @@ solaris_file_end (void) htab_traverse (solaris_comdat_htab, solaris_define_comdat_signature, NULL); } + +void +solaris_override_options (void) +{ + /* Don't emit DWARF3/4 unless specifically selected. Solaris ld cannot + handle CIE version 3 in .eh_frame. */ + if (!global_options_set.x_dwarf_version) + dwarf_version = 2; +} diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index 670dbaa..4cbb308 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -99,6 +99,12 @@ along with GCC; see the file COPYING3. If not see TARGET_SUB_OS_CPP_BUILTINS(); \ } while (0) +#define SUBTARGET_OVERRIDE_OPTIONS \ + do { \ + solaris_override_options (); \ + } while (0) + + /* It's safe to pass -s always, even if -g is not used. Those options are handled by both Sun as and GNU as. */ #define ASM_SPEC_BASE \ -- 2.7.4