- make ppc32 TLS PIC code sequences compatible with secure plt (#184446)
(Richard Henderson and myself)
This commit is contained in:
parent
ba74288e4e
commit
417da0080c
44
gcc41-rh184446.patch
Normal file
44
gcc41-rh184446.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
for gcc/ChangeLog
|
||||||
|
from Richard Henderson <rth@redhat.com>, Alexandre Oliva <aoliva@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));
|
@ -1,6 +1,6 @@
|
|||||||
%define DATE 20060304
|
%define DATE 20060304
|
||||||
%define gcc_version 4.1.0
|
%define gcc_version 4.1.0
|
||||||
%define gcc_release 2
|
%define gcc_release 3
|
||||||
%define _unpackaged_files_terminate_build 0
|
%define _unpackaged_files_terminate_build 0
|
||||||
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%ifarch %{ix86} x86_64 ia64
|
%ifarch %{ix86} x86_64 ia64
|
||||||
@ -107,6 +107,7 @@ Patch9: gcc41-ppc32-retaddr.patch
|
|||||||
Patch10: gcc41-x86_64-sse3.patch
|
Patch10: gcc41-x86_64-sse3.patch
|
||||||
Patch11: gcc41-mni.patch
|
Patch11: gcc41-mni.patch
|
||||||
Patch12: gcc41-cfaval.patch
|
Patch12: gcc41-cfaval.patch
|
||||||
|
Patch13: gcc41-rh184446.patch
|
||||||
|
|
||||||
%define _gnu %{nil}
|
%define _gnu %{nil}
|
||||||
%ifarch sparc
|
%ifarch sparc
|
||||||
@ -398,6 +399,7 @@ which are required to run programs compiled with the GNAT.
|
|||||||
%patch10 -p0 -b .x86_64-sse3~
|
%patch10 -p0 -b .x86_64-sse3~
|
||||||
%patch11 -p0 -b .mni~
|
%patch11 -p0 -b .mni~
|
||||||
%patch12 -p0 -b .cfaval~
|
%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/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
|
sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
|
||||||
@ -1415,6 +1417,10 @@ fi
|
|||||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 9 2006 Alexandre Oliva <aoliva@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@redhat.com> 4.1.0-2
|
* Sat Mar 4 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-2
|
||||||
- update from -gcc-4_1-branch (-r111570:111697)
|
- update from -gcc-4_1-branch (-r111570:111697)
|
||||||
- PRs c++/26291, libgfortran/26136, libgfortran/26423, libgfortran/26464,
|
- PRs c++/26291, libgfortran/26136, libgfortran/26423, libgfortran/26464,
|
||||||
|
Loading…
Reference in New Issue
Block a user