mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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 <david@craven.ch>
This commit is contained in:
parent
1ff755d1d5
commit
8bd10c1082
3 changed files with 102 additions and 2 deletions
|
@ -752,6 +752,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
|
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
|
||||||
%D%/packages/patches/nvi-db4.patch \
|
%D%/packages/patches/nvi-db4.patch \
|
||||||
%D%/packages/patches/ocaml-CVE-2015-8869.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/ocaml-findlib-make-install.patch \
|
||||||
%D%/packages/patches/ola-readdir-r.patch \
|
%D%/packages/patches/ola-readdir-r.patch \
|
||||||
%D%/packages/patches/openexr-missing-samples.patch \
|
%D%/packages/patches/openexr-missing-samples.patch \
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -63,7 +63,10 @@ (define-public ocaml
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3"))
|
"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)
|
(build-system gnu-build-system)
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
(list (search-path-specification
|
(list (search-path-specification
|
||||||
|
|
96
gnu/packages/patches/ocaml-Add-a-.file-directive.patch
Normal file
96
gnu/packages/patches/ocaml-Add-a-.file-directive.patch
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
From: Stephane Glondu <steph@glondu.net>
|
||||||
|
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`;
|
Loading…
Reference in a new issue