67 lines
2.2 KiB
Diff
67 lines
2.2 KiB
Diff
|
From: Stephane Glondu <steph@glondu.net>
|
||
|
Date: Tue, 8 Mar 2011 21:17:40 +0100
|
||
|
Subject: [PATCH] Fix ocamlopt w.r.t. binutils 2.21
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Bug: http://caml.inria.fr/mantis/view.php?id=5237
|
||
|
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617404
|
||
|
Authors: Eric Cooper, spiralvoice
|
||
|
Reviewed-by: Stéphane Glondu <steph@glondu.net>
|
||
|
---
|
||
|
asmcomp/amd64/emit.mlp | 13 +++++++------
|
||
|
asmcomp/i386/emit.mlp | 6 +++---
|
||
|
2 files changed, 10 insertions(+), 9 deletions(-)
|
||
|
|
||
|
diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
|
||
|
index 4a3f844..525c6e6 100644
|
||
|
--- a/asmcomp/amd64/emit.mlp
|
||
|
+++ b/asmcomp/amd64/emit.mlp
|
||
|
@@ -679,17 +679,18 @@ let fundecl fundecl =
|
||
|
emit_all true fundecl.fun_body;
|
||
|
List.iter emit_call_gc !call_gc_sites;
|
||
|
emit_call_bound_errors ();
|
||
|
+ begin match Config.system with
|
||
|
+ "linux" | "gnu" ->
|
||
|
+ ` .type {emit_symbol fundecl.fun_name},@function\n`;
|
||
|
+ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
|
||
|
+ | _ -> ()
|
||
|
+ end;
|
||
|
if !float_constants <> [] then begin
|
||
|
if macosx
|
||
|
then ` .literal8\n`
|
||
|
else ` .section .rodata.cst8,\"a\",@progbits\n`;
|
||
|
List.iter emit_float_constant !float_constants
|
||
|
- end;
|
||
|
- match Config.system with
|
||
|
- "linux" | "gnu" ->
|
||
|
- ` .type {emit_symbol fundecl.fun_name},@function\n`;
|
||
|
- ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
|
||
|
- | _ -> ()
|
||
|
+ end
|
||
|
|
||
|
(* Emission of data *)
|
||
|
|
||
|
diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
|
||
|
index 2992f29..0b1252c 100644
|
||
|
--- a/asmcomp/i386/emit.mlp
|
||
|
+++ b/asmcomp/i386/emit.mlp
|
||
|
@@ -905,12 +905,12 @@ let fundecl fundecl =
|
||
|
emit_all true fundecl.fun_body;
|
||
|
List.iter emit_call_gc !call_gc_sites;
|
||
|
emit_call_bound_errors ();
|
||
|
- List.iter emit_float_constant !float_constants;
|
||
|
- match Config.system with
|
||
|
+ begin match Config.system with
|
||
|
"linux_elf" | "bsd_elf" | "gnu" ->
|
||
|
` .type {emit_symbol fundecl.fun_name},@function\n`;
|
||
|
` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
|
||
|
- | _ -> ()
|
||
|
+ | _ -> () end;
|
||
|
+ List.iter emit_float_constant !float_constants
|
||
|
|
||
|
|
||
|
(* Emission of data *)
|
||
|
--
|