rpms/gcc/devel gcc44-unique-object.patch, NONE, 1.1 .cvsignore, 1.279, 1.280 gcc.spec, 1.55, 1.56 sources, 1.282, 1.283

Jakub Jelinek jakub at fedoraproject.org
Thu Jul 23 16:44:31 UTC 2009


Author: jakub

Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12132

Modified Files:
	.cvsignore gcc.spec sources 
Added Files:
	gcc44-unique-object.patch 
Log Message:
4.4.1-2

gcc44-unique-object.patch:
 config.in      |    6 ++++++
 config/elfos.h |   49 +++++++++++++++++++++++++++++++------------------
 configure      |   38 ++++++++++++++++++++++++++++++++++++++
 configure.ac   |    6 ++++++
 4 files changed, 81 insertions(+), 18 deletions(-)

--- NEW FILE gcc44-unique-object.patch ---
2009-07-22  Jason Merrill  <jason at redhat.com>

	* 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
 


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.279
retrieving revision 1.280
diff -u -p -r1.279 -r1.280
--- .cvsignore	22 Jul 2009 12:32:06 -0000	1.279
+++ .cvsignore	23 Jul 2009 16:44:00 -0000	1.280
@@ -1,2 +1,2 @@
 fastjar-0.97.tar.gz
-gcc-4.4.1-20090722.tar.bz2
+gcc-4.4.1-20090723.tar.bz2


Index: gcc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc.spec,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -p -r1.55 -r1.56
--- gcc.spec	22 Jul 2009 12:32:06 -0000	1.55
+++ gcc.spec	23 Jul 2009 16:44:00 -0000	1.56
@@ -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
 # 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 G
 %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 <jakub at redhat.com> 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 <jakub at redhat.com> 4.4.1-1
 - update from gcc-4_4-branch
   - GCC 4.4.1 release


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/sources,v
retrieving revision 1.282
retrieving revision 1.283
diff -u -p -r1.282 -r1.283
--- sources	22 Jul 2009 12:32:06 -0000	1.282
+++ sources	23 Jul 2009 16:44:00 -0000	1.283
@@ -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




More information about the fedora-extras-commits mailing list