./packages/openofficeorg/3.2/unstable r1857: update branch_directly_to_cpp_vtable_call_on_arm.diff
------------------------------------------------------------
revno: 1857
committer: Rene Engelhard <rene@debian.org>
branch nick: unstable
timestamp: Wed 2010-03-17 00:20:04 +0100
message:
update branch_directly_to_cpp_vtable_call_on_arm.diff
modified:
changelog
patches/branch_directly_to_cpp_vtable_call_on_arm.diff
=== modified file 'changelog'
--- a/changelog 2010-03-16 00:05:57 +0000
+++ b/changelog 2010-03-16 23:20:04 +0000
@@ -20,7 +20,7 @@
- disable system-boost on lenny
- remove ant1.7 workaround, add build-conflicts against ant 1.8.0-{1,2,3}
- -- Rene Engelhard <rene@debian.org> Tue, 16 Mar 2010 00:59:52 +0100
+ -- Rene Engelhard <rene@debian.org> Wed, 17 Mar 2010 00:19:45 +0100
openoffice.org (1:3.2.0-4) unstable; urgency=low
=== modified file 'patches/branch_directly_to_cpp_vtable_call_on_arm.diff'
--- a/patches/branch_directly_to_cpp_vtable_call_on_arm.diff 2010-03-15 01:45:42 +0000
+++ b/patches/branch_directly_to_cpp_vtable_call_on_arm.diff 2010-03-16 23:20:04 +0000
@@ -1,5 +1,5 @@
Description: branch directly to cpp vtable call on arm
-Origin: https://bugs.launchpad.net/ubuntu/+source/openoffice.org/+bug/417009/comments/69
+Origin: http://launchpadlibrarian.net/41027177/fix_ooo_arm.patch
Bug: http://www.openoffice.org/issues/show_bug.cgi?id=105359
Origin: vendor
@@ -22,22 +22,36 @@
index 0000000..c6a3152
--- /dev/null
+++ openoffice.org-3.2.0/ooo-build-3-2-0-8/patches/dev300/branch_directly_to_cpp_vtable_call_on_arm.diff
-@@ -0,0 +1,18 @@
-+--- bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s 2007-12-12 15:35:44.000000000 +0000
-++++ bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s 2010-03-11 16:22:29.000000000 +0000
-+@@ -10,13 +10,5 @@
-+ privateSnippetExecutor:
-+ stmfd sp!, {r0-r3} @ follow other parameters on stack
-+ mov r0, ip @ r0 points to functionoffset/vtable
-+- mov ip, sp @ fix up the ip
-+- stmfd sp!, {fp,ip,lr,pc} @ 8 x 4 => stack remains 8 aligned
-+- sub fp, ip, #4 @ set frame pointer
-+-
-+- add r1, sp, #16 @ r1 points to this and params
-+- bl cpp_vtable_call(PLT)
-+-
-+- add sp, sp, #32 @ restore stack
-+- ldr fp, [sp, #-32] @ restore frame pointer
-+- ldr pc, [sp, #-24] @ return
-++ mov r1, sp @ r1 points to this and params
-++ b cpp_vtable_call(PLT)
+@@ -0,0 +1,32 @@
++--- bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s 2007-12-12 15:35:44.000000000 +0000
+++++ bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s 2010-03-15 11:57:20.000000000 +0000
++@@ -8,15 +8,22 @@
++ .global privateSnippetExecutor
++ .type privateSnippetExecutor, %function
++ privateSnippetExecutor:
+++ .fnstart @ start of unwinder entry
+++
++ stmfd sp!, {r0-r3} @ follow other parameters on stack
+++ .pad #16 @ throw this data away on exception
++ mov r0, ip @ r0 points to functionoffset/vtable
++- mov ip, sp @ fix up the ip
++- stmfd sp!, {fp,ip,lr,pc} @ 8 x 4 => stack remains 8 aligned
++- sub fp, ip, #4 @ set frame pointer
+++ mov r1, sp @ r1 points to this and params
+++ @ (see cppuno.cxx:codeSnippet())
+++ stmfd sp!, {r4,lr} @ save return address
+++ @ (r4 pushed to preserve stack alignment)
+++ .save {r4,lr} @ restore these regs on exception
++
++- add r1, sp, #16 @ r1 points to this and params
++ bl cpp_vtable_call(PLT)
++
++- add sp, sp, #32 @ restore stack
++- ldr fp, [sp, #-32] @ restore frame pointer
++- ldr pc, [sp, #-24] @ return
+++ add sp, sp, #4 @ no need to restore r4 (we didn't touch it)
+++ ldr pc, [sp], #20 @ return, discarding function arguments
+++
+++ .fnend @ end of unwinder entry
+++
+++ .size privateSnippetExecutor, . - privateSnippetExecutor
Reply to: