summaryrefslogtreecommitdiff
path: root/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-07-19 15:12:55 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-07-19 22:33:34 +0100
commitf5792667cafef77cc4c142f4261f8b64280bc0fe (patch)
tree7c3cf285236ea7d3bd464841a4aa651a0bbab3f0 /bridges/source/cpp_uno/gcc3_linux_intel/share.hxx
parent1fe71ce42ed6977885a3253639bbc3f0881a47e7 (diff)
hack for now
Change-Id: I62673e60ac8785c74fc4f97ad76bcb02c7e28941
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_linux_intel/share.hxx')
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/share.hxx19
1 files changed, 13 insertions, 6 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx b/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx
index f97e81e419eb..512ae6db2c03 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx
@@ -27,9 +27,8 @@
#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
#define _GLIBCXX_CDTOR_CALLABI
#endif
-#include <unwind.h>
-#include "config_cxxabi.h"
+#include "config_gcc.h"
#include <uno/any2.h>
#include "uno/mapping.h"
@@ -38,7 +37,15 @@ namespace CPPU_CURRENT_NAMESPACE
void dummy_can_throw_anything( char const * );
-// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h
+// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
+
+struct _Unwind_Exception
+{
+ unsigned exception_class __attribute__((__mode__(__DI__)));
+ void * exception_cleanup;
+ unsigned private_1 __attribute__((__mode__(__word__)));
+ unsigned private_2 __attribute__((__mode__(__word__)));
+} __attribute__((__aligned__));
struct __cxa_exception
{
@@ -80,17 +87,17 @@ struct __cxa_eh_globals
// __cxa_allocate_exception and __cxa_throw, though they do not have the
// additional problem of an incompletely declared return type:
-#if !HAVE_CXXABI_H_CXA_GET_GLOBALS
+#if !HAVE_GCC_CXXABI_H_CXA_GET_GLOBALS
namespace __cxxabiv1 { extern "C" void * __cxa_get_globals() throw(); }
#endif
-#if !HAVE_CXXABI_H_CXA_ALLOCATE_EXCEPTION
+#if !HAVE_GCC_CXXABI_H_CXA_ALLOCATE_EXCEPTION
namespace __cxxabiv1 {
extern "C" void * __cxa_allocate_exception(std::size_t thrown_size) throw();
}
#endif
-#if !HAVE_CXXABI_H_CXA_THROW
+#if !HAVE_GCC_CXXABI_H_CXA_THROW
namespace __cxxabiv1 {
extern "C" void __cxa_throw(
void * thrown_exception, void * tinfo, void (* dest)(void *))