------------------------------------------------------------
revno: 1857
committer: Rene Engelhard <r...@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 <r...@debian.org>  Tue, 16 Mar 2010 00:59:52 +0100
+ -- Rene Engelhard <r...@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 via email to