From 81cc570d1782bb095c717c464235896901a60fdc Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 6 Apr 2006 16:56:54 +0000 Subject: [PATCH] 4.1.0-6 --- .cvsignore | 2 +- gcc41-objc-rh185398.patch | 77 +++++++++++++++++++++++++++++++++++++++ gcc41-pr20297-test.patch | 7 ++-- gcc41.spec | 28 +++++++++++--- sources | 2 +- 5 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 gcc41-objc-rh185398.patch diff --git a/.cvsignore b/.cvsignore index 704d987..f697128 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -gcc-4.1.0-20060405.tar.bz2 +gcc-4.1.0-20060406.tar.bz2 diff --git a/gcc41-objc-rh185398.patch b/gcc41-objc-rh185398.patch new file mode 100644 index 0000000..3dcc937 --- /dev/null +++ b/gcc41-objc-rh185398.patch @@ -0,0 +1,77 @@ +2006-04-06 Jakub Jelinek + + * objc-act.c (objc_push_param): If changing type, run relayout_decl + on the parameter. + + * objc/compile/20060406-1.m: New test. + +--- gcc/objc/objc-act.c.jj 2006-03-04 08:01:27.000000000 +0100 ++++ gcc/objc/objc-act.c 2006-04-06 16:56:57.000000000 +0200 +@@ -1,6 +1,6 @@ + /* Implement classes and message passing for Objective C. + Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, +- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++ 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Contributed by Steve Naroff. + + This file is part of GCC. +@@ -8222,21 +8222,29 @@ static GTY(()) tree objc_parmlist = NULL + static void + objc_push_parm (tree parm) + { ++ tree type = TREE_TYPE (parm); ++ + /* Decay arrays and functions into pointers. */ + if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE) +- TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (TREE_TYPE (parm))); ++ TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (type)); + else if (TREE_CODE (TREE_TYPE (parm)) == FUNCTION_TYPE) +- TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (parm)); ++ TREE_TYPE (parm) = build_pointer_type (type); + + DECL_ARG_TYPE (parm) + = lang_hooks.types.type_promotes_to (TREE_TYPE (parm)); + ++ if (type != TREE_TYPE (parm)) ++ { ++ relayout_decl (parm); ++ type = TREE_TYPE (parm); ++ } ++ + /* Record constancy and volatility. */ + c_apply_type_quals_to_decl +- ((TYPE_READONLY (TREE_TYPE (parm)) ? TYPE_QUAL_CONST : 0) +- | (TYPE_RESTRICT (TREE_TYPE (parm)) ? TYPE_QUAL_RESTRICT : 0) +- | (TYPE_VOLATILE (TREE_TYPE (parm)) ? TYPE_QUAL_VOLATILE : 0), parm); +- ++ ((TYPE_READONLY (type) ? TYPE_QUAL_CONST : 0) ++ | (TYPE_RESTRICT (type) ? TYPE_QUAL_RESTRICT : 0) ++ | (TYPE_VOLATILE (type) ? TYPE_QUAL_VOLATILE : 0), parm); ++ + objc_parmlist = chainon (objc_parmlist, parm); + } + +--- gcc/testsuite/objc/compile/20060406-1.m.jj 2006-04-06 17:25:59.000000000 +0200 ++++ gcc/testsuite/objc/compile/20060406-1.m 2006-04-06 17:20:48.000000000 +0200 +@@ -0,0 +1,21 @@ ++typedef struct ++{ ++ void *p; ++} *S; ++ ++@protocol O ++- (unsigned)j; ++@end ++ ++@interface I +++ (unsigned char)T:(S[2])p v:(S)h; ++@end ++ ++@implementation I +++ (unsigned char)T:(S[2])p v:(S)h ++{ ++ p[0] = (S) 0; ++ p[1] = (S) 0; ++ return 0; ++} ++@end diff --git a/gcc41-pr20297-test.patch b/gcc41-pr20297-test.patch index e20c38c..424a5a6 100644 --- a/gcc41-pr20297-test.patch +++ b/gcc41-pr20297-test.patch @@ -1,4 +1,4 @@ -2006-03-28 Jakub Jelinek +2006-04-06 Jakub Jelinek PR middle-end/20297 * gcc.dg/visibility-11.c: Moved to... @@ -34,12 +34,13 @@ -} --- gcc/testsuite/gcc.target/i386/visibility-1.c.jj 2006-03-28 14:30:17.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/visibility-1.c 2006-03-28 14:58:48.000000000 +0200 -@@ -0,0 +1,24 @@ +@@ -0,0 +1,25 @@ +/* PR middle-end/20297 */ +/* The memcpy FUNCTION_DECL built in the middle-end for block moves got + hidden visibility from the first push, so the call didn't use the PLT. */ + -+/* { dg-do compile { target { { i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* x86_64-*-*bsd* } && ilp32 } } } */ ++/* { dg-do compile { target { { *-*-linux* *-*-*bsd* *-*-solaris2* *-*-elf* *-*-gnu* *-*-sysv[45]* } && ilp32 } } } */ ++/* { dg-require-effective-target fpic } */ +/* { dg-require-visibility "" } */ +/* { dg-options "-Os -fpic" } */ +/* { dg-final { scan-assembler "memcpy@PLT" } } */ diff --git a/gcc41.spec b/gcc41.spec index 6d13dfd..d4a1bd1 100644 --- a/gcc41.spec +++ b/gcc41.spec @@ -1,6 +1,6 @@ -%define DATE 20060405 +%define DATE 20060406 %define gcc_version 4.1.0 -%define gcc_release 5 +%define gcc_release 6 %define _unpackaged_files_terminate_build 0 %define multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 @@ -111,6 +111,9 @@ Patch13: gcc41-rh184446.patch Patch14: gcc41-pr21764.patch Patch15: gcc41-pr21581.patch Patch16: gcc41-pr20297-test.patch +Patch17: gcc41-java-pr13212.patch +Patch18: gcc41-objc-rh185398.patch +Patch19: gcc41-pr27057.patch %define _gnu %{nil} %ifarch sparc @@ -403,9 +406,12 @@ which are required to run programs compiled with the GNAT. %patch11 -p0 -b .mni~ %patch12 -p0 -b .cfaval~ %patch13 -p0 -b .rh184446~ -#%patch14 -p0 -b .pr21764~ +%patch14 -p0 -b .pr21764~ #%patch15 -p0 -b .pr21581~ -#%patch16 -p0 -E -b .pr20297-test~ +%patch16 -p0 -E -b .pr20297-test~ +%patch17 -p0 -b .java-pr13212~ +%patch18 -p0 -b .objc-rh185398~ +%patch19 -p0 -b .pr27057~ sed -i -e 's/4\.1\.1/4.1.0/' gcc/BASE-VER gcc/version.c sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c @@ -1423,7 +1429,19 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog -* Wed Apr 4 2006 Jakub Jelinek 4.1.0-5 +* Thu Apr 6 2006 Jakub Jelinek 4.1.0-6 +- update from gcc-4_1-branch (-r) + - PRs classpath/24752, classpath/27028, libgcj/26625, libgcj/27024, + tree-optimization/26996 +- reenable PR c++/19238, c++/21764 fixes, only PR c++/21581 is not + applied +- better fix for Java GC vs. pthread_create (Bryce McKinlay, #, + PR libgcj/13212) +- fix objc_push_parm (#185398) +- fix ICE with -feliminate-dwarf2-dups and using namespace (#187787, + PR debug/27057) + +* Wed Apr 5 2006 Jakub Jelinek 4.1.0-5 - update from gcc-4_1-branch (-r112431:112706) - PRs bootstrap/26936, bootstrap/27023, classpath/25924, fortran/19303, fortran/25358, fortran/26816, java/25414, java/26042, java/26858, diff --git a/sources b/sources index 9874c67..c805a96 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2ac716d7aab984dd14038adfb230eca6 gcc-4.1.0-20060405.tar.bz2 +4a823d2ae3352d0bf18d1f25880a6ec0 gcc-4.1.0-20060406.tar.bz2