bridges/CustomTarget_gcc3_linux_arm.mk            |   27 +++++++++++
 bridges/Library_gcc3_linux_arm.mk                 |   12 +++--
 bridges/Module_bridges.mk                         |    1 
 bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S |   52 ++++++++++++++++++++++
 bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s |   52 ----------------------
 5 files changed, 88 insertions(+), 56 deletions(-)

New commits:
commit 8f6b43052d05f34e088eb20015eeb47860cbf3e6
Author: David Tardon <dtar...@redhat.com>
Date:   Sun Sep 23 11:57:40 2012 +0200

    (hopefully) fix build of bridges on linux ARM
    
    Change-Id: I8d7a10e26858dbbcce9c7c47a1dd9668a35736bd

diff --git a/bridges/CustomTarget_gcc3_linux_arm.mk 
b/bridges/CustomTarget_gcc3_linux_arm.mk
new file mode 100644
index 0000000..a38726b
--- /dev/null
+++ b/bridges/CustomTarget_gcc3_linux_arm.mk
@@ -0,0 +1,27 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call 
gb_CustomTarget_CustomTarget,bridges/source/cpp_uno/gcc3_linux_arm))
+
+$(call gb_CustomTarget_get_target,bridges/source/cpp_uno/gcc3_linux_arm) : \
+               $(call 
gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.o \
+               $(call 
gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
 \
+               | $(dir $(call 
gb_CustomTarget_get_target,bridges/source/cpp_uno/gcc3_linux_arm)).dir
+       touch $@
+
+$(call 
gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.o 
: \
+               $(SRCDIR)/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
+               | $(dir $(call 
gb_CustomTarget_get_target,bridges/source/cpp_uno/gcc3_linux_arm)).dir
+       $(gb_CXX) -c -o $@ $< -fPIC
+
+$(call 
gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
 :
+               | $(dir $(call 
gb_CustomTarget_get_target,bridges/source/cpp_uno/gcc3_linux_arm)).dir
+       echo $(call 
gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.o 
> $@
+
+# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_arm.mk 
b/bridges/Library_gcc3_linux_arm.mk
index 81c29d7..507cfc3 100644
--- a/bridges/Library_gcc3_linux_arm.mk
+++ b/bridges/Library_gcc3_linux_arm.mk
@@ -14,6 +14,10 @@ bridges_SELECTED_BRIDGE := gcc3_linux_arm
 
 $(eval $(call gb_Library_Library,gcc3_uno))
 
+$(eval $(call gb_Library_use_custom_headers,gcc3_uno,\
+       bridges/source/cpp_uno/gcc3_linux_arm \
+))
+
 $(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
        udkapi \
 ))
@@ -62,4 +66,8 @@ $(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
        , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
 ))
 
+# HACK
+$(call gb_LinkTarget_get_target,$(call 
gb_Library_get_linktargetname,gcc3_uno)) : \
+       EXTRAOBJECTLISTS += $(call 
gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
+
 # vim: set noet sw=4 ts=4:
diff --git a/bridges/Module_bridges.mk b/bridges/Module_bridges.mk
index dbce0fa..eeec7c5 100644
--- a/bridges/Module_bridges.mk
+++ b/bridges/Module_bridges.mk
@@ -34,6 +34,7 @@ $(eval $(call gb_Module_add_targets,bridges,\
                Library_gcc3_linux_alpha \
        ) \
        $(if $(and $(filter GCCR,$(COM)$(CPU)),$(filter ANDROID LINUX,$(OS))),\
+               CustomTarget_gcc3_linux_arm \
                Library_gcc3_linux_arm \
        ) \
        $(if $(filter GCCLINUXH,$(COM)$(OS)$(CPU)),\
commit 99cfb6724bd7243e82492a2163bffd4a26d54c28
Author: David Tardon <dtar...@redhat.com>
Date:   Sun Sep 23 11:14:52 2012 +0200

    Revert "add forgotten asm file to build"
    
    This reverts commit 492f9139c1033b3f069880bff8e7f2857cbca111.

diff --git a/bridges/Library_gcc3_linux_arm.mk 
b/bridges/Library_gcc3_linux_arm.mk
index 95cc915..81c29d7 100644
--- a/bridges/Library_gcc3_linux_arm.mk
+++ b/bridges/Library_gcc3_linux_arm.mk
@@ -45,10 +45,6 @@ $(eval $(call gb_Library_use_libraries,gcc3_uno,\
        $(gb_STDLIBS) \
 ))
 
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-       bridges/source/cpp_uno/gcc3_linux_arm/armhelper \
-))
-
 $(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
        bridges/source/cpp_uno/shared/bridge \
        bridges/source/cpp_uno/shared/component \
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S 
b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
new file mode 100644
index 0000000..27148dc
--- /dev/null
+++ b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S
@@ -0,0 +1,52 @@
+@ ARM support code for OpenOffice C++/UNO bridging
+@
+@ Written by Peter Naulls <pe...@chocky.org>
+@ Modified by Caolan McNamara <caol...@redhat.com>
+@ Fixed by Michael Casadevall <mcasadev...@kubuntu.org>
+
+#ifdef __ARM_EABI__
+#  define UNWIND
+#else
+#  define UNWIND @
+#endif
+
+@ If the VFP ABI variant (armhf in Debian/Ubuntu) is used, an additional extra 
64 bytes
+@ are taken up on the stack (the equivalent of the 8 double precision VFP 
registers)
+
+#ifdef __ARM_PCS_VFP
+#  define PAD 80
+#  define DISCARDED 84
+#else
+#  define PAD 16
+#  define DISCARDED 20
+#endif
+
+       .file   "armhelper.s"
+       .text
+       .align  4
+       .global privateSnippetExecutor
+       .type privateSnippetExecutor, %function
+privateSnippetExecutor:
+       UNWIND .fnstart            @ start of unwinder entry
+
+       stmfd sp!, {r0-r3}         @ follow other parameters on stack
+       mov   r0, ip               @ r0 points to functionoffset/vtable
+       mov   r1, sp               @ r1 points to this and params
+#ifdef __ARM_PCS_VFP
+       vpush {d0-d7}              @ floating point parameter on stack
+#endif
+       UNWIND .pad  #PAD          @ throw this data away on exception
+                                  @ (see cppuno.cxx:codeSnippet())
+       stmfd sp!, {r4,lr}         @ save return address 
+                                  @ (r4 pushed to preserve stack alignment)
+       UNWIND .save {r4,lr}       @ restore these regs on exception
+
+       bl    cpp_vtable_call(PLT)
+
+       add   sp, sp, #4           @ no need to restore r4 (we didn't touch it)
+       ldr   pc, [sp], #DISCARDED @ return, discarding function arguments
+
+       UNWIND .fnend              @ end of unwinder entry
+
+       .size privateSnippetExecutor, . - privateSnippetExecutor
+        .section        .note.GNU-stack,"",%progbits
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s 
b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s
deleted file mode 100644
index 27148dc..0000000
--- a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s
+++ /dev/null
@@ -1,52 +0,0 @@
-@ ARM support code for OpenOffice C++/UNO bridging
-@
-@ Written by Peter Naulls <pe...@chocky.org>
-@ Modified by Caolan McNamara <caol...@redhat.com>
-@ Fixed by Michael Casadevall <mcasadev...@kubuntu.org>
-
-#ifdef __ARM_EABI__
-#  define UNWIND
-#else
-#  define UNWIND @
-#endif
-
-@ If the VFP ABI variant (armhf in Debian/Ubuntu) is used, an additional extra 
64 bytes
-@ are taken up on the stack (the equivalent of the 8 double precision VFP 
registers)
-
-#ifdef __ARM_PCS_VFP
-#  define PAD 80
-#  define DISCARDED 84
-#else
-#  define PAD 16
-#  define DISCARDED 20
-#endif
-
-       .file   "armhelper.s"
-       .text
-       .align  4
-       .global privateSnippetExecutor
-       .type privateSnippetExecutor, %function
-privateSnippetExecutor:
-       UNWIND .fnstart            @ start of unwinder entry
-
-       stmfd sp!, {r0-r3}         @ follow other parameters on stack
-       mov   r0, ip               @ r0 points to functionoffset/vtable
-       mov   r1, sp               @ r1 points to this and params
-#ifdef __ARM_PCS_VFP
-       vpush {d0-d7}              @ floating point parameter on stack
-#endif
-       UNWIND .pad  #PAD          @ throw this data away on exception
-                                  @ (see cppuno.cxx:codeSnippet())
-       stmfd sp!, {r4,lr}         @ save return address 
-                                  @ (r4 pushed to preserve stack alignment)
-       UNWIND .save {r4,lr}       @ restore these regs on exception
-
-       bl    cpp_vtable_call(PLT)
-
-       add   sp, sp, #4           @ no need to restore r4 (we didn't touch it)
-       ldr   pc, [sp], #DISCARDED @ return, discarding function arguments
-
-       UNWIND .fnend              @ end of unwinder entry
-
-       .size privateSnippetExecutor, . - privateSnippetExecutor
-        .section        .note.GNU-stack,"",%progbits
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to