ppc, ppc64, ppc64le: Properly mark stack as non-executable.

The upstream fix was not applied completely.
This commit is contained in:
Richard W.M. Jones 2015-04-23 14:41:34 +01:00
parent 9ca8e1ea34
commit 4c52516d71
16 changed files with 61 additions and 21 deletions

View File

@ -20,5 +20,5 @@ index 6c66ecc..5d4b626 100644
/ocamlc.opt
/expunge
--
2.1.0
2.3.1

View File

@ -14,5 +14,5 @@ diff --git a/compilerlibs/.exists b/compilerlibs/.exists
new file mode 100644
index 0000000..e69de29
--
2.1.0
2.3.1

View File

@ -25,5 +25,5 @@ index 2517434..75a75b4 100644
sed -n -e 's/^#ml //p' ../config/Makefile) \
> ocamlmklibconfig.ml
--
2.1.0
2.3.1

View File

@ -236,5 +236,5 @@ index 0000000..e28800f
+ header.units
+ end
--
2.1.0
2.3.1

View File

@ -23,5 +23,5 @@ index 3edb9fd..18b95cd 100755
cclibs="$cclibs $mathlib"
--
2.1.0
2.3.1

View File

@ -2126,5 +2126,5 @@ index 18b95cd..57c8699 100755
aspp="$bytecc -c";;
sparc,solaris) as="${TOOLPREF}as"
--
2.1.0
2.3.1

View File

@ -201,5 +201,5 @@ index b7bba9b..b582b6a 100644
| Iintop(Imod) -> 40 (* assuming full stall *)
| Iintop(Icomp _) -> 4
--
2.1.0
2.3.1

View File

@ -1913,5 +1913,5 @@ index 57c8699..c04272c 100755
aspp="$bytecc -c";;
sparc,solaris) as="${TOOLPREF}as"
--
2.1.0
2.3.1

View File

@ -200,5 +200,5 @@ index b7bba9b..b582b6a 100644
| Iintop(Imod) -> 40 (* assuming full stall *)
| Iintop(Icomp _) -> 4
--
2.1.0
2.3.1

View File

@ -35,5 +35,5 @@ index 9b4b9ab..c23168b 100644
+ /* Mark stack as non-executable, PR#4564 */
+ .section .note.GNU-stack,"",%progbits
--
2.1.0
2.3.1

View File

@ -114,5 +114,5 @@ index d7b8ac0..a8f3964 100644
treat_action action
with Bad m -> stop (Message m);
--
2.1.0
2.3.1

View File

@ -80,5 +80,5 @@ index 0999edf..71af638 100644
Examples ([cmd] is assumed to be the command name):
--
2.1.0
2.3.1

View File

@ -1959,5 +1959,5 @@ index cb3d995..93cdfeb 100644
lseek(fd, (long) -TRAILER_SIZE, SEEK_END);
--
2.1.0
2.3.1

View File

@ -1,4 +1,4 @@
From 074d0a2b85a7d4f505846ac629b28a3a8894ebbc Mon Sep 17 00:00:00 2001
From 8e493f90181b8b592185b2f9322575113b5ff7d5 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 11 Sep 2014 14:49:54 +0100
Subject: [PATCH 14/15] ppc, ppc64, ppc64le: Mark stack as non-executable.
@ -8,10 +8,46 @@ i686 & x86-64:
http://caml.inria.fr/mantis/view.php?id=4564
---
asmrun/power-elf.S | 3 +++
asmrun/power64-elf.S | 2 ++
2 files changed, 5 insertions(+)
asmcomp/power/emit.mlp | 3 ++-
asmcomp/power64/emit.mlp | 3 ++-
asmcomp/power64le/emit.mlp | 3 ++-
asmrun/power-elf.S | 3 +++
asmrun/power64-elf.S | 2 ++
5 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/asmcomp/power/emit.mlp b/asmcomp/power/emit.mlp
index 0a26ed1..8e31b58 100644
--- a/asmcomp/power/emit.mlp
+++ b/asmcomp/power/emit.mlp
@@ -963,4 +963,5 @@ let end_assembly() =
` .long ({emit_label lbl} - .) + {emit_int32 ofs}\n`);
efa_def_label = (fun l -> `{emit_label l}:\n`);
efa_string = (fun s -> emit_bytes_directive " .byte " (s ^ "\000"))
- }
+ };
+ `.section .note.GNU-stack,\"\",%progbits; .previous\n`
diff --git a/asmcomp/power64/emit.mlp b/asmcomp/power64/emit.mlp
index 9fd59b2..4e0317a 100644
--- a/asmcomp/power64/emit.mlp
+++ b/asmcomp/power64/emit.mlp
@@ -990,4 +990,5 @@ let end_assembly() =
`{emit_symbol lbl}:\n`;
` .quad {emit_int (List.length !frame_descriptors)}\n`;
List.iter emit_frame !frame_descriptors;
- frame_descriptors := []
+ frame_descriptors := [];
+ `.section .note.GNU-stack,\"\",%progbits; .previous\n`
diff --git a/asmcomp/power64le/emit.mlp b/asmcomp/power64le/emit.mlp
index 3f34102..60df72c 100644
--- a/asmcomp/power64le/emit.mlp
+++ b/asmcomp/power64le/emit.mlp
@@ -983,4 +983,5 @@ let end_assembly() =
`{emit_symbol lbl}:\n`;
` .quad {emit_int (List.length !frame_descriptors)}\n`;
List.iter emit_frame !frame_descriptors;
- frame_descriptors := []
+ frame_descriptors := [];
+ `.section .note.GNU-stack,\"\",%progbits; .previous\n`
diff --git a/asmrun/power-elf.S b/asmrun/power-elf.S
index facbfbf..14d28a0 100644
--- a/asmrun/power-elf.S
@ -34,5 +70,5 @@ index 98c42e2..b7bfce4 100644
+/* Mark stack as non-executable, PR#4564 */
+ .section .note.GNU-stack,"",%progbits
--
2.1.0
2.3.1

View File

@ -1,4 +1,4 @@
From 632c63206ec47f67af0027b5c0d173784e510c08 Mon Sep 17 00:00:00 2001
From df5201a35d02a13ad7ffd6fb38252851910cae43 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 24 Oct 2014 10:10:54 +0100
Subject: [PATCH 15/15] ppc64/ppc64le: proc: Interim definitions for op_is_pure
@ -80,5 +80,5 @@ index 476c984..56473ac 100644
let num_stack_slots = [| 0; 0 |]
--
2.1.0
2.3.1

View File

@ -17,7 +17,7 @@
Name: ocaml
Version: 4.02.1
Release: 2%{?dist}
Release: 3%{?dist}
Summary: OCaml compiler and programming environment
@ -421,6 +421,10 @@ fi
%changelog
* Thu Apr 23 2015 Richard W.M. Jones <rjones@redhat.com> - 4.02.1-3
- ppc, ppc64, ppc64le: Properly mark stack as non-executable.
The upstream fix was not applied completely.
* Thu Feb 26 2015 Richard W.M. Jones <rjones@redhat.com> - 4.02.1-2
- Kill dependency on rpm-build. Added in 2009, apparently by accident.
(Thanks: Jon Ludlam)