From 9d32d8a8bc9ec2124b40f80285a4d650738d1881 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Jul 23 2009 16:44:00 +0000 Subject: 4.4.1-2 --- diff --git a/.cvsignore b/.cvsignore index c3c1489..de7ed9f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ fastjar-0.97.tar.gz -gcc-4.4.1-20090722.tar.bz2 +gcc-4.4.1-20090723.tar.bz2 diff --git a/gcc.spec b/gcc.spec index a58dc77..3c49dde 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20090722 -%global SVNREV 149928 +%global DATE 20090723 +%global SVNREV 150015 %global gcc_version 4.4.1 # 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 1 +%global gcc_release 2 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %global include_gappletviewer 1 @@ -64,7 +64,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7 # Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8 # Need binutils which support --build-id >= 2.17.50.0.17-3 -BuildRequires: binutils >= 2.17.50.0.17-3 +# Need binutils which support %gnu_unique_object >= 2.19.51.0.14 +BuildRequires: binutils >= 2.19.51.0.14 # While gcc doesn't include statically linked binaries, during testing # -static is used several times. BuildRequires: glibc-static @@ -115,7 +116,8 @@ Requires: cpp = %{version}-%{release} # Need binutils that supports --hash-style=gnu # Need binutils that support mffgpr/mftgpr # Need binutils that support --build-id -Requires: binutils >= 2.17.50.0.17-3 +# Need binutils which support %gnu_unique_object +Requires: binutils >= 2.19.51.0.14 # Make sure gdb will understand DW_FORM_strp Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.2.90-12 @@ -160,6 +162,7 @@ Patch28: gcc44-pr38757.patch Patch29: gcc44-libstdc++-docs.patch Patch30: gcc44-rh503816-1.patch Patch31: gcc44-rh503816-2.patch +Patch32: gcc44-unique-object.patch Patch1000: fastjar-0.97-segfault.patch @@ -469,6 +472,7 @@ which are required to compile with the GNAT. %endif %patch30 -p0 -b .rh503816-1~ %patch31 -p0 -b .rh503816-2~ +%patch32 -p0 -b .unique-object~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* @@ -1807,6 +1811,13 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Thu Jul 23 2009 Jakub Jelinek 4.4.1-3 +- update from gcc-4_4-branch + - PRs rtl-optimization/40710, target/40832, tree-optimization/40321 +- use STB_GNU_UNIQUE symbols for inline fn local statics and + template static data members +- use strcmp for C++ typeinfo comparisons instead of pointer comparison + * Wed Jul 22 2009 Jakub Jelinek 4.4.1-1 - update from gcc-4_4-branch - GCC 4.4.1 release diff --git a/gcc44-unique-object.patch b/gcc44-unique-object.patch new file mode 100644 index 0000000..1396e69 --- /dev/null +++ b/gcc44-unique-object.patch @@ -0,0 +1,142 @@ +2009-07-22 Jason Merrill + + * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object + type if available. + * configure.ac: Test for it. + * configure, config.in: Regenerate. + +--- gcc/config/elfos.h.jj 2009-04-14 15:51:24.000000000 +0200 ++++ gcc/config/elfos.h 2009-07-23 09:25:46.000000000 +0200 +@@ -289,24 +289,37 @@ see the files COPYING3 and COPYING.RUNTI + + /* Write the extra assembler code needed to declare an object properly. */ + +-#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \ +- do \ +- { \ +- HOST_WIDE_INT size; \ +- \ +- ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ +- \ +- size_directive_output = 0; \ +- if (!flag_inhibit_size_directive \ +- && (DECL) && DECL_SIZE (DECL)) \ +- { \ +- size_directive_output = 1; \ +- size = int_size_in_bytes (TREE_TYPE (DECL)); \ +- ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \ +- } \ +- \ +- ASM_OUTPUT_LABEL (FILE, NAME); \ +- } \ ++#ifdef HAVE_GAS_GNU_UNIQUE_OBJECT ++#define USE_GNU_UNIQUE_OBJECT 1 ++#else ++#define USE_GNU_UNIQUE_OBJECT 0 ++#endif ++ ++#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \ ++ do \ ++ { \ ++ HOST_WIDE_INT size; \ ++ \ ++ /* For template static data member instantiations or \ ++ inline fn local statics, use gnu_unique_object so that \ ++ they will be combined even under RTLD_LOCAL. */ \ ++ if (USE_GNU_UNIQUE_OBJECT \ ++ && !DECL_ARTIFICIAL (DECL) && DECL_ONE_ONLY (DECL)) \ ++ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "gnu_unique_object"); \ ++ else \ ++ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ ++ \ ++ size_directive_output = 0; \ ++ if (!flag_inhibit_size_directive \ ++ && (DECL) && DECL_SIZE (DECL)) \ ++ { \ ++ size_directive_output = 1; \ ++ size = int_size_in_bytes (TREE_TYPE (DECL)); \ ++ ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \ ++ } \ ++ \ ++ ASM_OUTPUT_LABEL (FILE, NAME); \ ++ } \ + while (0) + + /* Output the size directive for a decl in rest_of_decl_compilation +--- gcc/configure.ac.jj 2009-03-28 09:53:59.000000000 +0100 ++++ gcc/configure.ac 2009-07-23 09:25:46.000000000 +0200 +@@ -3299,6 +3299,12 @@ gcc_GAS_CHECK_FEATURE([.lcomm with align + [AC_DEFINE(HAVE_GAS_LCOMM_WITH_ALIGNMENT, 1, + [Define if your assembler supports .lcomm with an alignment field.])]) + ++gcc_GAS_CHECK_FEATURE([gnu_unique_object], gcc_cv_as_gnu_unique_object, ++ [elf,2,19,52],, ++[.type foo, @gnu_unique_object],, ++[AC_DEFINE(HAVE_GAS_GNU_UNIQUE_OBJECT, 1, ++ [Define if your assembler supports @gnu_unique_object.])]) ++ + AC_CACHE_CHECK([assembler for tolerance to line number 0], + [gcc_cv_as_line_zero], + [gcc_cv_as_line_zero=no +--- gcc/configure.jj 2009-03-28 09:53:37.000000000 +0100 ++++ gcc/configure 2009-07-23 09:26:52.000000000 +0200 +@@ -24288,6 +24288,44 @@ _ACEOF + + fi + ++echo "$as_me:$LINENO: checking assembler for gnu_unique_object" >&5 ++echo $ECHO_N "checking assembler for gnu_unique_object... $ECHO_C" >&6 ++if test "${gcc_cv_as_gnu_unique_object+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ gcc_cv_as_gnu_unique_object=no ++ if test $in_tree_gas = yes; then ++ if test $in_tree_gas_is_elf = yes \ ++ && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 19 \) \* 1000 + 52` ++ then gcc_cv_as_gnu_unique_object=yes ++fi ++ elif test x$gcc_cv_as != x; then ++ echo '.type foo, @gnu_unique_object' > conftest.s ++ if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } ++ then ++ gcc_cv_as_gnu_unique_object=yes ++ else ++ echo "configure: failed program was" >&5 ++ cat conftest.s >&5 ++ fi ++ rm -f conftest.o conftest.s ++ fi ++fi ++echo "$as_me:$LINENO: result: $gcc_cv_as_gnu_unique_object" >&5 ++echo "${ECHO_T}$gcc_cv_as_gnu_unique_object" >&6 ++if test $gcc_cv_as_gnu_unique_object = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_GAS_GNU_UNIQUE_OBJECT 1 ++_ACEOF ++ ++fi ++ + echo "$as_me:$LINENO: checking assembler for tolerance to line number 0" >&5 + echo $ECHO_N "checking assembler for tolerance to line number 0... $ECHO_C" >&6 + if test "${gcc_cv_as_line_zero+set}" = set; then +--- gcc/config.in.jj 2009-02-16 22:48:20.000000000 +0100 ++++ gcc/config.in 2009-07-23 09:26:56.000000000 +0200 +@@ -845,6 +845,12 @@ + #endif + + ++/* Define if your assembler supports @gnu_unique_object. */ ++#ifndef USED_FOR_TARGET ++#undef HAVE_GAS_GNU_UNIQUE_OBJECT ++#endif ++ ++ + /* Define if your assembler and linker support .hidden. */ + #undef HAVE_GAS_HIDDEN + diff --git a/sources b/sources index 9e907bd..a7466f7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -ffed957089f57c21981662f8f2c1e08d gcc-4.4.1-20090722.tar.bz2 +efd4e9fff96d944bf2b878aabe6a75f9 gcc-4.4.1-20090723.tar.bz2