[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/11: gnu: ocaml: Add a .file directive to generated .s files.
From: |
David Craven |
Subject: |
01/11: gnu: ocaml: Add a .file directive to generated .s files. |
Date: |
Wed, 4 Jan 2017 15:05:59 +0000 (UTC) |
dvc pushed a commit to branch master
in repository guix.
commit 8bd10c1082041ba2b7add31f34abcb2683f76315
Author: Julien Lepiller <address@hidden>
Date: Sat Dec 31 17:44:22 2016 +0100
gnu: ocaml: Add a .file directive to generated .s files.
* gnu/packages/ocaml.scm (ocaml)[origin]: Add patch.
* gnu/packages/patches/ocaml-Add-a-.file-directive.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch.
Signed-off-by: David Craven <address@hidden>
---
gnu/local.mk | 1 +
gnu/packages/ocaml.scm | 7 +-
.../patches/ocaml-Add-a-.file-directive.patch | 96 ++++++++++++++++++++
3 files changed, 102 insertions(+), 2 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 61e0fca..860d16d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -752,6 +752,7 @@ dist_patch_DATA =
\
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
%D%/packages/patches/nvi-db4.patch \
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
+ %D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-findlib-make-install.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openexr-missing-samples.patch \
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 2dad042..ab70eb6 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2016 Eric Bavier <address@hidden>
;;; Copyright © 2016 Jan Nieuwenhuizen <address@hidden>
;;; Copyright © 2016 Efraim Flashner <address@hidden>
-;;; Copyright © 2016 Julien Lepiller <address@hidden>
+;;; Copyright © 2016, 2017 Julien Lepiller <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,7 +63,10 @@
(sha256
(base32
"1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3"))
- (patches (search-patches "ocaml-CVE-2015-8869.patch"))))
+ (patches
+ (search-patches
+ "ocaml-CVE-2015-8869.patch"
+ "ocaml-Add-a-.file-directive.patch"))))
(build-system gnu-build-system)
(native-search-paths
(list (search-path-specification
diff --git a/gnu/packages/patches/ocaml-Add-a-.file-directive.patch
b/gnu/packages/patches/ocaml-Add-a-.file-directive.patch
new file mode 100644
index 0000000..07842e9
--- /dev/null
+++ b/gnu/packages/patches/ocaml-Add-a-.file-directive.patch
@@ -0,0 +1,96 @@
+From: Stephane Glondu <address@hidden>
+Date: Sun, 16 Aug 2015 20:59:14 +0200
+Subject: Add a .file directive to generated .s files
+
+When no .file directive is given, the toolchain records the filename
+of the .o file, which is sometimes random, making generated objects
+non-deterministic.
+
+We use Location.input_name for adding .file directives to assembly
+files. Note: when the file is preprocessed, this reference holds the
+name of the temporary file. Hence, files compiled with -pp are still
+not deterministic.
+
+Bug-Debian: https://bugs.debian.org/795784
+Bug-Debian: https://bugs.debian.org/796336
+---
+ asmcomp/amd64/emit.mlp | 1 +
+ asmcomp/arm/emit.mlp | 1 +
+ asmcomp/arm64/emit.mlp | 1 +
+ asmcomp/i386/emit.mlp | 1 +
+ asmcomp/power/emit.mlp | 1 +
+ asmcomp/sparc/emit.mlp | 1 +
+ 6 files changed, 6 insertions(+)
+
+diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
+index d56d0f5..4d7aa30 100644
+--- a/asmcomp/amd64/emit.mlp
++++ b/asmcomp/amd64/emit.mlp
+@@ -794,6 +794,7 @@ let data l =
+ let begin_assembly() =
+ reset_debug_info(); (* PR#5603 *)
+ float_constants := [];
++ ` .file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
+ if !Clflags.dlcode then begin
+ (* from amd64.S; could emit these constants on demand *)
+ if macosx then
+diff --git a/asmcomp/arm/emit.mlp b/asmcomp/arm/emit.mlp
+index 4948fb2..6f30fba 100644
+--- a/asmcomp/arm/emit.mlp
++++ b/asmcomp/arm/emit.mlp
+@@ -892,6 +892,7 @@ let data l =
+
+ let begin_assembly() =
+ reset_debug_info();
++ ` .file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
+ ` .syntax unified\n`;
+ begin match !arch with
+ | ARMv4 -> ` .arch armv4t\n`
+diff --git a/asmcomp/arm64/emit.mlp b/asmcomp/arm64/emit.mlp
+index 750c2b2..5afbb8a 100644
+--- a/asmcomp/arm64/emit.mlp
++++ b/asmcomp/arm64/emit.mlp
+@@ -942,6 +942,7 @@ let data l =
+
+ let begin_assembly() =
+ reset_debug_info();
++ ` .file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
+ let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
+ ` .data\n`;
+ ` .globl {emit_symbol lbl_begin}\n`;
+diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
+index 98df5f9..531150f 100644
+--- a/asmcomp/i386/emit.mlp
++++ b/asmcomp/i386/emit.mlp
+@@ -986,6 +986,7 @@ let data l =
+ let begin_assembly() =
+ reset_debug_info(); (* PR#5603 *)
+ float_constants := [];
++ ` .file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
+ let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
+ ` .data\n`;
+ ` .globl {emit_symbol lbl_begin}\n`;
+diff --git a/asmcomp/power/emit.mlp b/asmcomp/power/emit.mlp
+index 4344085..343132b 100644
+--- a/asmcomp/power/emit.mlp
++++ b/asmcomp/power/emit.mlp
+@@ -887,6 +887,7 @@ let data l =
+ let begin_assembly() =
+ defined_functions := StringSet.empty;
+ external_functions := StringSet.empty;
++ ` .file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
+ (* Emit the beginning of the segments *)
+ let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
+ emit_string data_space;
+diff --git a/asmcomp/sparc/emit.mlp b/asmcomp/sparc/emit.mlp
+index 877a3d5..7b041e9 100644
+--- a/asmcomp/sparc/emit.mlp
++++ b/asmcomp/sparc/emit.mlp
+@@ -727,6 +727,7 @@ let data l =
+ (* Beginning / end of an assembly file *)
+
+ let begin_assembly() =
++ ` .file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
+ let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
+ ` .data\n`;
+ ` .global {emit_symbol lbl_begin}\n`;
- 04/11: gnu: camlp4: Compile native version., (continued)
- 04/11: gnu: camlp4: Compile native version., David Craven, 2017/01/04
- 03/11: gnu: ocaml: Fix indentation., David Craven, 2017/01/04
- 06/11: gnu: ocaml: Use a helper function to download from ocaml-forge., David Craven, 2017/01/04
- 09/11: gnu: Add camlzip., David Craven, 2017/01/04
- 02/11: gnu: ocaml: Add CAML_LD_LIBRARY_PATH search-path., David Craven, 2017/01/04
- 10/11: gnu: Add ocamlmod., David Craven, 2017/01/04
- 08/11: gnu: Add ocaml-ounit., David Craven, 2017/01/04
- 11/11: gnu: Add ocaml-zarith., David Craven, 2017/01/04
- 07/11: gnu: camlp4: Install camlp4 META file., David Craven, 2017/01/04
- 05/11: gnu: Add ocaml-build-system., David Craven, 2017/01/04
- 01/11: gnu: ocaml: Add a .file directive to generated .s files.,
David Craven <=