rpms/gcc/devel gcc43-pr37189.patch, NONE, 1.1 gcc43-x86_64-va_start.patch, NONE, 1.1 .cvsignore, 1.242, 1.243 gcc43.spec, 1.40, 1.41 sources, 1.245, 1.246 gcc43-fortran-debug1.patch, 1.1, NONE gcc43-fortran-debug10.patch, 1.2, NONE gcc43-fortran-debug11.patch, 1.1, NONE gcc43-fortran-debug2.patch, 1.2, NONE gcc43-fortran-debug3.patch, 1.1, NONE gcc43-fortran-debug4.patch, 1.1, NONE gcc43-fortran-debug5.patch, 1.1, NONE gcc43-fortran-debug6.patch, 1.1, NONE gcc43-fortran-debug7.patch, 1.1, NONE gcc43-fortran-debug8.patch, 1.1, NONE gcc43-fortran-debug9.patch, 1.1, NONE gcc43-pr37248.patch, 1.2, NONE
Jakub Jelinek
jakub at fedoraproject.org
Fri Sep 5 08:44:25 UTC 2008
Author: jakub
Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8814
Modified Files:
.cvsignore gcc43.spec sources
Added Files:
gcc43-pr37189.patch gcc43-x86_64-va_start.patch
Removed Files:
gcc43-fortran-debug1.patch gcc43-fortran-debug10.patch
gcc43-fortran-debug11.patch gcc43-fortran-debug2.patch
gcc43-fortran-debug3.patch gcc43-fortran-debug4.patch
gcc43-fortran-debug5.patch gcc43-fortran-debug6.patch
gcc43-fortran-debug7.patch gcc43-fortran-debug8.patch
gcc43-fortran-debug9.patch gcc43-pr37248.patch
Log Message:
4.3.2-2
gcc43-pr37189.patch:
--- NEW FILE gcc43-pr37189.patch ---
2008-09-03 Jakub Jelinek <jakub at redhat.com>
PR c++/37189
* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New
extern decls.
* decl2.c (mark_used): If defer_mark_used_calls, push decl into
deferred_mark_used_calls vector and exit early.
* decl.c (defer_mark_used_calls, deferred_mark_used_calls): New
variables.
(finish_function): Set defer_mark_used_calls for the duration of the
function. Call mark_used on any queued decls.
PR c++/37189
* g++.dg/gomp/pr37189.C: New test.
--- gcc/cp/decl2.c (revision 139954)
+++ gcc/cp/decl2.c (revision 139955)
@@ -3776,6 +3776,15 @@ mark_used (tree decl)
/* If we don't need a value, then we don't need to synthesize DECL. */
if (skip_evaluation)
return;
+
+ /* If within finish_function, defer the rest until that function
+ finishes, otherwise it might recurse. */
+ if (defer_mark_used_calls)
+ {
+ VEC_safe_push (tree, gc, deferred_mark_used_calls, decl);
+ return;
+ }
+
/* Normally, we can wait until instantiation-time to synthesize
DECL. However, if DECL is a static data member initialized with
a constant, we need the value right now because a reference to
--- gcc/cp/decl.c (revision 139954)
+++ gcc/cp/decl.c (revision 139955)
@@ -227,6 +227,11 @@ struct named_label_entry GTY(())
function, two inside the body of a function in a local class, etc.) */
int function_depth;
+/* To avoid unwanted recursion, finish_function defers all mark_used calls
+ encountered during its execution until it finishes. */
+bool defer_mark_used_calls;
+VEC(tree, gc) *deferred_mark_used_calls;
+
/* States indicating how grokdeclarator() should handle declspecs marked
with __attribute__((deprecated)). An object declared as
__attribute__((deprecated)) suppresses warnings of uses of other
@@ -12033,6 +12038,9 @@ finish_function (int flags)
if (fndecl == NULL_TREE)
return error_mark_node;
+ gcc_assert (!defer_mark_used_calls);
+ defer_mark_used_calls = true;
+
if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fndecl)
&& DECL_VIRTUAL_P (fndecl)
&& !processing_template_decl)
@@ -12232,6 +12240,17 @@ finish_function (int flags)
cxx_pop_function_context and then reset via pop_function_context. */
current_function_decl = NULL_TREE;
+ defer_mark_used_calls = false;
+ if (deferred_mark_used_calls)
+ {
+ unsigned int i;
+ tree decl;
+
+ for (i = 0; VEC_iterate (tree, deferred_mark_used_calls, i, decl); i++)
+ mark_used (decl);
+ VEC_free (tree, gc, deferred_mark_used_calls);
+ }
+
return fndecl;
}
--- gcc/cp/cp-tree.h (revision 139954)
+++ gcc/cp/cp-tree.h (revision 139955)
@@ -4381,6 +4381,9 @@ extern void initialize_artificial_var (
extern tree check_var_type (tree, tree);
extern tree reshape_init (tree, tree);
+extern bool defer_mark_used_calls;
+extern GTY(()) VEC(tree, gc) *deferred_mark_used_calls;
+
/* in decl2.c */
extern bool check_java_method (tree);
extern tree build_memfn_type (tree, tree, cp_cv_quals);
--- gcc/testsuite/g++.dg/gomp/pr37189.C (revision 0)
+++ gcc/testsuite/g++.dg/gomp/pr37189.C (revision 139955)
@@ -0,0 +1,27 @@
+// PR c++/37189
+// { dg-do compile }
+// { dg-options "-fopenmp" }
+
+struct S
+{
+ S () {}
+ S (S const &) {}
+};
+
+struct T
+{
+ S s;
+};
+
+void
+bar (T &)
+{
+}
+
+int
+foo ()
+{
+ T t;
+ #pragma omp task
+ bar (t);
+}
gcc43-x86_64-va_start.patch:
--- NEW FILE gcc43-x86_64-va_start.patch ---
2008-09-02 H.J. Lu <hongjiu.lu at intel.com>
Jakub Jelinek <jakub at redhat.com>
* config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
(setup_incoming_varargs_64): Set/check ix86_varargs_gpr_size and
ix86_varargs_fpr_size. Use ix86_varargs_gpr_size instead of
REGPARM_MAX. Don't set ix86_save_varrargs_registers.
(ix86_va_start): Check ix86_varargs_gpr_size and
ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
cfun->va_list_fpr_size, respectively. Subtract 8*REGPARM_MAX
from frame pointer if ix86_varargs_gpr_size == 0.
(ix86_compute_frame_layout): Updated.
* config/i386/i386.h (ix86_save_varrargs_registers): Removed.
(ix86_varargs_gpr_size): Define.
(ix86_varargs_fpr_size): Likewise.
(machine_function): Remove save_varrargs_registers.
Add varargs_gpr_size and varargs_fpr_size.
* gcc.target/i386/amd64-abi-3.c: New test.
* gcc.target/i386/amd64-abi-4.c: Likewise.
* gcc.target/i386/amd64-abi-5.c: Likewise.
* gcc.target/i386/amd64-abi-6.c: Likewise.
--- gcc/config/i386/i386.h (revision 139909)
+++ gcc/config/i386/i386.h (revision 139910)
@@ -2440,7 +2440,8 @@ struct machine_function GTY(())
struct stack_local_entry *stack_locals;
const char *some_ld_name;
rtx force_align_arg_pointer;
- int save_varrargs_registers;
+ int varargs_gpr_size;
+ int varargs_fpr_size;
int accesses_prev_frame;
int optimize_mode_switching[MAX_386_ENTITIES];
int needs_cld;
@@ -2463,7 +2464,8 @@ struct machine_function GTY(())
};
#define ix86_stack_locals (cfun->machine->stack_locals)
-#define ix86_save_varrargs_registers (cfun->machine->save_varrargs_registers)
+#define ix86_varargs_gpr_size (cfun->machine->varargs_gpr_size)
+#define ix86_varargs_fpr_size (cfun->machine->varargs_fpr_size)
#define ix86_optimize_mode_switching (cfun->machine->optimize_mode_switching)
#define ix86_current_function_needs_cld (cfun->machine->needs_cld)
#define ix86_tls_descriptor_calls_expanded_in_cfun \
--- gcc/config/i386/i386.c (revision 139909)
+++ gcc/config/i386/i386.c (revision 139910)
@@ -1616,9 +1616,6 @@ rtx ix86_compare_op0 = NULL_RTX;
rtx ix86_compare_op1 = NULL_RTX;
rtx ix86_compare_emitted = NULL_RTX;
-/* Size of the register save area. */
-#define X86_64_VARARGS_SIZE (REGPARM_MAX * UNITS_PER_WORD + SSE_REGPARM_MAX * 16)
-
/* Define the structure for the machine field in struct function. */
struct stack_local_entry GTY(())
@@ -4976,11 +4973,22 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
alias_set_type set;
int i;
- if (! cfun->va_list_gpr_size && ! cfun->va_list_fpr_size)
+ /* GPR size of varargs save area. */
+ if (cfun->va_list_gpr_size)
+ ix86_varargs_gpr_size = REGPARM_MAX * UNITS_PER_WORD;
+ else
+ ix86_varargs_gpr_size = 0;
+
+ /* FPR size of varargs save area. We don't need it if we don't pass
+ anything in SSE registers. */
+ if (cum->sse_nregs && cfun->va_list_fpr_size)
+ ix86_varargs_fpr_size = SSE_REGPARM_MAX * 16;
+ else
+ ix86_varargs_fpr_size = 0;
+
+ if (! ix86_varargs_gpr_size && ! ix86_varargs_fpr_size)
return;
- /* Indicate to allocate space on the stack for varargs save area. */
- ix86_save_varrargs_registers = 1;
/* We need 16-byte stack alignment to save SSE registers. If user
asked for lower preferred_stack_boundary, lets just hope that he knows
what he is doing and won't varargs SSE values.
@@ -5006,7 +5014,7 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
x86_64_int_parameter_registers[i]));
}
- if (cum->sse_nregs && cfun->va_list_fpr_size)
+ if (ix86_varargs_fpr_size)
{
/* Now emit code to save SSE registers. The AX parameter contains number
of SSE parameter registers used to call this function. We use
@@ -5041,7 +5049,7 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
tmp_reg = gen_reg_rtx (Pmode);
emit_insn (gen_rtx_SET (VOIDmode, tmp_reg,
plus_constant (save_area,
- 8 * REGPARM_MAX + 127)));
+ ix86_varargs_gpr_size + 127)));
mem = gen_rtx_MEM (BLKmode, plus_constant (tmp_reg, -127));
MEM_NOTRAP_P (mem) = 1;
set_mem_alias_set (mem, set);
@@ -5145,7 +5153,7 @@ ix86_va_start (tree valist, rtx nextarg)
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
}
- if (cfun->va_list_fpr_size)
+ if (TARGET_SSE && cfun->va_list_fpr_size)
{
type = TREE_TYPE (fpr);
t = build2 (GIMPLE_MODIFY_STMT, type, fpr,
@@ -5164,12 +5172,15 @@ ix86_va_start (tree valist, rtx nextarg)
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
- if (cfun->va_list_gpr_size || cfun->va_list_fpr_size)
+ if (ix86_varargs_gpr_size || ix86_varargs_fpr_size)
{
/* Find the register save area.
Prologue of the function save it right above stack frame. */
type = TREE_TYPE (sav);
t = make_tree (type, frame_pointer_rtx);
+ if (!ix86_varargs_gpr_size)
+ t = build2 (POINTER_PLUS_EXPR, type, t,
+ size_int (-8 * REGPARM_MAX));
t = build2 (GIMPLE_MODIFY_STMT, type, sav, t);
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
@@ -6079,13 +6090,8 @@ ix86_compute_frame_layout (struct ix86_f
offset += frame->nregs * UNITS_PER_WORD;
/* Va-arg area */
- if (ix86_save_varrargs_registers)
- {
- offset += X86_64_VARARGS_SIZE;
- frame->va_arg_size = X86_64_VARARGS_SIZE;
- }
- else
- frame->va_arg_size = 0;
+ frame->va_arg_size = ix86_varargs_gpr_size + ix86_varargs_fpr_size;
+ offset += frame->va_arg_size;
/* Align start of frame for local function. */
frame->padding1 = ((offset + stack_alignment_needed - 1)
--- gcc/testsuite/gcc.target/i386/amd64-abi-3.c (revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-3.c (revision 139910)
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2 -mno-sse" } */
+/* { dg-final { scan-assembler "subq\[\\t \]*\\\$88,\[\\t \]*%rsp" } } */
+/* { dg-final { scan-assembler-not "subq\[\\t \]*\\\$216,\[\\t \]*%rsp" } } */
+
+#include <stdarg.h>
+
+void foo (va_list va_arglist);
+
+void
+test (int a1, ...)
+{
+ va_list va_arglist;
+ va_start (va_arglist, a1);
+ foo (va_arglist);
+ va_end (va_arglist);
+}
--- gcc/testsuite/gcc.target/i386/amd64-abi-5.c (revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-5.c (revision 139910)
@@ -0,0 +1,64 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2" } */
+
+#include <stdarg.h>
+#include <assert.h>
+
+int n1 = 30;
+double n2 = 324;
+double n3 = 39494.94;
+double n4 = 407;
+double n5 = 32.304;
+double n6 = 394.14;
+double n7 = 4.07;
+double n8 = 32.4;
+double n9 = 314.194;
+double n10 = 0.1407;
+
+int e1;
+double e2;
+double e3;
+double e4;
+double e5;
+double e6;
+double e7;
+double e8;
+double e9;
+double e10;
+
+static void
+__attribute__((noinline))
+test (int a1, ...)
+{
+ e1 = a1;
+ va_list va_arglist;
+ va_start (va_arglist, a1);
+ e2 = va_arg (va_arglist, double);
+ e3 = va_arg (va_arglist, double);
+ e4 = va_arg (va_arglist, double);
+ e5 = va_arg (va_arglist, double);
+ e6 = va_arg (va_arglist, double);
+ e7 = va_arg (va_arglist, double);
+ e8 = va_arg (va_arglist, double);
+ e9 = va_arg (va_arglist, double);
+ e10 = va_arg (va_arglist, double);
+ va_end (va_arglist);
+}
+
+int
+main ()
+{
+ test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
+ assert (n1 == e1);
+ assert (n2 == e2);
+ assert (n3 == e3);
+ assert (n4 == e4);
+ assert (n5 == e5);
+ assert (n6 == e6);
+ assert (n7 == e7);
+ assert (n8 == e8);
+ assert (n9 == e9);
+ assert (n10 == e10);
+ return 0;
+}
--- gcc/testsuite/gcc.target/i386/amd64-abi-4.c (revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-4.c (revision 139910)
@@ -0,0 +1,47 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2 -mno-sse" } */
+
+#include <stdarg.h>
+#include <assert.h>
+
+int n1 = 30;
+int n2 = 324;
+void *n3 = (void *) &n2;
+int n4 = 407;
+
+int e1;
+int e2;
+void *e3;
+int e4;
+
+static void
+__attribute__((noinline))
+foo (va_list va_arglist)
+{
+ e2 = va_arg (va_arglist, int);
+ e3 = va_arg (va_arglist, void *);
+ e4 = va_arg (va_arglist, int);
+}
+
+static void
+__attribute__((noinline))
+test (int a1, ...)
+{
+ e1 = a1;
+ va_list va_arglist;
+ va_start (va_arglist, a1);
+ foo (va_arglist);
+ va_end (va_arglist);
+}
+
+int
+main ()
+{
+ test (n1, n2, n3, n4);
+ assert (n1 == e1);
+ assert (n2 == e2);
+ assert (n3 == e3);
+ assert (n4 == e4);
+ return 0;
+}
--- gcc/testsuite/gcc.target/i386/amd64-abi-6.c (revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-6.c (revision 139910)
@@ -0,0 +1,71 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2" } */
+
+#include <stdarg.h>
+#include <assert.h>
+
+int n1 = 30;
+double n2 = 324;
+double n3 = 39494.94;
+double n4 = 407;
+double n5 = 32.304;
+double n6 = 394.14;
+double n7 = 4.07;
+double n8 = 32.4;
+double n9 = 314.194;
+double n10 = 0.1407;
+
+int e1;
+double e2;
+double e3;
+double e4;
+double e5;
+double e6;
+double e7;
+double e8;
+double e9;
+double e10;
+
+static void
+__attribute__((noinline))
+foo (va_list va_arglist)
+{
+ e2 = va_arg (va_arglist, double);
+ e3 = va_arg (va_arglist, double);
+ e4 = va_arg (va_arglist, double);
+ e5 = va_arg (va_arglist, double);
+ e6 = va_arg (va_arglist, double);
+ e7 = va_arg (va_arglist, double);
+ e8 = va_arg (va_arglist, double);
+ e9 = va_arg (va_arglist, double);
+ e10 = va_arg (va_arglist, double);
+}
+
+static void
+__attribute__((noinline))
+test (int a1, ...)
+{
+ va_list va_arglist;
+ e1 = a1;
+ va_start (va_arglist, a1);
+ foo (va_arglist);
+ va_end (va_arglist);
+}
+
+int
+main ()
+{
+ test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
+ assert (n1 == e1);
+ assert (n2 == e2);
+ assert (n3 == e3);
+ assert (n4 == e4);
+ assert (n5 == e5);
+ assert (n6 == e6);
+ assert (n7 == e7);
+ assert (n8 == e8);
+ assert (n9 == e9);
+ assert (n10 == e10);
+ return 0;
+}
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.242
retrieving revision 1.243
diff -u -r1.242 -r1.243
--- .cvsignore 29 Aug 2008 11:16:06 -0000 1.242
+++ .cvsignore 5 Sep 2008 08:43:54 -0000 1.243
@@ -1,2 +1,2 @@
-gcc-4.3.2-20080829.tar.bz2
+gcc-4.3.2-20080905.tar.bz2
fastjar-0.95.tar.gz
Index: gcc43.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc43.spec,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- gcc43.spec 29 Aug 2008 11:16:06 -0000 1.40
+++ gcc43.spec 5 Sep 2008 08:43:54 -0000 1.41
@@ -1,6 +1,9 @@
-%define DATE 20080829
+%define DATE 20080905
+%define SVNREV 140029
%define gcc_version 4.3.2
-%define gcc_release 1
+# Note, gcc_release must be integer, if you want to add suffixes to
+# %{release}, append them after %{gcc_release} on Release: line.
+%define gcc_release 2
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%define include_gappletviewer 1
@@ -37,6 +40,10 @@
# restrictions.
License: GPLv3+ and GPLv2+ with exceptions
Group: Development/Languages
+# The source for this package was pulled from upstream's vcs. Use the
+# following commands to generate the tarball:
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_3-branch@%{SVNREV} gcc-%{version}-%{DATE}
+# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
Source0: gcc-%{version}-%{DATE}.tar.bz2
Source1: libgcc_post_upgrade.c
Source2: README.libgcjwebplugin.so
@@ -44,7 +51,7 @@
%define fastjar_ver 0.95
Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
URL: http://gcc.gnu.org
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n))
# Need binutils with -pie support >= 2.14.90.0.4-4
# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
@@ -103,27 +110,27 @@
%endif
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
-Obsoletes: gcc3
-Obsoletes: egcs
+#Obsoletes: gcc3
+#Obsoletes: egcs
%ifarch sparc
-Obsoletes: gcc-sparc32
-Obsoletes: gcc-c++-sparc32
+#Obsoletes: gcc-sparc32
+#Obsoletes: gcc-c++-sparc32
%endif
%ifarch ppc
-Obsoletes: gcc-ppc32
-Obsoletes: gcc-c++-ppc32
+#Obsoletes: gcc-ppc32
+#Obsoletes: gcc-c++-ppc32
%endif
-Obsoletes: gcc-chill
+#Obsoletes: gcc-chill
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
Obsoletes: libgnat < %{version}-%{release}
%endif
%ifarch sparc sparc64
-Obsoletes: egcs64
+#Obsoletes: egcs64
%endif
-Obsoletes: gcc34
-Obsoletes: gcc35
-Obsoletes: gcc4
+#Obsoletes: gcc34
+#Obsoletes: gcc35
+#Obsoletes: gcc4
Prereq: /sbin/install-info
AutoReq: true
@@ -143,18 +150,8 @@
Patch14: gcc43-rh251682.patch
Patch15: gcc43-sparc-config-detection.patch
Patch16: gcc43-libgomp-omp_h-multilib.patch
-Patch17: gcc43-fortran-debug1.patch
-Patch18: gcc43-fortran-debug2.patch
-Patch19: gcc43-fortran-debug3.patch
-Patch20: gcc43-fortran-debug4.patch
-Patch21: gcc43-fortran-debug5.patch
-Patch22: gcc43-fortran-debug6.patch
-Patch23: gcc43-fortran-debug7.patch
-Patch24: gcc43-fortran-debug8.patch
-Patch25: gcc43-fortran-debug9.patch
-Patch26: gcc43-fortran-debug10.patch
-Patch27: gcc43-fortran-debug11.patch
-Patch28: gcc43-pr37248.patch
+Patch17: gcc43-x86_64-va_start.patch
+Patch18: gcc43-pr37189.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@@ -190,10 +187,10 @@
Requires: gcc = %{version}-%{release}
Requires: libstdc++ = %{version}-%{release}
Requires: libstdc++-devel = %{version}-%{release}
-Obsoletes: gcc3-c++
-Obsoletes: gcc34-c++
-Obsoletes: gcc35-c++
-Obsoletes: gcc4-c++
+#Obsoletes: gcc3-c++
+#Obsoletes: gcc34-c++
+#Obsoletes: gcc35-c++
+#Obsoletes: gcc4-c++
Autoreq: true
%description c++
@@ -204,8 +201,8 @@
%package -n libstdc++
Summary: GNU Standard C++ Library
Group: System Environment/Libraries
-Obsoletes: libstdc++3
-Obsoletes: libstdc++34
+#Obsoletes: libstdc++3
+#Obsoletes: libstdc++34
Autoreq: true
%description -n libstdc++
@@ -216,8 +213,8 @@
Summary: Header files and libraries for C++ development
Group: Development/Libraries
Requires: libstdc++ = %{version}-%{release}, %{_prefix}/%{_lib}/libstdc++.so.6
-Obsoletes: libstdc++3-devel
-Obsoletes: libstdc++34-devel
+#Obsoletes: libstdc++3-devel
+#Obsoletes: libstdc++34-devel
Autoreq: true
%description -n libstdc++-devel
@@ -230,7 +227,7 @@
Group: Development/Languages
Requires: gcc = %{version}-%{release}
Requires: libobjc = %{version}-%{release}
-Obsoletes: gcc3-objc
+#Obsoletes: gcc3-objc
Autoreq: true
%description objc
@@ -263,9 +260,9 @@
Requires: libgfortran = %{version}-%{release}
BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
Prereq: /sbin/install-info
-Obsoletes: gcc3-g77
-Obsoletes: gcc-g77
-Obsoletes: gcc4-gfortran
+#Obsoletes: gcc3-g77
+#Obsoletes: gcc-g77
+#Obsoletes: gcc4-gfortran
Autoreq: true
%description gfortran
@@ -275,7 +272,7 @@
%package -n libgfortran
Summary: Fortran 95 runtime
Group: System Environment/Libraries
-Obsoletes: libf2c
+#Obsoletes: libf2c
Autoreq: true
%description -n libgfortran
@@ -320,10 +317,10 @@
Requires: libgcj = %{version}-%{release}
Requires: libgcj-devel = %{version}-%{release}
Requires: /usr/share/java/eclipse-ecj.jar
-Obsoletes: gcc3-java
-Obsoletes: gcc34-java
-Obsoletes: gcc35-java
-Obsoletes: gcc4-java
+#Obsoletes: gcc3-java
+#Obsoletes: gcc34-java
+#Obsoletes: gcc35-java
+#Obsoletes: gcc4-java
Prereq: /sbin/install-info
Autoreq: true
@@ -348,10 +345,10 @@
BuildRequires: libXtst-devel
BuildRequires: libXt-devel
%endif
-Obsoletes: gcc-libgcj
-Obsoletes: libgcj3
-Obsoletes: libgcj34
-Obsoletes: libgcj4
+#Obsoletes: gcc-libgcj
+#Obsoletes: libgcj3
+#Obsoletes: libgcj34
+#Obsoletes: libgcj4
Autoreq: true
%description -n libgcj
@@ -364,9 +361,9 @@
Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.9
Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
Requires: /bin/awk
-Obsoletes: libgcj3-devel
-Obsoletes: libgcj34-devel
-Obsoletes: libgcj4-devel
+#Obsoletes: libgcj3-devel
+#Obsoletes: libgcj34-devel
+#Obsoletes: libgcj4-devel
Autoreq: false
Autoprov: false
@@ -378,7 +375,7 @@
Summary: Java library sources from GCC4 preview
Group: System Environment/Libraries
Requires: libgcj = %{version}-%{release}
-Obsoletes: libgcj4-src
+#Obsoletes: libgcj4-src
Autoreq: true
%description -n libgcj-src
@@ -389,7 +386,7 @@
Group: Development/Languages
Prereq: /sbin/install-info
%ifarch ia64
-Obsoletes: gnupro
+#Obsoletes: gnupro
%endif
Autoreq: true
@@ -419,7 +416,7 @@
Summary: Ada 95 support for GCC
Group: Development/Languages
Requires: gcc = %{version}-%{release}, libgnat = %{version}-%{release}
-Obsoletes: gnat-devel, gcc3-gnat
+#Obsoletes: gnat-devel, gcc3-gnat
Prereq: /sbin/install-info
Autoreq: true
@@ -430,7 +427,7 @@
%package -n libgnat
Summary: GNU Ada 95 runtime shared libraries
Group: System Environment/Libraries
-Obsoletes: gnat libgnat3
+#Obsoletes: gnat libgnat3
Autoreq: true
%description -n libgnat
@@ -455,18 +452,8 @@
%patch14 -p0 -b .rh251682~
%patch15 -p0 -b .sparc-config-detection~
%patch16 -p0 -b .libgomp-omp_h-multilib~
-%patch17 -p0 -b .fortran-debug1~
-%patch18 -p0 -b .fortran-debug2~
-%patch19 -p0 -b .fortran-debug3~
-%patch20 -p0 -b .fortran-debug4~
-%patch21 -p0 -b .fortran-debug5~
-%patch22 -p0 -b .fortran-debug6~
-%patch23 -p0 -b .fortran-debug7~
-%patch24 -p0 -b .fortran-debug8~
-%patch25 -p0 -b .fortran-debug9~
-%patch26 -p0 -b .fortran-debug10~
-%patch27 -p0 -b .fortran-debug11~
-%patch28 -p0 -b .pr37248~
+%patch17 -p0 -b .x86_64-va_start~
+%patch18 -p0 -b .pr37189~
tar xzf %{SOURCE4}
@@ -489,6 +476,38 @@
./contrib/gcc_update --touch
+# To make rpmlint happy (argh), fix up names in ChangeLog entries to valid UTF-8
+LC_ALL=C sed -i \
+ -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \
+ -e 's/\(Av\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \
+ -e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\)dola/Esp\xc3\xadndola/' \
+ -e 's/Schl\(u\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \
+ -e 's/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \
+ -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \
+ -e 's/G\xfctlein/G\xc3\xbctlein/' \
+ -e 's/G\xe1[b]or/G\xc3\xa1bor/' \
+ -e 's/L\xf3ki/L\xc3\xb3ki/' \
+ -e 's/Fautr\xc3 /Fautr\xc3\xa9 /' \
+ -e 's/S\xe9[b]astian/S\xc3\xa9bastian/' \
+ -e 's/Th\xef\xbf\xbd[d]ore/Th\xc3\xa9odore/' \
+ -e 's/Cors\xc3\xc2\xa9pius/Cors\xc3\xa9pius/' \
+ -e 's/K\xfchl/K\xc3\xbchl/' \
+ -e 's/R\xf6nnerup/R\xc3\xb6nnerup/' \
+ -e 's/L\xf8vset/L\xc3\xb8vset/' \
+ -e 's/Ph\x81\xfb\x81\xf4ng-Th\x81\xe5o/Ph\xc3\xbb\xc3\xb4ng-Th\xc3\xa5o/' \
+ -e 's/V\x81\xf5/V\xc3\xb5/' \
+ -e 's/J\xf6nsson/J\xc3\xb6nsson/' \
+ -e 's/V\xef\xbf\xbdis\xef\xbf\xbdnen/V\xc3\xa4is\xc3\xa4nen/' \
+ -e 's/J\xef\xbf\xbdrg/J\xc3\xb6rg/' \
+ -e 's/M\xef\xbf\xbdsli/M\xc3\xb6sli/' \
+ -e 's/R\xe4ty/R\xc3\xa4ty/' \
+ -e 's/2003\xc2\xad-/2003-/' \
+ -e 's/\xc2\xa0/ /g' \
+ -e 's/ \xa0/ /g' \
+ -e 's/\xa0 //' \
+ `find . -name \*ChangeLog\*`
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
@@ -523,12 +542,6 @@
mkdir obj-%{gcc_target_platform}
cd obj-%{gcc_target_platform}
-if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then
- mkdir locale
- localedef -f ISO-8859-1 -i de_DE locale/de_DE
- export LOCPATH=`pwd`/locale:/usr/lib/locale
-fi
-
%if %{build_java}
%if !%{bootstrap_java}
# If we don't have gjavah in $PATH, try to build it with the old gij
@@ -738,10 +751,6 @@
cd obj-%{gcc_target_platform}
-if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then
- export LOCPATH=`pwd`/locale:/usr/lib/locale
-fi
-
%if %{build_java}
export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
%if !%{bootstrap_java}
@@ -1073,6 +1082,7 @@
rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
rm -f $RPM_BUILD_ROOT%{_prefix}/lib/{32,64}/libiberty.a
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libssp*
+rm -f $RPM_BUILD_ROOT%{_prefix}/bin/gnative2ascii
%ifarch %{multilib_64_archs}
# Remove libraries for the other arch on multilib arches
@@ -1692,6 +1702,18 @@
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Fri Sep 5 2008 Jakub Jelinek <jakub at redhat.com> 4.3.2-2
+- update from gcc-4_3-branch
+ - PRs c++/37348, c/37261, fortran/36371, fortran/37193, middle-end/36449,
+ target/36332, target/37168
+- make ChangeLog files and gcc.info valid UTF-8, remove gnative2ascii from
+ gcc-gnat, comment out most of the Obsoletes (#225778)
+- on x86_64 decrease frame size in varargs functions that don't need saving
+ gpr or fpr registers
+- fix ICE on implicitly determined firstprivate where copy ctor or dtor
+ needs synthetization (PR c++/37189)
+- document how to recrease the tarball
+
* Fri Aug 29 2008 Jakub Jelinek <jakub at redhat.com> 4.3.2-1
- update from gcc-4_3-branch
- 4.3.2 release
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/sources,v
retrieving revision 1.245
retrieving revision 1.246
diff -u -r1.245 -r1.246
--- sources 29 Aug 2008 11:16:06 -0000 1.245
+++ sources 5 Sep 2008 08:43:54 -0000 1.246
@@ -1,2 +1,2 @@
-69f70d92142466361146326f840a6185 gcc-4.3.2-20080829.tar.bz2
+373bfd18d804b93123d89b793967fb3b gcc-4.3.2-20080905.tar.bz2
92a70f9e56223b653bce0f58f90cf950 fastjar-0.95.tar.gz
--- gcc43-fortran-debug1.patch DELETED ---
--- gcc43-fortran-debug10.patch DELETED ---
--- gcc43-fortran-debug11.patch DELETED ---
--- gcc43-fortran-debug2.patch DELETED ---
--- gcc43-fortran-debug3.patch DELETED ---
--- gcc43-fortran-debug4.patch DELETED ---
--- gcc43-fortran-debug5.patch DELETED ---
--- gcc43-fortran-debug6.patch DELETED ---
--- gcc43-fortran-debug7.patch DELETED ---
--- gcc43-fortran-debug8.patch DELETED ---
--- gcc43-fortran-debug9.patch DELETED ---
--- gcc43-pr37248.patch DELETED ---
More information about the fedora-extras-commits
mailing list