From 5815ad5d254536e108d0d3c204a8f97d74cd90b0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 19 Jul 2014 11:34:01 +0100 Subject: [PATCH] Rebase on top of 4.02.0 beta commit c4f3a6c7. - Remove the patch to disable CSE, since that problem is fixed upstream. - Remove the patch fixing caml_callback2 on aarch64 since that patch is now upstream. --- 0001-Disable-CSE.patch | 38 ------------------- ...ore-.-configure-it-s-a-real-git-file.patch | 4 +- ...pilerlibs-directory-is-created-by-gi.patch | 4 +- 0003-Don-t-add-rpaths-to-libraries.patch | 4 +- ...amlplugininfo-Useful-utilities-from-.patch | 4 +- ...-Allow-user-defined-C-compiler-flags.patch | 4 +- 0006-Add-support-for-ppc64.patch | 4 +- 0007-Add-support-for-ppc64le.patch | 4 +- ...m-arm64-Mark-stack-as-non-executable.patch | 6 +-- ...-no_arg-and-get_arg-helper-functions.patch | 4 +- ...such-as-flag-arg-as-well-as-flag-arg.patch | 4 +- ...g-close-quote-which-caused-caml_call.patch | 27 ------------- ocaml.spec | 35 +++++------------ sources | 2 +- 14 files changed, 32 insertions(+), 112 deletions(-) delete mode 100644 0001-Disable-CSE.patch delete mode 100644 0011-arm64-Fix-missing-close-quote-which-caused-caml_call.patch diff --git a/0001-Disable-CSE.patch b/0001-Disable-CSE.patch deleted file mode 100644 index beb095f..0000000 --- a/0001-Disable-CSE.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 99cb8f909ad25bcfa674216f5140b6cf1e72aeca Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 15 Jul 2014 11:52:26 +0000 -Subject: [PATCH] Disable CSE. - -This disables the common subexpression elimination (CSE) optimization. - -This is broken on aarch64: -http://caml.inria.fr/mantis/view.php?id=6486 ---- - asmcomp/CSEgen.ml | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/asmcomp/CSEgen.ml b/asmcomp/CSEgen.ml -index 19019e1..260e4fa 100644 ---- a/asmcomp/CSEgen.ml -+++ b/asmcomp/CSEgen.ml -@@ -180,7 +180,8 @@ method private keep_checkbounds n = - (* Perform CSE on the given instruction [i] and its successors. - [n] is the value numbering current at the beginning of [i]. *) - --method private cse n i = -+method private cse n i = i -+(* - match i.desc with - | Iend | Ireturn | Iop(Itailcall_ind) | Iop(Itailcall_imm _) - | Iexit _ | Iraise _ -> -@@ -262,6 +263,7 @@ method private cse n i = - {i with desc = Itrywith(self#cse n body, - self#cse empty_numbering handler); - next = self#cse empty_numbering i.next} -+*) - - method fundecl f = - {f with fun_body = self#cse empty_numbering f.fun_body} --- -2.0.1 - diff --git a/0001-Don-t-ignore-.-configure-it-s-a-real-git-file.patch b/0001-Don-t-ignore-.-configure-it-s-a-real-git-file.patch index 204e646..f257220 100644 --- a/0001-Don-t-ignore-.-configure-it-s-a-real-git-file.patch +++ b/0001-Don-t-ignore-.-configure-it-s-a-real-git-file.patch @@ -1,7 +1,7 @@ -From 73598ab5b5b9c859e900413a31ca6452c324ff3d Mon Sep 17 00:00:00 2001 +From 7cc05d407f206f4f506cd9720e4ec62024d88e99 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 24 Jun 2014 22:29:38 +0100 -Subject: [PATCH 01/11] Don't ignore ./configure, it's a real git file. +Subject: [PATCH 01/10] Don't ignore ./configure, it's a real git file. --- .gitignore | 1 - diff --git a/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch b/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch index 513fa47..d8461f3 100644 --- a/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch +++ b/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch @@ -1,7 +1,7 @@ -From 8566059ac5eb68ac8006ba8d825644411d4c4cd1 Mon Sep 17 00:00:00 2001 +From 6e7303dbfe3edefdb8449fc39e7ee63958fbd60a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 7 Jun 2012 15:36:16 +0100 -Subject: [PATCH 02/11] Ensure empty compilerlibs/ directory is created by git. +Subject: [PATCH 02/10] Ensure empty compilerlibs/ directory is created by git. This directory exists in the OCaml tarball, but is empty. As a result, git ignores it unless we put a dummy file in it. diff --git a/0003-Don-t-add-rpaths-to-libraries.patch b/0003-Don-t-add-rpaths-to-libraries.patch index 665ebb0..0a16984 100644 --- a/0003-Don-t-add-rpaths-to-libraries.patch +++ b/0003-Don-t-add-rpaths-to-libraries.patch @@ -1,7 +1,7 @@ -From 8d1cb3e2a169a642a0c75e965bc6fc17184124c8 Mon Sep 17 00:00:00 2001 +From 8dd577b4959375c1011e4dcf835ee74caef45420 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 24 Jun 2014 10:00:15 +0100 -Subject: [PATCH 03/11] Don't add rpaths to libraries. +Subject: [PATCH 03/10] Don't add rpaths to libraries. --- tools/Makefile.shared | 6 +++--- diff --git a/0004-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch b/0004-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch index 16272cc..b3ad0e4 100644 --- a/0004-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch +++ b/0004-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch @@ -1,7 +1,7 @@ -From 0112a99407da09f066c9cbaa41fe770370ba6706 Mon Sep 17 00:00:00 2001 +From fd8991ecdd206adc765a8da4953da6599ccacf3b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 29 May 2012 20:40:36 +0100 -Subject: [PATCH 04/11] ocamlbyteinfo, ocamlplugininfo: Useful utilities from +Subject: [PATCH 04/10] ocamlbyteinfo, ocamlplugininfo: Useful utilities from Debian, sent upstream. See: diff --git a/0005-configure-Allow-user-defined-C-compiler-flags.patch b/0005-configure-Allow-user-defined-C-compiler-flags.patch index 7917824..89da7f9 100644 --- a/0005-configure-Allow-user-defined-C-compiler-flags.patch +++ b/0005-configure-Allow-user-defined-C-compiler-flags.patch @@ -1,7 +1,7 @@ -From 96ec5173787ce5e03dca7da6527c4cc732772051 Mon Sep 17 00:00:00 2001 +From d4d6771059115cbb43bba5ab44eba8f30df6012e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 29 May 2012 20:44:18 +0100 -Subject: [PATCH 05/11] configure: Allow user defined C compiler flags. +Subject: [PATCH 05/10] configure: Allow user defined C compiler flags. --- configure | 4 ++++ diff --git a/0006-Add-support-for-ppc64.patch b/0006-Add-support-for-ppc64.patch index 2279f27..ef5ddc8 100644 --- a/0006-Add-support-for-ppc64.patch +++ b/0006-Add-support-for-ppc64.patch @@ -1,7 +1,7 @@ -From 443863864a99a0408c6068ba0b5ba6beddec337a Mon Sep 17 00:00:00 2001 +From 23059f5c594bbae825cfa6a0e511363a13ec5104 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 29 May 2012 20:47:07 +0100 -Subject: [PATCH 06/11] Add support for ppc64. +Subject: [PATCH 06/10] Add support for ppc64. Note (1): This patch was rejected upstream because they don't have appropriate hardware for testing. diff --git a/0007-Add-support-for-ppc64le.patch b/0007-Add-support-for-ppc64le.patch index 68c2b77..028502c 100644 --- a/0007-Add-support-for-ppc64le.patch +++ b/0007-Add-support-for-ppc64le.patch @@ -1,7 +1,7 @@ -From 69837e1be517082e841d583f59f017edfd7ffa39 Mon Sep 17 00:00:00 2001 +From 1b87259914c2ed9ee0dc7e8c3dacbe1b7a257504 Mon Sep 17 00:00:00 2001 From: Michel Normand Date: Tue, 18 Mar 2014 09:15:47 -0400 -Subject: [PATCH 07/11] Add support for ppc64le. +Subject: [PATCH 07/10] Add support for ppc64le. Signed-off-by: Michel Normand --- diff --git a/0008-arm-arm64-Mark-stack-as-non-executable.patch b/0008-arm-arm64-Mark-stack-as-non-executable.patch index 08ec883..6805361 100644 --- a/0008-arm-arm64-Mark-stack-as-non-executable.patch +++ b/0008-arm-arm64-Mark-stack-as-non-executable.patch @@ -1,7 +1,7 @@ -From 8db6171b43cf7d18340a68a2f636f9b2570236ac Mon Sep 17 00:00:00 2001 +From 0e1c8ad58e3841d9610a4c4aa19c38c5dbd02040 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 10 May 2014 03:20:35 -0400 -Subject: [PATCH 08/11] arm, arm64: Mark stack as non-executable. +Subject: [PATCH 08/10] arm, arm64: Mark stack as non-executable. The same fix as this one, which was only fully applied to i686 & x86-64: @@ -24,7 +24,7 @@ index 2ce244a..90f5b6e 100644 + /* Mark stack as non-executable, PR#4564 */ + .section .note.GNU-stack,"",%progbits diff --git a/asmrun/arm64.S b/asmrun/arm64.S -index 2c16a0e..a7d4953 100644 +index fa871df..50abdae 100644 --- a/asmrun/arm64.S +++ b/asmrun/arm64.S @@ -533,3 +533,6 @@ caml_system__frametable: diff --git a/0009-arg-Add-no_arg-and-get_arg-helper-functions.patch b/0009-arg-Add-no_arg-and-get_arg-helper-functions.patch index da7cbd9..ef086e3 100644 --- a/0009-arg-Add-no_arg-and-get_arg-helper-functions.patch +++ b/0009-arg-Add-no_arg-and-get_arg-helper-functions.patch @@ -1,7 +1,7 @@ -From 01298aadfd0bf571b9ce745a7a198015b2a20da9 Mon Sep 17 00:00:00 2001 +From 9466d5ed5d621cb6ffd61ea952321159f6c2b716 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 1 Apr 2014 11:17:07 +0100 -Subject: [PATCH 09/11] arg: Add no_arg and get_arg helper functions. +Subject: [PATCH 09/10] arg: Add no_arg and get_arg helper functions. The no_arg function in this patch is a no-op. It will do something useful in the followups. diff --git a/0010-arg-Allow-flags-such-as-flag-arg-as-well-as-flag-arg.patch b/0010-arg-Allow-flags-such-as-flag-arg-as-well-as-flag-arg.patch index cce7451..54a25d5 100644 --- a/0010-arg-Allow-flags-such-as-flag-arg-as-well-as-flag-arg.patch +++ b/0010-arg-Allow-flags-such-as-flag-arg-as-well-as-flag-arg.patch @@ -1,7 +1,7 @@ -From 5af2eab80b969d88ecd5bdbe55f33e20753f9ceb Mon Sep 17 00:00:00 2001 +From f3b3583ce96430228aa9d2286da0bd0f2b82eca9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 1 Apr 2014 11:21:40 +0100 -Subject: [PATCH 10/11] arg: Allow flags such as --flag=arg as well as --flag +Subject: [PATCH 10/10] arg: Allow flags such as --flag=arg as well as --flag arg. Allow flags to be followed directly by their argument, separated by an '=' diff --git a/0011-arm64-Fix-missing-close-quote-which-caused-caml_call.patch b/0011-arm64-Fix-missing-close-quote-which-caused-caml_call.patch deleted file mode 100644 index 90ce3ef..0000000 --- a/0011-arm64-Fix-missing-close-quote-which-caused-caml_call.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 20a89e9d501a4f90fb6c1bed59fd41bfec349beb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 15 Jul 2014 21:30:15 +0000 -Subject: [PATCH 11/11] arm64: Fix missing close-quote which caused - caml_callback2 to fail. - -http://caml.inria.fr/mantis/view.php?id=6489 ---- - asmrun/arm64.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/asmrun/arm64.S b/asmrun/arm64.S -index a7d4953..50abdae 100644 ---- a/asmrun/arm64.S -+++ b/asmrun/arm64.S -@@ -478,7 +478,7 @@ caml_callback2_exn: - /* Initial shuffling of arguments (x0 = closure, x1 = arg1, x2 = arg2) */ - mov TMP, x0 - mov x0, x1 /* x0 = first arg */ -- mov x1, x2 /* x1 = second arg -+ mov x1, x2 /* x1 = second arg */ - mov x2, TMP /* x2 = closure environment */ - ADDRGLOBAL(ARG, caml_apply2) - b .Ljump_to_caml --- -1.9.0 - diff --git a/ocaml.spec b/ocaml.spec index b608fb9..52eb0fc 100644 --- a/ocaml.spec +++ b/ocaml.spec @@ -15,12 +15,12 @@ %global natdynlink 0 %endif -%global gitcommit 8c1e5cdf9154b7c4f979327a554bdde5c8f76436 -%global shortcommit 8c1e5cdf +%global gitcommit c4f3a6c70c12681871573851921d3b070be5744b +%global shortcommit c4f3a6c7 Name: ocaml Version: 4.02.0 -Release: 0.5.git%{shortcommit}%{?dist} +Release: 0.6.git%{shortcommit}%{?dist} Summary: OCaml compiler and programming environment @@ -58,12 +58,6 @@ Patch0007: 0007-Add-support-for-ppc64le.patch Patch0008: 0008-arm-arm64-Mark-stack-as-non-executable.patch Patch0009: 0009-arg-Add-no_arg-and-get_arg-helper-functions.patch Patch0010: 0010-arg-Allow-flags-such-as-flag-arg-as-well-as-flag-arg.patch -Patch0011: 0011-arm64-Fix-missing-close-quote-which-caused-caml_call.patch - -# On ARM 32 bit and aarch64, the CSE optimization is broken. See: -# http://caml.inria.fr/mantis/view.php?id=6484 (armv7hl) -# http://caml.inria.fr/mantis/view.php?id=6486 (aarch64) -Patch9999: 0001-Disable-CSE.patch # Add BFD support so that ocamlobjinfo supports *.cmxs format (RHBZ#1113735). BuildRequires: binutils-devel @@ -202,22 +196,7 @@ git config user.name "no one" git add . git add -f configure ;# required because .gitignore lists this file git commit -a -q -m "%{version} baseline" - -# Once we remove conditional patch 9999: -#git am %{patches} - 4.02.0-0.6 +- Rebase on top of 4.02.0 beta commit c4f3a6c7. +- Remove the patch to disable CSE, since that problem is fixed upstream. +- Remove the patch fixing caml_callback2 on aarch64 since that patch is + now upstream. + * Tue Jul 15 2014 Richard W.M. Jones - 4.02.0-0.5 - Disable CSE optimization which is broken on armv7hl and aarch64. - Fix broken caml_callback2 on aarch64 diff --git a/sources b/sources index 65dc833..2abd34b 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ c308e831a1c5d6b3024bb339fcee72f4 ocaml-4.02beta-refman-html.tar.gz 672044269cea28b661fca5c0edadc195 ocaml-4.02beta-refman.info.tar.gz d05fc06025d7bad2a969a659f6de1c83 ocaml-4.02beta-refman.pdf -053f03be03e82407f76ca0eb92bf2adf ocaml-8c1e5cdf9154b7c4f979327a554bdde5c8f76436.tar.gz +469c97675af781c2f737f5692fac3b84 ocaml-c4f3a6c70c12681871573851921d3b070be5744b.tar.gz