public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 4.6.0-0.6
Date: Mon, 29 Jun 2026 12:25:04 GMT	[thread overview]
Message-ID: <178273590404.1.17085592462405685611.rpms-gcc-6b781854a6bf@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 6b781854a6bfcec591d57ad90b7e37502ba9bdc5
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2011-02-05T09:43:14+01:00
Stats  : +240/-653 in 9 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/6b781854a6bfcec591d57ad90b7e37502ba9bdc5?branch=rhel-f41-base

Log:
4.6.0-0.6

---
diff --git a/.gitignore b/.gitignore
index 4d8f160..95935dd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /fastjar-0.97.tar.gz
 /gcc-4.6.0-20110128.tar.bz2
+/gcc-4.6.0-20110205.tar.bz2

diff --git a/gcc.spec b/gcc.spec
index 683faf0..17b8def 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20110128
-%global SVNREV 169352
+%global DATE 20110205
+%global SVNREV 169849
 %global gcc_version 4.6.0
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 0.5
+%global gcc_release 0.6
 %global _unpackaged_files_terminate_build 0
 %global multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
@@ -164,12 +164,10 @@ Patch14: gcc46-pr38757.patch
 Patch15: gcc46-libstdc++-docs.patch
 Patch17: gcc46-no-add-needed.patch
 Patch18: gcc46-unwind-debughook-sdt.patch
-Patch19: gcc46-pr47106-revert.patch
-Patch20: gcc46-pr46890.patch
-Patch21: gcc46-ppl-0.10.patch
-Patch22: gcc46-pr31490.patch
-Patch23: gcc46-Woverlength-string.patch
-Patch24: gcc46-pr45136-revert.patch
+Patch19: gcc46-ppl-0.10.patch
+Patch20: gcc46-Woverlength-string.patch
+Patch21: gcc46-Woverlength-string-asm.patch
+Patch22: gcc46-pr47610.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -600,12 +598,10 @@ not stable, so plugins must be rebuilt any time GCC is updated.
 %endif
 %patch17 -p0 -b .no-add-needed~
 %patch18 -p0 -b .unwind-debughook-sdt~
-%patch19 -p0 -b .pr47106-revert~
-%patch20 -p0 -b .pr46890~
-%patch21 -p0 -b .ppl-0.10~
-%patch22 -p0 -b .pr31490~
-%patch23 -p0 -b .Woverlength-string~
-%patch24 -p0 -b .pr45136-revert~
+%patch19 -p0 -b .ppl-0.10~
+%patch20 -p0 -b .Woverlength-string~
+%patch21 -p0 -b .Woverlength-string-asm~
+%patch22 -p0 -b .pr47610~
 
 # This testcase doesn't compile.
 rm libjava/testsuite/libjava.lang/PR35020*
@@ -2341,6 +2337,30 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
 
 %changelog
+* Sat Feb  5 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.6
+- update from trunk
+  - PRs bootstrap/47044, bootstrap/47147, c++/29571, c++/46890, c++/47311,
+	c++/47398, c++/47416, c++/47589, debug/43092, debug/47498,
+	debug/47501, driver/47547, fortran/35810, fortran/45170,
+	fortran/47042, fortran/47082, fortran/47350, fortran/47455,
+	fortran/47463, fortran/47507, fortran/47519, fortran/47523,
+	fortran/47531, fortran/47565, fortran/47572, gcc/46692,
+	inline-asm/23200, java/21206, libfortran/47571, libgcj/44341,
+	libgfortran/47434, libquadmath/47293, libstdc++/46914,
+	libstdc++/47560, lto/47274, middle-end/47543,
+	rtl-optimization/43494, rtl-optimization/44031,
+	rtl-optimization/47525, target/42894, target/45325,
+	target/47272, target/47312, target/47564, target/47580,
+	tree-optimization/40979, tree-optimization/43695,
+	tree-optimization/45122, tree-optimization/46194,
+	tree-optimization/47538, tree-optimization/47541,
+	tree-optimization/47555, tree-optimization/47559,
+	tree-optimization/47561, tree-optimization/47566,
+	tree-optimization/47576
+- suppress -Woverlength-string warnings inside of __asm__
+- fix section flags conflict handling for relro sections (#674890,
+  PR middle-end/47610)
+
 * Fri Jan 28 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.5
 - update from trunk
   - PRs bootstrap/47467, c++/43601, c++/47476, c/21659, c/43082, c/47473,

diff --git a/gcc46-Woverlength-string-asm.patch b/gcc46-Woverlength-string-asm.patch
new file mode 100644
index 0000000..47aae37
--- /dev/null
+++ b/gcc46-Woverlength-string-asm.patch
@@ -0,0 +1,180 @@
+2011-02-02  Tom Tromey  <tromey@redhat.com>
+
+	* c-parser.c (c_parser_asm_string_literal): Clear
+	warn_overlength_strings.
+
+	* gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file.
+	* gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file.
+	* gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file.
+
+--- gcc/c-parser.c
++++ gcc/c-parser.c
+@@ -3264,6 +3264,8 @@ static tree
+ c_parser_asm_string_literal (c_parser *parser)
+ {
+   tree str;
++  int save_flag = warn_overlength_strings;
++  warn_overlength_strings = 0;
+   if (c_parser_next_token_is (parser, CPP_STRING))
+     {
+       str = c_parser_peek_token (parser)->value;
+@@ -3281,6 +3283,7 @@ c_parser_asm_string_literal (c_parser *parser)
+       c_parser_error (parser, "expected string literal");
+       str = NULL_TREE;
+     }
++  warn_overlength_strings = save_flag;
+   return str;
+ }
+ 
+--- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
++++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
+@@ -0,0 +1,47 @@
++/* -Woverlength-strings complains about string constants which are too long
++   for the C standard's "minimum maximum" limits.  It is off by default,
++   but implied by -pedantic.  */
++
++/* { dg-options "-std=c89 -pedantic" } */
++
++#define TEN "          "
++#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
++#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
++
++/* C89's minimum-maximum is 509. */
++__asm__ (HUN HUN HUN HUN HUN TEN);
++
++/* C99's minimum-maximum is 4095.  */
++__asm__ (
++  THO THO THO THO     /* 4000 */
++  TEN TEN TEN TEN TEN /* 4050 */
++  TEN TEN TEN TEN     /* 4090 */
++  "123456");
++
++void
++f (void)
++{
++  /* C89's minimum-maximum is 509. */
++  __asm__ (HUN HUN HUN HUN HUN TEN);
++  __asm__ (HUN HUN HUN HUN HUN TEN : : );
++  __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
++
++  /* C99's minimum-maximum is 4095.  */
++  __asm__ (
++	   THO THO THO THO     /* 4000 */
++	   TEN TEN TEN TEN TEN /* 4050 */
++	   TEN TEN TEN TEN     /* 4090 */
++	   "123456");
++  __asm__ (
++	   THO THO THO THO     /* 4000 */
++	   TEN TEN TEN TEN TEN /* 4050 */
++	   TEN TEN TEN TEN     /* 4090 */
++	   "123456" : : );
++  __asm__ goto (
++		THO THO THO THO     /* 4000 */
++		TEN TEN TEN TEN TEN /* 4050 */
++		TEN TEN TEN TEN     /* 4090 */
++		"123456" : : : : label);
++
++ label: ;
++}
+--- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
++++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
+@@ -0,0 +1,48 @@
++/* -Woverlength-strings complains about string constants which are too long
++   for the C standard's "minimum maximum" limits.  It is off by default,
++   but implied by -pedantic.  */
++
++/* { dg-options "-std=c90 -pedantic" } */
++
++#define TEN "          "
++#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
++#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
++
++/* C89's minimum-maximum is 509. */
++__asm__ (HUN HUN HUN HUN HUN TEN);
++
++/* C99's minimum-maximum is 4095.  */
++__asm__ (
++  THO THO THO THO     /* 4000 */
++  TEN TEN TEN TEN TEN /* 4050 */
++  TEN TEN TEN TEN     /* 4090 */
++  "123456");
++
++void
++f (void)
++{
++  /* C89's minimum-maximum is 509. */
++  __asm__ (HUN HUN HUN HUN HUN TEN);
++  __asm__ (HUN HUN HUN HUN HUN TEN : :);
++  __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
++
++  /* C99's minimum-maximum is 4095.  */
++  __asm__ (
++	   THO THO THO THO     /* 4000 */
++	   TEN TEN TEN TEN TEN /* 4050 */
++	   TEN TEN TEN TEN     /* 4090 */
++	   "123456");
++  __asm__ (
++	   THO THO THO THO     /* 4000 */
++	   TEN TEN TEN TEN TEN /* 4050 */
++	   TEN TEN TEN TEN     /* 4090 */
++	   "123456" : :);
++  __asm__ goto (
++		THO THO THO THO     /* 4000 */
++		TEN TEN TEN TEN TEN /* 4050 */
++		TEN TEN TEN TEN     /* 4090 */
++		"123456" : : : : label);
++
++ label: ;
++}
++
+--- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
++++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
+@@ -0,0 +1,48 @@
++/* -Woverlength-strings complains about string constants which are too long
++   for the C standard's "minimum maximum" limits.  It is off by default,
++   but implied by -pedantic.  */
++
++/* { dg-options "-std=c99 -pedantic" } */
++
++#define TEN "          "
++#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
++#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
++
++/* C89's minimum-maximum is 509. */
++__asm__ (HUN HUN HUN HUN HUN TEN);
++
++/* C99's minimum-maximum is 4095.  */
++__asm__ (
++  THO THO THO THO     /* 4000 */
++  TEN TEN TEN TEN TEN /* 4050 */
++  TEN TEN TEN TEN     /* 4090 */
++  "123456");
++
++void
++f (void)
++{
++  /* C89's minimum-maximum is 509. */
++  __asm__ (HUN HUN HUN HUN HUN TEN);
++  __asm__ (HUN HUN HUN HUN HUN TEN : :);
++  __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
++
++  /* C99's minimum-maximum is 4095.  */
++  __asm__ (
++	   THO THO THO THO     /* 4000 */
++	   TEN TEN TEN TEN TEN /* 4050 */
++	   TEN TEN TEN TEN     /* 4090 */
++	   "123456");
++  __asm__ (
++	   THO THO THO THO     /* 4000 */
++	   TEN TEN TEN TEN TEN /* 4050 */
++	   TEN TEN TEN TEN     /* 4090 */
++	   "123456" : :);
++  __asm__ goto (
++		THO THO THO THO     /* 4000 */
++		TEN TEN TEN TEN TEN /* 4050 */
++		TEN TEN TEN TEN     /* 4090 */
++		"123456" : : : : label);
++
++ label: ;
++}
++

diff --git a/gcc46-pr31490.patch b/gcc46-pr31490.patch
deleted file mode 100644
index 80b7aae..0000000
--- a/gcc46-pr31490.patch
+++ /dev/null
@@ -1,289 +0,0 @@
-2011-01-27  Jakub Jelinek  <jakub@redhat.com>
-
-	PR middle-end/31490
-	* output.h (SECTION_RELRO): Define.
-	(SECTION_MACH_DEP): Adjust.
-	(get_variable_section): New prototype.
-	* config/darwin.h (SECTION_NO_ANCHOR): Adjust.
-	* varpool.c (varpool_finalize_named_section_flags): New function.
-	(varpool_assemble_pending_decls): Call it.
-	* cgraph.h (varpool_finalize_named_section_flags): New prototype.
-	* cgraphunit.c (cgraph_output_in_order): Call
-	varpool_finalize_named_section_flags.
-	* varasm.c (get_section): Allow section flags conflicts between
-	relro and read-only sections if the section hasn't been declared yet.
-	Set SECTION_OVERRIDE after diagnosing section type conflict.
-	(get_variable_section): No longer static.
-	(default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
-	readonly sections that need relocations.
-	(decl_readonly_section_1): New function.
-	(decl_readonly_section): Use it.
-
-	Revert:
-	2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
-		    Steve Ellcey  <sje@cup.hp.com>
-
-	PR middle-end/31490
-	* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
-	if section attribute used.
-
-	* gcc.dg/pr31490-2.c: New test.
-	* gcc.dg/pr31490-3.c: New test.
-	* gcc.dg/pr31490-4.c: New test.
-
---- gcc/output.h.jj	2011-01-27 17:33:28.200496345 +0100
-+++ gcc/output.h	2011-01-27 17:40:33.355649071 +0100
-@@ -441,7 +441,8 @@ extern void no_asm_to_stream (FILE *);
- #define SECTION_DECLARED 0x100000	/* section has been used */
- #define SECTION_STYLE_MASK 0x600000	/* bits used for SECTION_STYLE */
- #define SECTION_COMMON   0x800000	/* contains common data */
--#define SECTION_MACH_DEP 0x1000000	/* subsequent bits reserved for target */
-+#define SECTION_RELRO	 0x1000000	/* data is readonly after relocation processing */
-+#define SECTION_MACH_DEP 0x2000000	/* subsequent bits reserved for target */
- 
- /* This SECTION_STYLE is used for unnamed sections that we can switch
-    to using a special assembler directive.  */
-@@ -585,6 +586,7 @@ extern section *get_unnamed_section (uns
- 				     const void *);
- extern section *get_section (const char *, unsigned int, tree);
- extern section *get_named_section (tree, const char *, int);
-+extern section *get_variable_section (tree, bool);
- extern void place_block_symbol (rtx);
- extern rtx get_section_anchor (struct object_block *, HOST_WIDE_INT,
- 			       enum tls_model);
---- gcc/varpool.c.jj	2011-01-27 17:33:28.229830104 +0100
-+++ gcc/varpool.c	2011-01-27 19:48:24.567639053 +0100
-@@ -565,11 +565,29 @@ varpool_remove_unreferenced_decls (void)
-   varpool_analyze_pending_decls ();
- }
- 
-+/* For variables in named sections make sure get_variable_section
-+   is called before we switch to those sections.  Then section
-+   conflicts between read-only and read-only requiring relocations
-+   sections can be resolved.  */
-+void
-+varpool_finalize_named_section_flags (struct varpool_node *node)
-+{
-+  if (!TREE_ASM_WRITTEN (node->decl)
-+      && !node->alias
-+      && !node->in_other_partition
-+      && !DECL_EXTERNAL (node->decl)
-+      && TREE_CODE (node->decl) == VAR_DECL
-+      && !DECL_HAS_VALUE_EXPR_P (node->decl)
-+      && DECL_SECTION_NAME (node->decl))
-+    get_variable_section (node->decl, false);
-+}
-+
- /* Output all variables enqueued to be assembled.  */
- bool
- varpool_assemble_pending_decls (void)
- {
-   bool changed = false;
-+  struct varpool_node *node;
- 
-   if (seen_error ())
-     return false;
-@@ -580,6 +598,9 @@ varpool_assemble_pending_decls (void)
-      elsewhere.  */
-   varpool_analyze_pending_decls ();
- 
-+  for (node = varpool_nodes_queue; node; node = node->next_needed)
-+    varpool_finalize_named_section_flags (node);
-+
-   while (varpool_nodes_queue)
-     {
-       struct varpool_node *node = varpool_nodes_queue;
---- gcc/config/darwin.h.jj	2011-01-27 17:33:28.217391021 +0100
-+++ gcc/config/darwin.h	2011-01-27 17:40:33.356655497 +0100
-@@ -654,7 +654,7 @@ int darwin_label_is_anonymous_local_objc
- /* Private flag applied to disable section-anchors in a particular section.
-    This needs to be kept in sync with the flags used by varasm.c (defined in
-    output.h).  */
--#define SECTION_NO_ANCHOR 0x2000000
-+#define SECTION_NO_ANCHOR 0x4000000
- 
- /* Declare the section variables.  */
- #ifndef USED_FOR_TARGET
---- gcc/cgraph.h.jj	2011-01-27 17:33:28.011433405 +0100
-+++ gcc/cgraph.h	2011-01-27 17:33:28.011433405 +0100
-@@ -720,6 +720,7 @@ bool cgraph_node_can_be_local_p (struct 
- 
- struct varpool_node * varpool_get_node (const_tree decl);
- void varpool_remove_node (struct varpool_node *node);
-+void varpool_finalize_named_section_flags (struct varpool_node *node);
- bool varpool_assemble_pending_decls (void);
- bool varpool_assemble_decl (struct varpool_node *node);
- bool varpool_analyze_pending_decls (void);
---- gcc/varasm.c.jj	2011-01-27 17:40:25.196565130 +0100
-+++ gcc/varasm.c	2011-01-27 17:40:33.361429176 +0100
-@@ -119,6 +119,7 @@ static void output_addressed_constants (
- static unsigned HOST_WIDE_INT array_size_for_constructor (tree);
- static unsigned min_align (unsigned, unsigned);
- static void globalize_decl (tree);
-+static bool decl_readonly_section_1 (enum section_category);
- #ifdef BSS_SECTION_ASM_OP
- #ifdef ASM_OUTPUT_BSS
- static void asm_output_bss (FILE *, tree, const char *,
-@@ -294,11 +295,31 @@ get_section (const char *name, unsigned 
-       if ((sect->common.flags & ~SECTION_DECLARED) != flags
- 	  && ((sect->common.flags | flags) & SECTION_OVERRIDE) == 0)
- 	{
-+	  /* It is fine if one of the section flags is
-+	     SECTION_WRITE | SECTION_RELRO and the other has none of these
-+	     flags (i.e. read-only) in named sections and either the
-+	     section hasn't been declared yet or has been declared as writable.
-+	     In that case just make sure the resulting flags are
-+	     SECTION_WRITE | SECTION_RELRO, ie. writable only because of
-+	     relocations.  */
-+	  if (((sect->common.flags ^ flags) & (SECTION_WRITE | SECTION_RELRO))
-+	      == (SECTION_WRITE | SECTION_RELRO)
-+	      && (sect->common.flags
-+		  & ~(SECTION_DECLARED | SECTION_WRITE | SECTION_RELRO))
-+		 == (flags & ~(SECTION_WRITE | SECTION_RELRO))
-+	      && ((sect->common.flags & SECTION_DECLARED) == 0
-+		  || (sect->common.flags & SECTION_WRITE)))
-+	    {
-+	      sect->common.flags |= (SECTION_WRITE | SECTION_RELRO);
-+	      return sect;
-+	    }
- 	  /* Sanity check user variables for flag changes.  */
- 	  if (decl == 0)
- 	    decl = sect->named.decl;
- 	  gcc_assert (decl);
- 	  error ("%+D causes a section type conflict", decl);
-+	  /* Make sure we don't error about one section multiple times.  */
-+	  sect->common.flags |= SECTION_OVERRIDE;
- 	}
-     }
-   return sect;
-@@ -985,7 +1006,7 @@ align_variable (tree decl, bool dont_out
-    should be placed.  PREFER_NOSWITCH_P is true if a noswitch
-    section should be used wherever possible.  */
- 
--static section *
-+section *
- get_variable_section (tree decl, bool prefer_noswitch_p)
- {
-   addr_space_t as = ADDR_SPACE_GENERIC;
-@@ -6026,8 +6047,18 @@ default_section_type_flags (tree decl, c
- 
-   if (decl && TREE_CODE (decl) == FUNCTION_DECL)
-     flags = SECTION_CODE;
--  else if (decl && decl_readonly_section (decl, reloc))
--    flags = 0;
-+  else if (decl)
-+    {
-+      enum section_category category
-+	= categorize_decl_for_section (decl, reloc);
-+      if (decl_readonly_section_1 (category))
-+	flags = 0;
-+      else if (category == SECCAT_DATA_REL_RO
-+	       || category == SECCAT_DATA_REL_RO_LOCAL)
-+	flags = SECTION_WRITE | SECTION_RELRO;
-+      else
-+	flags = SECTION_WRITE;
-+    }
-   else
-     flags = SECTION_WRITE;
- 
-@@ -6250,17 +6281,13 @@ categorize_decl_for_section (const_tree 
- 	  /* Here the reloc_rw_mask is not testing whether the section should
- 	     be read-only or not, but whether the dynamic link will have to
- 	     do something.  If so, we wish to segregate the data in order to
--	     minimize cache misses inside the dynamic linker.  If the data
--	     has a section attribute, ignore reloc_rw_mask() so that all data
--             in a given named section is catagorized in the same way.  */
--	  if (reloc & targetm.asm_out.reloc_rw_mask ()
--	      && !lookup_attribute ("section", DECL_ATTRIBUTES (decl)))
-+	     minimize cache misses inside the dynamic linker.  */
-+	  if (reloc & targetm.asm_out.reloc_rw_mask ())
- 	    ret = reloc == 1 ? SECCAT_DATA_REL_LOCAL : SECCAT_DATA_REL;
- 	  else
- 	    ret = SECCAT_DATA;
- 	}
--      else if (reloc & targetm.asm_out.reloc_rw_mask ()
--	       && !lookup_attribute ("section", DECL_ATTRIBUTES (decl)))
-+      else if (reloc & targetm.asm_out.reloc_rw_mask ())
- 	ret = reloc == 1 ? SECCAT_DATA_REL_RO_LOCAL : SECCAT_DATA_REL_RO;
-       else if (reloc || flag_merge_constants < 2)
- 	/* C and C++ don't allow different variables to share the same
-@@ -6311,10 +6338,10 @@ categorize_decl_for_section (const_tree 
-   return ret;
- }
- 
--bool
--decl_readonly_section (const_tree decl, int reloc)
-+static bool
-+decl_readonly_section_1 (enum section_category category)
- {
--  switch (categorize_decl_for_section (decl, reloc))
-+  switch (category)
-     {
-     case SECCAT_RODATA:
-     case SECCAT_RODATA_MERGE_STR:
-@@ -6322,13 +6349,17 @@ decl_readonly_section (const_tree decl, 
-     case SECCAT_RODATA_MERGE_CONST:
-     case SECCAT_SRODATA:
-       return true;
--      break;
-     default:
-       return false;
--      break;
-     }
- }
- 
-+bool
-+decl_readonly_section (const_tree decl, int reloc)
-+{
-+  return decl_readonly_section_1 (categorize_decl_for_section (decl, reloc));
-+}
-+
- /* Select a section based on the above categorization.  */
- 
- section *
---- gcc/cgraphunit.c.jj	2011-01-27 17:33:29.416940770 +0100
-+++ gcc/cgraphunit.c	2011-01-27 19:48:24.567639053 +0100
-@@ -1708,6 +1708,10 @@ cgraph_output_in_order (void)
-   varpool_empty_needed_queue ();
- 
-   for (i = 0; i < max; ++i)
-+    if (nodes[i].kind == ORDER_VAR)
-+      varpool_finalize_named_section_flags (nodes[i].u.v);
-+
-+  for (i = 0; i < max; ++i)
-     {
-       switch (nodes[i].kind)
- 	{
---- gcc/testsuite/gcc.dg/pr31490-2.c.jj	2011-01-27 17:40:33.365546146 +0100
-+++ gcc/testsuite/gcc.dg/pr31490-2.c	2011-01-27 17:40:33.365546146 +0100
-@@ -0,0 +1,7 @@
-+/* PR middle-end/31490 */
-+/* { dg-do compile } */
-+/* { dg-options "-fpic" { target fpic } } */
-+/* { dg-require-named-sections "" } */
-+
-+const char *const x __attribute__((section("foo"))) = "";
-+const char *const g __attribute__((section("foo"))) = (const char *) 0;
---- gcc/testsuite/gcc.dg/pr31490-3.c.jj	2011-01-27 17:40:33.365546146 +0100
-+++ gcc/testsuite/gcc.dg/pr31490-3.c	2011-01-27 17:40:33.365546146 +0100
-@@ -0,0 +1,7 @@
-+/* PR middle-end/31490 */
-+/* { dg-do compile } */
-+/* { dg-options "-fpic" { target fpic } } */
-+/* { dg-require-named-sections "" } */
-+
-+const char *const x __attribute__((section("foo"))) = (const char *) 0;
-+const char *const g __attribute__((section("foo"))) = "bar";
---- gcc/testsuite/gcc.dg/pr31490-4.c.jj	2011-01-27 17:40:33.366545270 +0100
-+++ gcc/testsuite/gcc.dg/pr31490-4.c	2011-01-27 17:40:33.366545270 +0100
-@@ -0,0 +1,10 @@
-+/* PR middle-end/31490 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+/* { dg-options "-O2 -fpic" { target fpic } } */
-+/* { dg-require-named-sections "" } */
-+
-+const char *const x __attribute__((section("foo"))) = "";
-+const char *const g __attribute__((section("foo"))) = (const char *) 0;
-+const char *const y __attribute__((section("bar"))) = (const char *) 0;
-+const char *const h __attribute__((section("bar"))) = "bar";

diff --git a/gcc46-pr45136-revert.patch b/gcc46-pr45136-revert.patch
deleted file mode 100644
index 423ddea..0000000
--- a/gcc46-pr45136-revert.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-Temporarily revert:
-2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
-
-	PR debug/45136
-	PR debug/45130
-	* haifa-sched.c (get_ebb_head_tail): Move notes across boundary
-	debug insns.
-	(no_real_insns_p, schedule_block, set_priorities): Drop special
-	treatment of boundary debug insns.
-	* sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug
-	insns.
-	* sched-ebb.c (schedule_ebbs): Don't skip debug insns.
-	* sched-int.h (DEBUG_INSN_SCHED_P): Remove.
-	(BOUNDARY_DEBUG_INSN_P): Likewise.
-	(SCHEDULE_DEBUG_INSN_P): Likewise.
-	* sched-rgn.c (init_ready_list): Drop special treatment of
-	boundary debug insns.
-	* final.c (rest_of_clean-state): Clear notes' BB.
-
---- gcc/sched-ebb.c	(revision 169260)
-+++ gcc/sched-ebb.c	(revision 169259)
-@@ -598,9 +598,9 @@ schedule_ebbs (void)
- 	 a note or two.  */
-       while (head != tail)
- 	{
--	  if (NOTE_P (head))
-+	  if (NOTE_P (head) || BOUNDARY_DEBUG_INSN_P (head))
- 	    head = NEXT_INSN (head);
--	  else if (NOTE_P (tail))
-+	  else if (NOTE_P (tail) || BOUNDARY_DEBUG_INSN_P (tail))
- 	    tail = PREV_INSN (tail);
- 	  else if (LABEL_P (head))
- 	    head = NEXT_INSN (head);
---- gcc/final.c	(revision 169260)
-+++ gcc/final.c	(revision 169259)
-@@ -4402,11 +4402,7 @@ rest_of_clean_state (void)
- 	    if (LABEL_P (insn))
- 	      INSN_UID (insn) = CODE_LABEL_NUMBER (insn);
- 	    else
--	      {
--		if (NOTE_P (insn))
--		  set_block_for_insn (insn, NULL);
--		INSN_UID (insn) = 0;
--	      }
-+	      INSN_UID (insn) = 0;
- 	}
-     }
- 
---- gcc/haifa-sched.c	(revision 169260)
-+++ gcc/haifa-sched.c	(revision 169259)
-@@ -1900,30 +1900,8 @@ get_ebb_head_tail (basic_block beg, basi
-     beg_head = NEXT_INSN (beg_head);
- 
-   while (beg_head != beg_tail)
--    if (NOTE_P (beg_head))
-+    if (NOTE_P (beg_head) || BOUNDARY_DEBUG_INSN_P (beg_head))
-       beg_head = NEXT_INSN (beg_head);
--    else if (DEBUG_INSN_P (beg_head))
--      {
--	rtx note, next;
--
--	for (note = NEXT_INSN (beg_head);
--	     note != beg_tail;
--	     note = next)
--	  {
--	    next = NEXT_INSN (note);
--	    if (NOTE_P (note))
--	      {
--		if (sched_verbose >= 9)
--		  fprintf (sched_dump, "reorder %i\n", INSN_UID (note));
--
--		reorder_insns_nobb (note, note, PREV_INSN (beg_head));
--	      }
--	    else if (!DEBUG_INSN_P (note))
--	      break;
--	  }
--
--	break;
--      }
-     else
-       break;
- 
-@@ -1935,33 +1913,8 @@ get_ebb_head_tail (basic_block beg, basi
-     end_head = NEXT_INSN (end_head);
- 
-   while (end_head != end_tail)
--    if (NOTE_P (end_tail))
-+    if (NOTE_P (end_tail) || BOUNDARY_DEBUG_INSN_P (end_tail))
-       end_tail = PREV_INSN (end_tail);
--    else if (DEBUG_INSN_P (end_tail))
--      {
--	rtx note, prev;
--
--	for (note = PREV_INSN (end_tail);
--	     note != end_head;
--	     note = prev)
--	  {
--	    prev = PREV_INSN (note);
--	    if (NOTE_P (note))
--	      {
--		if (sched_verbose >= 9)
--		  fprintf (sched_dump, "reorder %i\n", INSN_UID (note));
--
--		reorder_insns_nobb (note, note, end_tail);
--
--		if (end_tail == BB_END (end))
--		  df_insn_change_bb (note, NULL);
--	      }
--	    else if (!DEBUG_INSN_P (note))
--	      break;
--	  }
--
--	break;
--      }
-     else
-       break;
- 
-@@ -1975,7 +1928,8 @@ no_real_insns_p (const_rtx head, const_r
- {
-   while (head != NEXT_INSN (tail))
-     {
--      if (!NOTE_P (head) && !LABEL_P (head))
-+      if (!NOTE_P (head) && !LABEL_P (head)
-+	  && !BOUNDARY_DEBUG_INSN_P (head))
- 	return 0;
-       head = NEXT_INSN (head);
-     }
-@@ -2858,7 +2812,7 @@ schedule_block (basic_block *target_bb)
-   last_scheduled_insn = prev_head;
- 
-   gcc_assert ((NOTE_P (last_scheduled_insn)
--	       || DEBUG_INSN_P (last_scheduled_insn))
-+	       || BOUNDARY_DEBUG_INSN_P (last_scheduled_insn))
- 	      && BLOCK_FOR_INSN (last_scheduled_insn) == *target_bb);
- 
-   /* Initialize INSN_QUEUE.  Q_SIZE is the total number of insns in the
-@@ -3365,7 +3319,7 @@ set_priorities (rtx head, rtx tail)
- 	current_sched_info->sched_max_insns_priority;
-   rtx prev_head;
- 
--  if (head == tail && ! INSN_P (head))
-+  if (head == tail && (! INSN_P (head) || BOUNDARY_DEBUG_INSN_P (head)))
-     gcc_unreachable ();
- 
-   n_insn = 0;
---- gcc/sched-deps.c	(revision 169260)
-+++ gcc/sched-deps.c	(revision 169259)
-@@ -715,6 +715,9 @@ sd_init_insn (rtx insn)
-   INSN_FORW_DEPS (insn) = create_deps_list ();
-   INSN_RESOLVED_FORW_DEPS (insn) = create_deps_list ();
- 
-+  if (DEBUG_INSN_P (insn))
-+    DEBUG_INSN_SCHED_P (insn) = TRUE;
-+
-   /* ??? It would be nice to allocate dependency caches here.  */
- }
- 
-@@ -724,6 +727,12 @@ sd_finish_insn (rtx insn)
- {
-   /* ??? It would be nice to deallocate dependency caches here.  */
- 
-+  if (DEBUG_INSN_P (insn))
-+    {
-+      gcc_assert (DEBUG_INSN_SCHED_P (insn));
-+      DEBUG_INSN_SCHED_P (insn) = FALSE;
-+    }
-+
-   free_deps_list (INSN_HARD_BACK_DEPS (insn));
-   INSN_HARD_BACK_DEPS (insn) = NULL;
- 
---- gcc/sched-int.h	(revision 169260)
-+++ gcc/sched-int.h	(revision 169259)
-@@ -887,6 +887,23 @@ extern VEC(haifa_deps_insn_data_def, hea
- #define IS_SPECULATION_BRANCHY_CHECK_P(INSN) \
-   (RECOVERY_BLOCK (INSN) != NULL && RECOVERY_BLOCK (INSN) != EXIT_BLOCK_PTR)
- 
-+/* The unchanging bit tracks whether a debug insn is to be handled
-+   like an insn (i.e., schedule it) or like a note (e.g., it is next
-+   to a basic block boundary.  */
-+#define DEBUG_INSN_SCHED_P(insn) \
-+  (RTL_FLAG_CHECK1("DEBUG_INSN_SCHED_P", (insn), DEBUG_INSN)->unchanging)
-+
-+/* True if INSN is a debug insn that is next to a basic block
-+   boundary, i.e., it is to be handled by the scheduler like a
-+   note.  */
-+#define BOUNDARY_DEBUG_INSN_P(insn) \
-+  (DEBUG_INSN_P (insn) && !DEBUG_INSN_SCHED_P (insn))
-+/* True if INSN is a debug insn that is not next to a basic block
-+   boundary, i.e., it is to be handled by the scheduler like an
-+   insn.  */
-+#define SCHEDULE_DEBUG_INSN_P(insn) \
-+  (DEBUG_INSN_P (insn) && DEBUG_INSN_SCHED_P (insn))
-+
- /* Dep status (aka ds_t) of the link encapsulates information, that is needed
-    for speculative scheduling.  Namely, it is 4 integers in the range
-    [0, MAX_DEP_WEAK] and 3 bits.
---- gcc/sched-rgn.c	(revision 169260)
-+++ gcc/sched-rgn.c	(revision 169259)
-@@ -2138,7 +2138,7 @@ init_ready_list (void)
- 	src_head = head;
- 
- 	for (insn = src_head; insn != src_next_tail; insn = NEXT_INSN (insn))
--	  if (INSN_P (insn))
-+	  if (INSN_P (insn) && !BOUNDARY_DEBUG_INSN_P (insn))
- 	    try_ready (insn);
-       }
- }

diff --git a/gcc46-pr46890.patch b/gcc46-pr46890.patch
deleted file mode 100644
index 7afb3f6..0000000
--- a/gcc46-pr46890.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-2010-12-17  Nathan Froyd  <froydnj@codesourcery.com>
-
-	PR c++/46890
-	* parser.c (cp_parser_class_specifier): Add RID_TYPEDEF to
-	lookahead logic and fix setting of want_semicolon.
-
-	* g++.dg/pr46890.C: New test.
-	* g++.dg/parse/semicolon.C: Add new cases.
-
---- gcc/cp/parser.c
-+++ gcc/cp/parser.c
-@@ -16959,17 +16959,16 @@ cp_parser_class_specifier (cp_parser* parser)
- 	   static const <type> var = ...;  */
-       case CPP_KEYWORD:
- 	if (keyword_is_storage_class_specifier (token->keyword)
--	    || keyword_is_type_qualifier (token->keyword))
-+	    || keyword_is_type_qualifier (token->keyword)
-+	    || token->keyword == RID_TYPEDEF)
- 	  {
- 	    cp_token *lookahead = cp_lexer_peek_nth_token (parser->lexer, 2);
- 
--	    if (lookahead->type == CPP_KEYWORD
--		&& !keyword_begins_type_specifier (lookahead->keyword))
--	      want_semicolon = false;
--	    else if (lookahead->type == CPP_NAME)
--	      /* Handling user-defined types here would be nice, but
--		 very tricky.  */
--	      want_semicolon = false;
-+	    /* Handling user-defined types here would be nice, but very
-+	       tricky.  */
-+	    want_semicolon
-+	      = (lookahead->type == CPP_KEYWORD
-+		 && keyword_begins_type_specifier (lookahead->keyword));
- 	  }
- 	break;
-       default:
---- gcc/testsuite/g++.dg/parse/semicolon3.C
-+++ gcc/testsuite/g++.dg/parse/semicolon3.C
-@@ -62,6 +62,48 @@ autotest (void)
-   return ok10.a;
- }
- 
-+struct OK11
-+{
-+  int a;
-+} // no complaints
-+  const *ok11_var;
-+
-+struct OK12
-+{
-+  int a;
-+} // no complaints
-+  const &ok12_var = *(new OK12());
-+
-+struct OK13
-+{
-+  int a;
-+} // no complaints
-+  static *ok13_var;
-+
-+class OK14
-+{
-+  struct OK14sub
-+  {
-+    int a;
-+  } // no complaints
-+    static &ok14_var;
-+};
-+
-+class OK15
-+{
-+  int a;
-+} typedef tOK15;
-+
-+class OK16
-+{
-+  int a;
-+} typedef *pOK16;
-+
-+class OK17
-+{
-+  int a;
-+} typedef &rOK16;
-+
- struct E1
- {
-   int a;
-@@ -196,6 +238,13 @@ class E17
-     mutable int i;
- } // { dg-error "after class definition" }
- 
-+class E18
-+{
-+  int a;
-+} // { dg-error "after class definition" }
-+
-+typedef int E18int;
-+
- /* This was the original test from the PR.  */
- 
- class C0
---- gcc/testsuite/g++.dg/pr46890.C
-+++ gcc/testsuite/g++.dg/pr46890.C
-@@ -0,0 +1,6 @@
-+// PR c++/46890
-+// { dg-do compile }
-+
-+struct MdatResource {
-+const char *mdatAlloc;
-+} const *_resource;

diff --git a/gcc46-pr47106-revert.patch b/gcc46-pr47106-revert.patch
deleted file mode 100644
index 9940f65..0000000
--- a/gcc46-pr47106-revert.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Temporarily revert:
-	2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
-
-	PR debug/47106
-	* cfgexpand.c (account_used_vars_for_block): Only account vars
-	that are annotated as used.
-	(estimated_stack_frame_size): Don't set TREE_USED.
-
---- gcc/cfgexpand.c	(revision 169093)
-+++ gcc/cfgexpand.c	(revision 169092)
-@@ -1325,7 +1325,7 @@ account_used_vars_for_block (tree block,
- 
-   /* Expand all variables at this level.  */
-   for (t = BLOCK_VARS (block); t ; t = DECL_CHAIN (t))
--    if (var_ann (t) && var_ann (t)->used)
-+    if (TREE_USED (t))
-       size += expand_one_var (t, toplevel, false);
- 
-   /* Expand all variables at containing levels.  */
-@@ -1389,10 +1389,9 @@ estimated_stack_frame_size (tree decl)
- 
-   FOR_EACH_LOCAL_DECL (cfun, ix, var)
-     {
--      /* TREE_USED marks local variables that do not appear in lexical
--	 blocks.  We don't want to expand those that do twice.  */
-       if (TREE_USED (var))
-         size += expand_one_var (var, true, false);
-+      TREE_USED (var) = 1;
-     }
-   size += account_used_vars_for_block (outer_block, true);
- 

diff --git a/gcc46-pr47610.patch b/gcc46-pr47610.patch
new file mode 100644
index 0000000..777ce7b
--- /dev/null
+++ b/gcc46-pr47610.patch
@@ -0,0 +1,23 @@
+2011-02-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/47610
+	* varasm.c (default_section_type_flags): If decl is NULL,
+	and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO
+	bit.
+
+--- gcc/varasm.c.jj	2011-02-03 20:09:38.000000000 +0100
++++ gcc/varasm.c	2011-02-05 00:01:59.911796344 +0100
+@@ -6060,7 +6060,12 @@ default_section_type_flags (tree decl, c
+ 	flags = SECTION_WRITE;
+     }
+   else
+-    flags = SECTION_WRITE;
++    {
++      flags = SECTION_WRITE;
++      if (strcmp (name, ".data.rel.ro") == 0
++	  || strcmp (name, ".data.rel.ro.local") == 0)
++	flags |= SECTION_RELRO;
++    }
+ 
+   if (decl && DECL_ONE_ONLY (decl))
+     flags |= SECTION_LINKONCE;

diff --git a/sources b/sources
index 92ef864..224f569 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
-6b870b2c1d67a5e2822ffc4fc48f15a1  gcc-4.6.0-20110128.tar.bz2
+262b320051245fab671a5ec8429381cf  gcc-4.6.0-20110205.tar.bz2

                 reply	other threads:[~2026-06-29 12:25 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178273590404.1.17085592462405685611.rpms-gcc-6b781854a6bf@fedoraproject.org \
    --to=jakub@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox