| 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 *) |
| -- |