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 000..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 .reqr10
+ /* 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