summaryrefslogtreecommitdiff
path: root/bridges/source/cpp_uno
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/source/cpp_uno')
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_m68k/makefile.mk6
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx1
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx3
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx3
-rw-r--r--bridges/source/cpp_uno/mingw_intel/call.s21
-rw-r--r--bridges/source/cpp_uno/mingw_intel/except.cxx1
-rw-r--r--bridges/source/cpp_uno/mingw_intel/makefile.mk6
-rw-r--r--bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx4
8 files changed, 21 insertions, 24 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_m68k/makefile.mk b/bridges/source/cpp_uno/gcc3_linux_m68k/makefile.mk
index 32d4b0d27dc9..8371d653a25b 100644
--- a/bridges/source/cpp_uno/gcc3_linux_m68k/makefile.mk
+++ b/bridges/source/cpp_uno/gcc3_linux_m68k/makefile.mk
@@ -61,8 +61,7 @@ CFLAGSNOOPT=-O0
SLOFILES= \
$(SLO)$/cpp2uno.obj \
$(SLO)$/except.obj \
- $(SLO)$/uno2cpp.obj \
- $(SLO)$/m68khelper.obj
+ $(SLO)$/uno2cpp.obj
SHL1TARGET= $(TARGET)
@@ -83,6 +82,3 @@ SHL1STDLIBS= \
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
-
-$(SLO)$/%.obj: %.s
- $(CXX) -c -o $(SLO)$/$(@:b).o $< -fPIC ; touch $@
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
index 6141efd7964a..e474dce7268c 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
@@ -33,6 +33,7 @@
#include "precompiled_bridges.hxx"
#include <stdio.h>
+#include <string.h>
#include <dlfcn.h>
#include <cxxabi.h>
#include <hash_map>
diff --git a/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
index 0f0fdbf351ca..e3f4d36e3962 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx
@@ -110,6 +110,9 @@ static void callVirtualMethod(
/* set up a pointer to the stack parameter area */
__asm__ ( "addi %0,r1,24" : "=r" (p) : /* no inputs */ );
+ // #i94421#, work around compiler error:
+ volatile long * pCopy = p;
+ (void) pCopy; // avoid warning about unused variable
// never called
// if (! pAdjustedThisPtr )CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
diff --git a/bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx
index d4584227cdc1..d6589b8d86cf 100644
--- a/bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx
@@ -163,7 +163,8 @@ static typelib_TypeClass cpp2uno_call(
(*pThis->getUnoI()->pDispatcher)(
pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, ">cpp2uno_call pUnoExc %x\n", pUnoExc);
+ if (pUnoExc != NULL)
+ fprintf( stderr, ">cpp2uno_call pUnoExc %x\n", pUnoExc);
#endif
// in case an exception occured...
diff --git a/bridges/source/cpp_uno/mingw_intel/call.s b/bridges/source/cpp_uno/mingw_intel/call.s
index b4a9ba031cf5..47327d9a4650 100644
--- a/bridges/source/cpp_uno/mingw_intel/call.s
+++ b/bridges/source/cpp_uno/mingw_intel/call.s
@@ -1,7 +1,6 @@
.text
.globl _privateSnippetExecutorGeneral
- .type _privateSnippetExecutorGeneral,@function
_privateSnippetExecutorGeneral:
.LFBg:
movl %esp,%ecx
@@ -19,10 +18,9 @@ _privateSnippetExecutorGeneral:
leave
ret
.LFEg:
- .size _privateSnippetExecutorGeneral,.-_privateSnippetExecutorGeneral
+ .long .-_privateSnippetExecutorGeneral
.globl _privateSnippetExecutorVoid
- .type _privateSnippetExecutorVoid,@function
_privateSnippetExecutorVoid:
.LFBv:
movl %esp,%ecx
@@ -38,10 +36,9 @@ _privateSnippetExecutorVoid:
leave
ret
.LFEv:
- .size _privateSnippetExecutorVoid,.-_privateSnippetExecutorVoid
+ .long .-_privateSnippetExecutorVoid
.globl _privateSnippetExecutorHyper
- .type _privateSnippetExecutorHyper,@function
_privateSnippetExecutorHyper:
.LFBh:
movl %esp,%ecx
@@ -60,10 +57,9 @@ _privateSnippetExecutorHyper:
leave
ret
.LFEh:
- .size _privateSnippetExecutorHyper,.-_privateSnippetExecutorHyper
+ .long .-_privateSnippetExecutorHyper
.globl _privateSnippetExecutorFloat
- .type _privateSnippetExecutorFloat,@function
_privateSnippetExecutorFloat:
.LFBf:
movl %esp,%ecx
@@ -81,10 +77,9 @@ _privateSnippetExecutorFloat:
leave
ret
.LFEf:
- .size _privateSnippetExecutorFloat,.-_privateSnippetExecutorFloat
+ .long .-_privateSnippetExecutorFloat
.globl _privateSnippetExecutorDouble
- .type _privateSnippetExecutorDouble,@function
_privateSnippetExecutorDouble:
.LFBd:
movl %esp,%ecx
@@ -102,10 +97,9 @@ _privateSnippetExecutorDouble:
leave
ret
.LFEd:
- .size _privateSnippetExecutorDouble,.-_privateSnippetExecutorDouble
+ .long .-_privateSnippetExecutorDouble
.globl _privateSnippetExecutorClass
- .type _privateSnippetExecutorClass,@function
_privateSnippetExecutorClass:
.LFBc:
movl %esp,%ecx
@@ -123,9 +117,9 @@ _privateSnippetExecutorClass:
leave
ret $4
.LFEc:
- .size _privateSnippetExecutorClass,.-_privateSnippetExecutorClass
+ .long .-_privateSnippetExecutorClass
- .section .eh_frame,"a",@progbits
+ .section .eh_frame,"dr"
.Lframe1:
.long .LECIE1-.LSCIE1 # length
.LSCIE1:
@@ -265,4 +259,3 @@ _privateSnippetExecutorClass:
.uleb128 5
.align 4
.LEFDEc:
- .section .note.GNU-stack,"",@progbits
diff --git a/bridges/source/cpp_uno/mingw_intel/except.cxx b/bridges/source/cpp_uno/mingw_intel/except.cxx
index a529dc00d48b..5285b709b7b5 100644
--- a/bridges/source/cpp_uno/mingw_intel/except.cxx
+++ b/bridges/source/cpp_uno/mingw_intel/except.cxx
@@ -32,6 +32,7 @@
#include "precompiled_bridges.hxx"
#include <stdio.h>
+#include <string.h>
#include <cxxabi.h>
#include <hash_map>
diff --git a/bridges/source/cpp_uno/mingw_intel/makefile.mk b/bridges/source/cpp_uno/mingw_intel/makefile.mk
index 823c3888516b..242d21617d5e 100644
--- a/bridges/source/cpp_uno/mingw_intel/makefile.mk
+++ b/bridges/source/cpp_uno/mingw_intel/makefile.mk
@@ -47,11 +47,17 @@ ENABLE_EXCEPTIONS=TRUE
.IF "$(cppu_no_leak)" == ""
CFLAGS += -DLEAK_STATIC_DATA
.ENDIF
+.IF "$(EXCEPTIONS)" == "sjlj"
+CFLAGS += -DBROKEN_ALLOCA
+.ENDIF
# In case someone enabled the non-standard -fomit-frame-pointer which does not
# work with the .cxx sources in this directory:
CFLAGSCXX += -fno-omit-frame-pointer
+NOOPTFILES= \
+ $(SLO)$/uno2cpp.obj
+
CFLAGSNOOPT=-O0
SLOFILES= \
diff --git a/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx b/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
index 0c12fac5c93f..f6b6a1c6511d 100644
--- a/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx
@@ -44,10 +44,6 @@
#include "share.hxx"
#include "smallstruct.hxx"
-#ifdef __MINGW32__
-#define BROKEN_ALLOCA
-#endif
-
using namespace ::rtl;
using namespace ::com::sun::star::uno;