The following commit has been merged in the master branch:
commit 14afd32fcdb89f99a4b51ec435c40ecf90e92afe
Author: Stephane Glondu <st...@glondu.net>
Date:   Fri Aug 12 21:17:37 2011 +0200

    ocamlopt/arm: add .type directive for code symbols (LP: #810402)

diff --git 
a/debian/patches/0013-ocamlopt-arm-add-.type-directive-for-code-symbols.patch 
b/debian/patches/0013-ocamlopt-arm-add-.type-directive-for-code-symbols.patch
new file mode 100644
index 0000000..fca359a
--- /dev/null
+++ 
b/debian/patches/0013-ocamlopt-arm-add-.type-directive-for-code-symbols.patch
@@ -0,0 +1,124 @@
+From: Stephane Glondu <st...@glondu.net>
+Date: Fri, 12 Aug 2011 21:13:17 +0200
+Subject: ocamlopt/arm: add .type directive for code symbols
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/810402
+Signed-off-by: Stephane Glondu <st...@glondu.net>
+---
+ asmcomp/arm/emit.mlp |    1 +
+ asmrun/arm.S         |   12 ++++++++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+diff --git a/asmcomp/arm/emit.mlp b/asmcomp/arm/emit.mlp
+index 2003313..a4b2241 100644
+--- a/asmcomp/arm/emit.mlp
++++ b/asmcomp/arm/emit.mlp
+@@ -556,6 +556,7 @@ let fundecl fundecl =
+   `   .text\n`;
+   `   .align  2\n`;
+   `   .global {emit_symbol fundecl.fun_name}\n`;
++  `   .type   {emit_symbol fundecl.fun_name}, %function\n`;
+   `{emit_symbol fundecl.fun_name}:\n`;
+   let n = frame_size() in
+   ignore(emit_stack_adjustment "sub" n);
+diff --git a/asmrun/arm.S b/asmrun/arm.S
+index 164f731..1313e9c 100644
+--- a/asmrun/arm.S
++++ b/asmrun/arm.S
+@@ -24,6 +24,7 @@ alloc_limit     .req    r10
+ /* Allocation functions and GC interface */
+ 
+         .globl caml_call_gc
++        .type caml_call_gc, %function
+ caml_call_gc:
+     /* Record return address and desired size */
+     /* Can use alloc_limit as a temporary since it will be reloaded by
+@@ -41,6 +42,7 @@ caml_call_gc:
+         bx      lr
+ 
+         .globl caml_alloc1
++        .type caml_alloc1, %function
+ caml_alloc1:
+         sub     alloc_ptr, alloc_ptr, #8
+         cmp     alloc_ptr, alloc_limit
+@@ -54,6 +56,7 @@ caml_alloc1:
+         b       caml_alloc1
+ 
+         .globl caml_alloc2
++        .type caml_alloc2, %function
+ caml_alloc2:
+         sub     alloc_ptr, alloc_ptr, #12
+         cmp     alloc_ptr, alloc_limit
+@@ -67,6 +70,7 @@ caml_alloc2:
+         b       caml_alloc2
+ 
+         .globl caml_alloc3
++        .type caml_alloc3, %function
+ caml_alloc3:
+         sub     alloc_ptr, alloc_ptr, #16
+         cmp     alloc_ptr, alloc_limit
+@@ -80,6 +84,7 @@ caml_alloc3:
+         b       caml_alloc3
+ 
+         .globl caml_allocN
++        .type caml_allocN, %function
+ caml_allocN:
+         sub     alloc_ptr, alloc_ptr, r12
+         cmp     alloc_ptr, alloc_limit
+@@ -134,6 +139,7 @@ caml_allocN:
+ /* Function to call is in r12 */
+ 
+         .globl caml_c_call
++        .type caml_c_call, %function
+ caml_c_call:
+     /* Preserve return address in callee-save register r4 */
+         mov     r4, lr
+@@ -160,6 +166,7 @@ caml_c_call:
+ /* Start the Caml program */
+ 
+         .globl caml_start_program
++        .type caml_start_program, %function
+ caml_start_program:
+         ldr     r12, .Lcaml_program
+ 
+@@ -235,6 +242,7 @@ caml_start_program:
+ /* Raise an exception from C */
+ 
+         .globl caml_raise_exception
++        .type caml_raise_exception, %function
+ caml_raise_exception:
+     /* Reload Caml allocation pointers */
+         ldr     r12, .Lcaml_young_ptr
+@@ -250,6 +258,7 @@ caml_raise_exception:
+ /* Callback from C to Caml */
+ 
+         .globl caml_callback_exn
++        .type caml_callback_exn, %function
+ caml_callback_exn:
+     /* Initial shuffling of arguments (r0 = closure, r1 = first arg) */
+         mov     r12, r0
+@@ -259,6 +268,7 @@ caml_callback_exn:
+         b       .Ljump_to_caml
+ 
+         .globl caml_callback2_exn
++        .type caml_callback2_exn, %function
+ caml_callback2_exn:
+     /* Initial shuffling of arguments (r0 = closure, r1 = arg1, r2 = arg2) */
+         mov     r12, r0
+@@ -269,6 +279,7 @@ caml_callback2_exn:
+         b       .Ljump_to_caml
+ 
+         .globl caml_callback3_exn
++        .type caml_callback3_exn, %function
+ caml_callback3_exn:
+     /* Initial shuffling of arguments */
+     /* (r0 = closure, r1 = arg1, r2 = arg2, r3 = arg3) */
+@@ -281,6 +292,7 @@ caml_callback3_exn:
+         b       .Ljump_to_caml
+ 
+         .globl caml_ml_array_bound_error
++        .type caml_ml_array_bound_error, %function
+ caml_ml_array_bound_error:
+     /* Load address of [caml_array_bound_error] in r12 */
+         ldr     r12, .Lcaml_array_bound_error
+-- 
diff --git a/debian/patches/series b/debian/patches/series
index c321cdf..8b210e3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -10,3 +10,4 @@
 0010-Properly-initialize-executable-name-in-caml_startup_.patch
 0011-Embed-bytecode-in-C-object-when-using-custom.patch
 0012-Make-objinfo-show-force_link-and-ccobjs-ccopts-when-.patch
+0013-ocamlopt-arm-add-.type-directive-for-code-symbols.patch

-- 
OCaml packaging

_______________________________________________
Pkg-ocaml-maint-commits mailing list
Pkg-ocaml-maint-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits

Reply via email to