public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Clean up TARGET_ASM_NAMED_SECTION defaults
@ 2011-06-21 23:26 Joseph S. Myers
  2011-06-28 11:28 ` Ping " Joseph S. Myers
  0 siblings, 1 reply; 4+ messages in thread
From: Joseph S. Myers @ 2011-06-21 23:26 UTC (permalink / raw)
  To: gcc-patches

I noted in <http://gcc.gnu.org/ml/gcc-patches/2011-05/msg02172.html>
the fragile nature of the default of TARGET_HAVE_NAMED_SECTIONS based
on TARGET_ASM_NAMED_SECTION (relying on (a) TARGET_ASM_NAMED_SECTION
being defined in tm.h not a .c file and (b) the order in which headers
are included).

This patch simplifies the logic and makes it less fragile by
defaulting TARGET_HAVE_NAMED_SECTIONS to "true" - which is correct for
almost all targets - and then explicitly defining it to "false" for
the targets without named section support.  Although this duplicates
information from TARGET_ASM_NAMED_SECTION, I think doing so is better
than the fragile dependencies listed above.

Bootstrapped with no regressions on x86_64-unknown-linux-gnu, and
tested building cc1 and xgcc for crosses to: alpha-dec-osf5.1
hppa2.0w-hp-hpux11.23 i686-openbsd2 m32c-elf m68k-openbsd pdp11-none
vax-openbsd.  (vax-openbsd failed because of the pre-existing PR
47122.)  OK to commit?

(My inclination is that the OpenBSD targets without named sections -
presumably a.out - should be deprecated.  In the case of the x86
target FSF GCC also has a more recent OpenBSD target with named
section support; for the other architectures there isn't a more recent
target in FSF GCC and I don't know if OpenBSD's own toolchain has
since moved to ELF on M68K or VAX.)

2011-06-21  Joseph Myers  <joseph@codesourcery.com>

	* common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
	default based on TARGET_ASM_NAMED_SECTION.
	* common/common-target.def (have_named_sections): Default to true.
	* common/config/default-common.c: Don't include tm.h.
	* common/config/picochip/picochip-common.c
	(TARGET_HAVE_NAMED_SECTIONS): Don't define.
	* common/config/m32c/m32c-common.c: Remove.
	* config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
	* config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
	* config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.
	* config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
	false.

Index: gcc/common/config/m32c/m32c-common.c
===================================================================
--- gcc/common/config/m32c/m32c-common.c	(revision 175248)
+++ gcc/common/config/m32c/m32c-common.c	(working copy)
@@ -1,31 +0,0 @@
-/* Common hooks for R8C/M16C/M32C.
-   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
-
-   This file is part of GCC.
-
-   GCC is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 3, or (at your
-   option) any later version.
-
-   GCC is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-   License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "config.h"
-#include "system.h"
-#include "coretypes.h"
-#include "tm.h"
-#include "common/common-target.h"
-#include "common/common-target-def.h"
-
-#undef TARGET_HAVE_NAMED_SECTIONS
-#define TARGET_HAVE_NAMED_SECTIONS true
-
-struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER;
Index: gcc/common/config/default-common.c
===================================================================
--- gcc/common/config/default-common.c	(revision 175248)
+++ gcc/common/config/default-common.c	(working copy)
@@ -21,12 +21,10 @@ along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
-#include "tm.h" /* For TARGET_ASM_NAMED_SECTION used in default for
-		   TARGET_HAVE_NAMED_SECTIONS.  */
 #include "common/common-target.h"
 #include "common/common-target-def.h"
 
-/* FIXME: Do not include tm.h or tm_p.h here; if it is useful for a target to
+/* Do not include tm.h or tm_p.h here; if it is useful for a target to
    define some macros for the initializer in a header without defining
    targetm_common itself (for example, because of interactions with
    some hooks depending on the target OS and others on the target
Index: gcc/common/config/picochip/picochip-common.c
===================================================================
--- gcc/common/config/picochip/picochip-common.c	(revision 175248)
+++ gcc/common/config/picochip/picochip-common.c	(working copy)
@@ -31,9 +31,6 @@ static const struct default_options pico
     { OPT_LEVELS_NONE, 0, NULL, 0 }
   };
 
-#undef TARGET_HAVE_NAMED_SECTIONS
-#define TARGET_HAVE_NAMED_SECTIONS 1
-
 #undef TARGET_OPTION_OPTIMIZATION_TABLE
 #define TARGET_OPTION_OPTIMIZATION_TABLE picochip_option_optimization_table
 
Index: gcc/common/common-target.def
===================================================================
--- gcc/common/common-target.def	(revision 175248)
+++ gcc/common/common-target.def	(working copy)
@@ -86,7 +86,7 @@ DEFHOOKPOD
 DEFHOOKPOD
 (have_named_sections,
  "",
- bool, false)
+ bool, true)
 
 DEFHOOKPOD
 (always_strip_dotdot,
Index: gcc/common/common-target-def.h
===================================================================
--- gcc/common/common-target-def.h	(revision 175248)
+++ gcc/common/common-target-def.h	(working copy)
@@ -16,10 +16,6 @@
    along with this program; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */
 
-#ifdef TARGET_ASM_NAMED_SECTION
-#define TARGET_HAVE_NAMED_SECTIONS true
-#endif
-
 #include "common/common-target-hooks-def.h"
 #include "hooks.h"
 #include "common/common-targhooks.h"
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 175248)
+++ gcc/config.gcc	(working copy)
@@ -298,6 +298,7 @@ case ${target} in
 m32c*-*-*)
         cpu_type=m32c
 	tmake_file=m32c/t-m32c
+	target_has_targetm_common=no
         ;;
 alpha*-*-*)
 	cpu_type=alpha
Index: gcc/config/alpha/osf5.h
===================================================================
--- gcc/config/alpha/osf5.h	(revision 175248)
+++ gcc/config/alpha/osf5.h	(working copy)
@@ -259,3 +259,5 @@ along with GCC; see the file COPYING3.  
 
 /* Handle #pragma extern_prefix.  */
 #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1
+
+#define TARGET_HAVE_NAMED_SECTIONS false
Index: gcc/config/i386/openbsd.h
===================================================================
--- gcc/config/i386/openbsd.h	(revision 175248)
+++ gcc/config/i386/openbsd.h	(working copy)
@@ -98,3 +98,5 @@ along with GCC; see the file COPYING3.  
 
 /* OpenBSD gas currently does not support quad, so do not use it.  */
 #undef ASM_QUAD
+
+#define TARGET_HAVE_NAMED_SECTIONS false
Index: gcc/config/pdp11/pdp11.h
===================================================================
--- gcc/config/pdp11/pdp11.h	(revision 175248)
+++ gcc/config/pdp11/pdp11.h	(working copy)
@@ -664,3 +664,5 @@ extern rtx cc0_reg_rtx;
 
 
 #define COMPARE_FLAG_MODE HImode
+
+#define TARGET_HAVE_NAMED_SECTIONS false
Index: gcc/config/m68k/openbsd.h
===================================================================
--- gcc/config/m68k/openbsd.h	(revision 175248)
+++ gcc/config/m68k/openbsd.h	(working copy)
@@ -1,5 +1,5 @@
 /* Configuration file for an m68k OpenBSD target.
-   Copyright (C) 1999, 2002, 2003, 2007, 2009, 2010
+   Copyright (C) 1999, 2002, 2003, 2007, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -87,3 +87,5 @@ along with GCC; see the file COPYING3.  
 /* All configurations that don't use elf must be explicit about not using
    dwarf unwind information.  */
 #define DWARF2_UNWIND_INFO 0
+
+#define TARGET_HAVE_NAMED_SECTIONS false
Index: gcc/config/pa/som.h
===================================================================
--- gcc/config/pa/som.h	(revision 175248)
+++ gcc/config/pa/som.h	(working copy)
@@ -340,3 +340,5 @@ do {						\
 /* Shared library suffix.  Collect2 strips the version string after
    this suffix when generating constructor/destructor names.  */ 
 #define SHLIB_SUFFIX ".sl"
+
+#define TARGET_HAVE_NAMED_SECTIONS false
Index: gcc/config/vax/openbsd.h
===================================================================
--- gcc/config/vax/openbsd.h	(revision 175248)
+++ gcc/config/vax/openbsd.h	(working copy)
@@ -1,5 +1,5 @@
 /* Configuration fragment for a VAX OpenBSD target.
-   Copyright (C) 2000, 2002, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2007, 2009, 2011 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -46,3 +46,5 @@ along with GCC; see the file COPYING3.  
 
 #undef WINT_TYPE
 #define WINT_TYPE "int"
+
+#define TARGET_HAVE_NAMED_SECTIONS false

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Ping Re: Clean up TARGET_ASM_NAMED_SECTION defaults
  2011-06-21 23:26 Clean up TARGET_ASM_NAMED_SECTION defaults Joseph S. Myers
@ 2011-06-28 11:28 ` Joseph S. Myers
  2011-07-05 19:17   ` Ping^2: TARGET_HAVE_NAMED_SECTIONS cleanup Joseph S. Myers
  0 siblings, 1 reply; 4+ messages in thread
From: Joseph S. Myers @ 2011-06-28 11:28 UTC (permalink / raw)
  To: gcc-patches

Ping.  This patch 
<http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01642.html> is pending 
review.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Ping^2: TARGET_HAVE_NAMED_SECTIONS cleanup
  2011-06-28 11:28 ` Ping " Joseph S. Myers
@ 2011-07-05 19:17   ` Joseph S. Myers
  2011-07-06  8:47     ` Richard Guenther
  0 siblings, 1 reply; 4+ messages in thread
From: Joseph S. Myers @ 2011-07-05 19:17 UTC (permalink / raw)
  To: gcc-patches

Ping^2.  The patch 
<http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01642.html> is still pending 
review.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Ping^2: TARGET_HAVE_NAMED_SECTIONS cleanup
  2011-07-05 19:17   ` Ping^2: TARGET_HAVE_NAMED_SECTIONS cleanup Joseph S. Myers
@ 2011-07-06  8:47     ` Richard Guenther
  0 siblings, 0 replies; 4+ messages in thread
From: Richard Guenther @ 2011-07-06  8:47 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches

On Tue, Jul 5, 2011 at 9:16 PM, Joseph S. Myers <joseph@codesourcery.com> wrote:
> Ping^2.  The patch
> <http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01642.html> is still pending
> review.

Ok if there are no objections from target maintainers in 24h.

Thanks,
Richard.

> --
> Joseph S. Myers
> joseph@codesourcery.com
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-07-06  8:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-21 23:26 Clean up TARGET_ASM_NAMED_SECTION defaults Joseph S. Myers
2011-06-28 11:28 ` Ping " Joseph S. Myers
2011-07-05 19:17   ` Ping^2: TARGET_HAVE_NAMED_SECTIONS cleanup Joseph S. Myers
2011-07-06  8:47     ` Richard Guenther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).