[meego-commits] 5539: Changes to Trunk:Testing/gcc

Austin Zhang austin.zhang at intel.com
Sat Jul 10 04:39:01 UTC 2010


Hi,
I have made the following changes to gcc in project Trunk:Testing. Please review and accept ASAP.

Thank You,
Austin Zhang

[This message was auto-generated]

---

Request #5539:

  submit:   home:austin:branches:Trunk:Testing/gcc(r3)(cleanup) -> Trunk:Testing/gcc


Message:
    Applied 4.5.0 mainline branch patch for fixing PR#43572(PR#43904), Added missing symbolic link

State:   new          2010-07-09T16:34:21 austin
Comment: None



changes files:
--------------
--- gcc.changes
+++ gcc.changes
@@ -0,0 +1,4 @@
+* Tue Jul 08 2010 Austin Zhang <austin.zhang at intel.com> - 4.5.0
+- Applied 4.5.0 mainline branch patch for fixing PR#43572(PR#43904)
+- Added missing symbolic link
+

new:
----
  gcc45-pr43572.patch

spec files:
-----------
--- cross-armv5tel-gcc-accel.spec
+++ cross-armv5tel-gcc-accel.spec
@@ -181,6 +181,7 @@
 Patch16: gcc44-libgomp-omp_h-multilib.patch
 Patch20: gcc44-libtool-no-rpath.patch
 Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
 
 Patch40: gcc45-use-atom.patch
 Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
 %patch29 -p0 -b .libstdc++-docs~
 %endif
 
+%patch30 -p1 -b .pr43572
 %patch40 -p1 -b .atom
 
 #%patch42 -p0 -b .var-track1~
@@ -924,6 +926,7 @@
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
 %ifarch %{multilib_64_archs}
 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
--- cross-armv5tel-gcc.spec
+++ cross-armv5tel-gcc.spec
@@ -181,6 +181,7 @@
 Patch16: gcc44-libgomp-omp_h-multilib.patch
 Patch20: gcc44-libtool-no-rpath.patch
 Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
 
 Patch40: gcc45-use-atom.patch
 Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
 %patch29 -p0 -b .libstdc++-docs~
 %endif
 
+%patch30 -p1 -b .pr43572
 %patch40 -p1 -b .atom
 
 #%patch42 -p0 -b .var-track1~
@@ -924,6 +926,7 @@
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
 %ifarch %{multilib_64_archs}
 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
--- cross-armv7l-gcc-accel.spec
+++ cross-armv7l-gcc-accel.spec
@@ -181,6 +181,7 @@
 Patch16: gcc44-libgomp-omp_h-multilib.patch
 Patch20: gcc44-libtool-no-rpath.patch
 Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
 
 Patch40: gcc45-use-atom.patch
 Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
 %patch29 -p0 -b .libstdc++-docs~
 %endif
 
+%patch30 -p1 -b .pr43572
 %patch40 -p1 -b .atom
 
 #%patch42 -p0 -b .var-track1~
@@ -924,6 +926,7 @@
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
 %ifarch %{multilib_64_archs}
 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
--- cross-armv7l-gcc.spec
+++ cross-armv7l-gcc.spec
@@ -181,6 +181,7 @@
 Patch16: gcc44-libgomp-omp_h-multilib.patch
 Patch20: gcc44-libtool-no-rpath.patch
 Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
 
 Patch40: gcc45-use-atom.patch
 Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
 %patch29 -p0 -b .libstdc++-docs~
 %endif
 
+%patch30 -p1 -b .pr43572
 %patch40 -p1 -b .atom
 
 #%patch42 -p0 -b .var-track1~
@@ -924,6 +926,7 @@
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
 %ifarch %{multilib_64_archs}
 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
--- gcc.spec
+++ gcc.spec
@@ -181,6 +181,7 @@
 Patch16: gcc44-libgomp-omp_h-multilib.patch
 Patch20: gcc44-libtool-no-rpath.patch
 Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
 
 Patch40: gcc45-use-atom.patch
 Patch41: libgcc_post_upgrade.c.arm.patch
@@ -522,6 +523,7 @@
 %patch29 -p0 -b .libstdc++-docs~
 %endif
 
+%patch30 -p1 -b .pr43572
 %patch40 -p1 -b .atom
 
 #%patch42 -p0 -b .var-track1~
@@ -924,6 +926,7 @@
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
 ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
 %ifarch %{multilib_64_archs}
 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so

other changes:
--------------

++++++ gcc45-pr43572.patch (new)
--- gcc45-pr43572.patch
+++ gcc45-pr43572.patch
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c	1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c	2010-07-09 13:56:34.593063124 +0800
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-tree-tailc" } */
++
++void
++set_integer (void *dest, int value, int length)
++{
++  int tmp = value;
++  __builtin_memcpy (dest, (void *) &tmp, length);
++}
++
++/* { dg-final { scan-tree-dump-not "tail call" "tailc" } } */
++/* { dg-final { cleanup-tree-dump "tailc" } } */
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c	1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c	2010-07-09 13:56:34.619072316 +0800
+@@ -0,0 +1,33 @@
++/* PR tree-optimization/43904.  */
++/* { dg-do run } */
++/* { dg-options "-O1 -foptimize-sibling-calls" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void abort(void);
++
++void *memcpy(void *dest, const void *src, size_t n);
++
++void
++buggy_init(void *ptr, size_t size)
++{
++  const char *str = "Hello world!";
++  memcpy(ptr, &str, size);
++}
++
++void
++expose_bug(void *ptr, size_t size)
++{
++  const char *str;
++  memcpy(&str, ptr, size);
++  if (*str != 'H')
++    abort ();
++}
++
++int
++main()
++{
++  const char *ptr;
++  buggy_init(&ptr, sizeof(ptr));
++  expose_bug(&ptr, sizeof(ptr));
++  return 0;
++}
+diff -Naurp gcc-4.5.0-orig/gcc/tree-tailcall.c gcc-4.5.0/gcc/tree-tailcall.c
+--- gcc-4.5.0-orig/gcc/tree-tailcall.c	2010-07-09 13:46:12.430567142 +0800
++++ gcc-4.5.0/gcc/tree-tailcall.c	2010-07-09 13:50:35.371673436 +0800
+@@ -375,6 +375,8 @@ find_tail_calls (basic_block bb, struct 
+   tree m, a;
+   basic_block abb;
+   size_t idx;
++  tree var;
++  referenced_var_iterator rvi;
+ 
+   if (!single_succ_p (bb))
+     return;
+@@ -462,6 +464,16 @@ find_tail_calls (basic_block bb, struct 
+ 	tail_recursion = true;
+     }
+ 
++    /* Make sure the tail invocation of this function does not refer
++       to local variables.  */
++    FOR_EACH_REFERENCED_VAR (var, rvi)
++      {
++        if (TREE_CODE (var) != PARM_DECL
++           && auto_var_in_fn_p (var, cfun->decl)
++           && ref_maybe_used_by_stmt_p (call, var))
++         return;
++      }
++
+   /* Now check the statements after the call.  None of them has virtual
+      operands, so they may only depend on the call through its return
+      value.  The return value should also be dependent on each of them,



More information about the MeeGo-commits mailing list