rpms/gcc/devel gcc41-rh184446.patch,NONE,1.1 gcc41.spec,1.43,1.44

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Mar 9 23:09:51 UTC 2006


Author: aoliva

Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv24840

Modified Files:
	gcc41.spec 
Added Files:
	gcc41-rh184446.patch 
Log Message:
* Thu Mar  9 2006 Alexandre Oliva <aoliva at redhat.com> 4.1.0-3
- make ppc32 TLS PIC code sequences compatible with secure plt (#184446)
  (Richard Henderson and myself)



gcc41-rh184446.patch:
 rs6000.c |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

--- NEW FILE gcc41-rh184446.patch ---
for gcc/ChangeLog
from  Richard Henderson  <rth at redhat.com>, Alexandre Oliva  <aoliva at redhat.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
	secure-plt load sequence to compute the GOT address for -fPIC
	-msecure-plt.

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c.orig	2006-03-09 20:02:13.000000000 -0300
+++ gcc/config/rs6000/rs6000.c	2006-03-09 20:02:31.000000000 -0300
@@ -3094,10 +3094,28 @@ rs6000_legitimize_tls_address (rtx addr,
 		  tmp3 = gen_reg_rtx (Pmode);
 		  mem = gen_const_mem (Pmode, tmp1);
 
-		  first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym));
-		  emit_move_insn (tmp1, tempLR);
-		  emit_move_insn (tmp2, mem);
-		  emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
+		  if (TARGET_SECURE_PLT)
+		    {
+		      char buf[30];
+		      rtx l;
+
+		      ASM_GENERATE_INTERNAL_LABEL (buf, "LCF",
+						   rs6000_pic_labelno++);
+		      l = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
+
+		      first = emit_insn (gen_load_toc_v4_PIC_1 (tempLR, l));
+		      emit_move_insn (tmp1, tempLR);
+		      emit_insn (gen_load_toc_v4_PIC_3b (tmp2, tmp1, gsym, l));
+		      emit_insn (gen_load_toc_v4_PIC_3c (tmp3, tmp2, gsym, l));
+		    }
+		  else
+		    {
+		      first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym));
+		      emit_move_insn (tmp1, tempLR);
+		      emit_move_insn (tmp2, mem);
+		      emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
+		    }
+
 		  last = emit_move_insn (got, tmp3);
 		  REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, gsym,
 							REG_NOTES (last));


Index: gcc41.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- gcc41.spec	4 Mar 2006 08:09:07 -0000	1.43
+++ gcc41.spec	9 Mar 2006 23:09:49 -0000	1.44
@@ -1,6 +1,6 @@
 %define DATE 20060304
 %define gcc_version 4.1.0
-%define gcc_release 2
+%define gcc_release 3
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64
@@ -107,6 +107,7 @@
 Patch10: gcc41-x86_64-sse3.patch
 Patch11: gcc41-mni.patch
 Patch12: gcc41-cfaval.patch
+Patch13: gcc41-rh184446.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -398,6 +399,7 @@
 %patch10 -p0 -b .x86_64-sse3~
 %patch11 -p0 -b .mni~
 %patch12 -p0 -b .cfaval~
+%patch13 -p0 -b .rh184446~
 
 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
@@ -1415,6 +1417,10 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Thu Mar  9 2006 Alexandre Oliva <aoliva at redhat.com> 4.1.0-3
+- make ppc32 TLS PIC code sequences compatible with secure plt (#184446)
+  (Richard Henderson and myself)
+
 * Sat Mar  4 2006 Jakub Jelinek <jakub at redhat.com> 4.1.0-2
 - update from -gcc-4_1-branch (-r111570:111697)
   - PRs c++/26291, libgfortran/26136, libgfortran/26423, libgfortran/26464,




More information about the fedora-cvs-commits mailing list