aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/obsolete/gcc/gcc-4.3.1
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/obsolete/gcc/gcc-4.3.1')
-rw-r--r--recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35440.patch56
-rw-r--r--recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35751.patch114
-rw-r--r--recipes/obsolete/gcc/gcc-4.3.1/gcc43-build-id.patch74
-rw-r--r--recipes/obsolete/gcc/gcc-4.3.1/gcc43-ppc64-ia64-GNU-stack.patch86
4 files changed, 330 insertions, 0 deletions
diff --git a/recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35440.patch b/recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35440.patch
new file mode 100644
index 0000000000..6bf3f0d9d8
--- /dev/null
+++ b/recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35440.patch
@@ -0,0 +1,56 @@
+2008-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35440
+ * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
+ for all types.
+
+ * gcc.dg/pr35440.c: New test.
+
+--- gcc/c-pretty-print.c.jj 2008-02-11 14:48:12.000000000 +0100
++++ gcc/c-pretty-print.c 2008-03-19 14:50:09.000000000 +0100
+@@ -1173,6 +1173,12 @@ pp_c_initializer_list (c_pretty_printer
+ tree type = TREE_TYPE (e);
+ const enum tree_code code = TREE_CODE (type);
+
++ if (TREE_CODE (e) == CONSTRUCTOR)
++ {
++ pp_c_constructor_elts (pp, CONSTRUCTOR_ELTS (e));
++ return;
++ }
++
+ switch (code)
+ {
+ case RECORD_TYPE:
+@@ -1207,16 +1213,12 @@ pp_c_initializer_list (c_pretty_printer
+ case VECTOR_TYPE:
+ if (TREE_CODE (e) == VECTOR_CST)
+ pp_c_expression_list (pp, TREE_VECTOR_CST_ELTS (e));
+- else if (TREE_CODE (e) == CONSTRUCTOR)
+- pp_c_constructor_elts (pp, CONSTRUCTOR_ELTS (e));
+ else
+ break;
+ return;
+
+ case COMPLEX_TYPE:
+- if (TREE_CODE (e) == CONSTRUCTOR)
+- pp_c_constructor_elts (pp, CONSTRUCTOR_ELTS (e));
+- else if (TREE_CODE (e) == COMPLEX_CST || TREE_CODE (e) == COMPLEX_EXPR)
++ if (TREE_CODE (e) == COMPLEX_CST || TREE_CODE (e) == COMPLEX_EXPR)
+ {
+ const bool cst = TREE_CODE (e) == COMPLEX_CST;
+ pp_expression (pp, cst ? TREE_REALPART (e) : TREE_OPERAND (e, 0));
+--- gcc/testsuite/gcc.dg/pr35440.c.jj 2008-03-19 15:57:13.000000000 +0100
++++ gcc/testsuite/gcc.dg/pr35440.c 2008-03-19 15:47:35.000000000 +0100
+@@ -0,0 +1,12 @@
++/* PR c/35440 */
++/* { dg-do compile } */
++/* { dg-options "-std=gnu99" } */
++
++struct A {};
++struct B { int i; char j[2]; };
++
++void foo (void)
++{
++ (struct A){}(); /* { dg-error "called object" } */
++ (struct B){ .i = 2, .j[1] = 1 }(); /* { dg-error "called object" } */
++}
diff --git a/recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35751.patch b/recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35751.patch
new file mode 100644
index 0000000000..37b84275e2
--- /dev/null
+++ b/recipes/obsolete/gcc/gcc-4.3.1/fedora/gcc43-pr35751.patch
@@ -0,0 +1,114 @@
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35751
+ * c-decl.c (finish_decl): If extern or static var has variable
+ size, set TREE_TYPE (decl) to error_mark_node.
+
+ * decl.c (layout_var_decl): If extern or static var has variable
+ size, set TREE_TYPE (decl) to error_mark_node.
+
+ * gcc.dg/gomp/pr35751.c: New test.
+ * g++.dg/gomp/pr35751.C: New test.
+
+--- gcc/c-decl.c.jj 2008-04-03 09:41:42.000000000 +0200
++++ gcc/c-decl.c 2008-04-03 18:20:52.000000000 +0200
+@@ -3481,7 +3481,10 @@ finish_decl (tree decl, tree init, tree
+ if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
+ constant_expression_warning (DECL_SIZE (decl));
+ else
+- error ("storage size of %q+D isn%'t constant", decl);
++ {
++ error ("storage size of %q+D isn%'t constant", decl);
++ TREE_TYPE (decl) = error_mark_node;
++ }
+ }
+
+ if (TREE_USED (type))
+--- gcc/cp/decl.c.jj 2008-03-31 23:54:40.000000000 +0200
++++ gcc/cp/decl.c 2008-04-03 18:30:19.000000000 +0200
+@@ -4442,7 +4442,10 @@ layout_var_decl (tree decl)
+ if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
+ constant_expression_warning (DECL_SIZE (decl));
+ else
+- error ("storage size of %qD isn't constant", decl);
++ {
++ error ("storage size of %qD isn't constant", decl);
++ TREE_TYPE (decl) = error_mark_node;
++ }
+ }
+ }
+
+--- gcc/testsuite/gcc.dg/gomp/pr35751.c.jj 2008-04-03 18:26:12.000000000 +0200
++++ gcc/testsuite/gcc.dg/gomp/pr35751.c 2008-04-03 18:25:51.000000000 +0200
+@@ -0,0 +1,34 @@
++/* PR c/35751 */
++/* { dg-do compile } */
++/* { dg-options "-fopenmp" } */
++
++void
++foo (int i)
++{
++ extern int a[i]; /* { dg-error "must have no linkage|storage size of" } */
++ static int b[i]; /* { dg-error "storage size of" } */
++
++#pragma omp parallel
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++
++#pragma omp parallel shared (a, b)
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++
++#pragma omp parallel private (a, b)
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++
++#pragma omp parallel firstprivate (a, b)
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++}
+--- gcc/testsuite/g++.dg/gomp/pr35751.C.jj 2008-04-03 18:32:13.000000000 +0200
++++ gcc/testsuite/g++.dg/gomp/pr35751.C 2008-04-03 18:32:32.000000000 +0200
+@@ -0,0 +1,34 @@
++// PR c/35751
++// { dg-do compile }
++// { dg-options "-fopenmp" }
++
++void
++foo (int i)
++{
++ extern int a[i]; // { dg-error "storage size of" }
++ static int b[i]; // { dg-error "storage size of" }
++
++#pragma omp parallel
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++
++#pragma omp parallel shared (a, b)
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++
++#pragma omp parallel private (a, b)
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++
++#pragma omp parallel firstprivate (a, b)
++ {
++ a[0] = 0;
++ b[0] = 0;
++ }
++}
diff --git a/recipes/obsolete/gcc/gcc-4.3.1/gcc43-build-id.patch b/recipes/obsolete/gcc/gcc-4.3.1/gcc43-build-id.patch
new file mode 100644
index 0000000000..4e162e6472
--- /dev/null
+++ b/recipes/obsolete/gcc/gcc-4.3.1/gcc43-build-id.patch
@@ -0,0 +1,74 @@
+2007-07-22 Roland McGrath <roland@redhat.com>
+
+ * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
+ non-relocatable link.
+ * config/linux.h (LINK_EH_SPEC): Likewise.
+ * config/sparc/linux.h (LINK_EH_SPEC): Likewise.
+ * config/sparc/linux64.h (LINK_EH_SPEC): Likewise.
+ * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+ * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/rs6000/sysv4.h.~1~
++++ gcc/config/rs6000/sysv4.h
+@@ -1044,7 +1044,7 @@ extern int fixuplabelno;
+ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
+--- gcc/config/linux.h.~1~
++++ gcc/config/linux.h
+@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA. */
+ } while (0)
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+
+ /* Define this so we can compile MS code for use with WINE. */
+--- gcc/config/sparc/linux64.h.~1~
++++ gcc/config/sparc/linux64.h
+@@ -316,7 +316,7 @@ do { \
+ #define DITF_CONVERSION_LIBFUNCS 1
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+
+ #ifdef HAVE_AS_TLS
+--- gcc/config/sparc/linux.h.~1~
++++ gcc/config/sparc/linux.h
+@@ -188,7 +188,7 @@ do { \
+ #define DITF_CONVERSION_LIBFUNCS 1
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+
+ #ifdef HAVE_AS_TLS
+--- gcc/config/alpha/elf.h.~1~
++++ gcc/config/alpha/elf.h
+@@ -453,5 +453,5 @@ extern int alpha_this_gpdisp_sequence_nu
+ I imagine that other systems will catch up. In the meantime, it
+ doesn't harm to make sure that the data exists to be used later. */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+--- gcc/config/ia64/linux.h.~1~
++++ gcc/config/ia64/linux.h
+@@ -56,7 +56,7 @@ do { \
+ Signalize that because we have fde-glibc, we don't need all C shared libs
+ linked against -lgcc_s. */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC ""
++#define LINK_EH_SPEC "%{!r:--build-id} "
+
+ #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+
diff --git a/recipes/obsolete/gcc/gcc-4.3.1/gcc43-ppc64-ia64-GNU-stack.patch b/recipes/obsolete/gcc/gcc-4.3.1/gcc43-ppc64-ia64-GNU-stack.patch
new file mode 100644
index 0000000000..d49f2b9855
--- /dev/null
+++ b/recipes/obsolete/gcc/gcc-4.3.1/gcc43-ppc64-ia64-GNU-stack.patch
@@ -0,0 +1,86 @@
+2007-08-27 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
+ * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use
+ rs6000_elf_end_indicate_exec_stack.
+ * config/ia64/ia64.c (ia64_linux_file_end): new.
+ * config/ia64/linux.h (TARGET_ASM_FILE_END): Use ia64_linux_file_end.
+
+--- gcc/config/rs6000/rs6000.c.jj 2007-12-07 18:41:08.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2007-12-07 18:42:12.000000000 +0100
+@@ -746,6 +746,7 @@ static void rs6000_file_start (void);
+ static int rs6000_elf_reloc_rw_mask (void);
+ static void rs6000_elf_asm_out_constructor (rtx, int);
+ static void rs6000_elf_asm_out_destructor (rtx, int);
++static void rs6000_elf_end_indicate_exec_stack (void) ATTRIBUTE_UNUSED;
+ static void rs6000_elf_asm_init_sections (void);
+ static section *rs6000_elf_select_rtx_section (enum machine_mode, rtx,
+ unsigned HOST_WIDE_INT);
+@@ -20418,6 +20419,20 @@ rs6000_elf_declare_function_name (FILE *
+ }
+ ASM_OUTPUT_LABEL (file, name);
+ }
++
++static void
++rs6000_elf_end_indicate_exec_stack (void)
++{
++ if (TARGET_32BIT)
++ file_end_indicate_exec_stack ();
++ else
++ {
++ int saved_trampolines_created = trampolines_created;
++ trampolines_created = 0;
++ file_end_indicate_exec_stack ();
++ trampolines_created = saved_trampolines_created;
++ }
++}
+ #endif
+
+ #if TARGET_XCOFF
+--- gcc/config/rs6000/linux64.h.jj 2007-12-07 17:18:06.000000000 +0100
++++ gcc/config/rs6000/linux64.h 2007-12-07 18:41:21.000000000 +0100
+@@ -504,7 +504,7 @@ extern int dot_symbols;
+ #undef DRAFT_V4_STRUCT_RET
+ #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
+
+-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
++#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
+
+ #define TARGET_POSIX_IO
+
+--- gcc/config/ia64/linux.h.jj 2007-12-07 18:17:43.000000000 +0100
++++ gcc/config/ia64/linux.h 2007-12-07 18:41:21.000000000 +0100
+@@ -5,7 +5,7 @@
+
+ #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
+
+-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
++#define TARGET_ASM_FILE_END ia64_linux_file_end
+
+ /* This is for -profile to use -lc_p instead of -lc. */
+ #undef CC1_SPEC
+--- gcc/config/ia64/ia64.c.jj 2007-12-07 15:41:58.000000000 +0100
++++ gcc/config/ia64/ia64.c 2007-12-07 18:43:18.000000000 +0100
+@@ -262,6 +262,8 @@ static section *ia64_select_rtx_section
+ static void ia64_output_dwarf_dtprel (FILE *, int, rtx)
+ ATTRIBUTE_UNUSED;
+ static unsigned int ia64_section_type_flags (tree, const char *, int);
++static void ia64_linux_file_end (void)
++ ATTRIBUTE_UNUSED;
+ static void ia64_init_libfuncs (void)
+ ATTRIBUTE_UNUSED;
+ static void ia64_hpux_init_libfuncs (void)
+@@ -9957,4 +9959,13 @@ ia64_c_mode_for_suffix (char suffix)
+ return VOIDmode;
+ }
+
++static void
++ia64_linux_file_end (void)
++{
++ int saved_trampolines_created = trampolines_created;
++ trampolines_created = 0;
++ file_end_indicate_exec_stack ();
++ trampolines_created = saved_trampolines_created;
++}
++
+ #include "gt-ia64.h"