[Libreoffice-commits] .: 17 commits - cppu/source cppu/util

Jan Holesovsky kendy at kemper.freedesktop.org
Fri Nov 12 06:59:43 PST 2010


 cppu/source/typelib/typelib.cxx |    2 ++
 cppu/util/target.pmk            |    9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

New commits:
commit 919ef19648533d20ced7f13de3417bddc1af0ad4
Merge: fe79999... 6cb0b0a...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Fri Nov 12 14:38:01 2010 +0100

    Merge remote branch 'origin/libreoffice-3-3'

commit 6cb0b0a6a483c8afec1f20d7b9237043663a6280
Author: Petr Mladek <pmladek at suse.cz>
Date:   Thu Nov 11 13:25:13 2010 +0100

    Version 3.2.99.3, tag LIBREOFFICE_3_2_99_3 (3.3-beta3)
commit 146e2fbca20f5cba3410d3d042ae6222a565dd7e
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Wed Nov 10 18:33:43 2010 +0200

    Add workaround to avoid crash when exiting LibreOffice
    
    Reintroduce the horrible CPPU_LEAK_STATIC_DATA hack used in OOo 3.2.1,
    but only for Windows builds. No idea what causes the crash. See
    fdo#31494. Don't know if this hack has some bad consequences then,
    i#107490 seems to say so.

diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx
index 10a7cb1..738f35d 100644
--- a/cppu/source/typelib/typelib.cxx
+++ b/cppu/source/typelib/typelib.cxx
@@ -275,6 +275,7 @@ inline void TypeDescriptor_Init_Impl::callChain(
 //__________________________________________________________________________________________________
 TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () )
 {
+#ifndef CPPU_LEAK_STATIC_DATA
     if( pCache )
     {
         TypeDescriptionList_Impl::const_iterator aIt = pCache->begin();
@@ -354,6 +355,7 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () )
 #endif
     delete pCallbacks;
     pCallbacks = 0;
+#endif // CPPU_LEAK_STATIC_DATA
 
     if( pMutex )
     {
diff --git a/cppu/util/target.pmk b/cppu/util/target.pmk
index 3befcb1..70be64b 100644
--- a/cppu/util/target.pmk
+++ b/cppu/util/target.pmk
@@ -45,9 +45,16 @@ CFLAGS += -O
 
 .ELSE
 
-# msvc++: no inlining
 .IF "$(COM)" == "MSC"
+# msvc++: no inlining
 CFLAGS += -Ob0
+.IF "$(cppu_no_leak)" == ""
+.IF "$(bndchk)" == ""
+# msvc++: workaround for strange crash at exit: just don't do the
+# cleanup of types and whatnot...
+CFLAGS += -DCPPU_LEAK_STATIC_DATA
+.ENDIF
+.ENDIF
 .ENDIF
 
 .ENDIF
commit 01123c23abb3e7e128045903a8c2d56debc99e4f
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Sun Nov 7 19:10:44 2010 +0100

    Fixed i#81780 for good, even on Macos X

diff --git a/idlc/inc/idlc/idlc.hxx b/idlc/inc/idlc/idlc.hxx
index 61b5672..a423624 100644
--- a/idlc/inc/idlc/idlc.hxx
+++ b/idlc/inc/idlc/idlc.hxx
@@ -103,6 +103,12 @@ public:
         { m_warningCount++; }
     sal_uInt32 getLineNumber()
         { return m_lineNumber; }
+    sal_uInt32 getOffsetStart()
+        { return m_offsetStart; }
+    sal_uInt32 getOffsetEnd()
+        { return m_offsetEnd; }
+    void setOffset( sal_uInt32 start, sal_uInt32 end)
+        { m_offsetStart = start; m_offsetEnd = end; }
     void setLineNumber(sal_uInt32 lineNumber)
         { m_lineNumber = lineNumber; }
     void incLineNumber()
@@ -137,6 +143,8 @@ private:
     sal_uInt32			m_errorCount;
     sal_uInt32			m_warningCount;
     sal_uInt32			m_lineNumber;
+    sal_uInt32			m_offsetStart;
+    sal_uInt32			m_offsetEnd;
     ParseState			m_parseState;
     StringSet			m_includes;
 };
diff --git a/idlc/source/errorhandler.cxx b/idlc/source/errorhandler.cxx
index 319ef4b..6875d6b 100644
--- a/idlc/source/errorhandler.cxx
+++ b/idlc/source/errorhandler.cxx
@@ -489,7 +489,7 @@ static OString flagToString(sal_uInt32 flag)
     return flagStr;
 }	
 
-static void errorHeader(ErrorCode eCode, sal_Int32 lineNumber)
+static void errorHeader(ErrorCode eCode, sal_Int32 lineNumber, sal_uInt32 start, sal_uInt32 end)
 {
     OString file;
     if ( idlc()->getFileName() == idlc()->getRealFileName() )
@@ -497,14 +497,23 @@ static void errorHeader(ErrorCode eCode, sal_Int32 lineNumber)
     else
         file = idlc()->getFileName();
     
-    fprintf(stderr, "%s(%lu) : %s", file.getStr(),
+    fprintf(stderr, "%s:%lu [%lu:%lu] : %s", file.getStr(),
             sal::static_int_cast< unsigned long >(lineNumber),
+            sal::static_int_cast< unsigned long >(start),
+            sal::static_int_cast< unsigned long >(end),
             errorCodeToMessage(eCode));		
 }
+
+static void errorHeader(ErrorCode eCode, sal_uInt32 lineNumber)
+{
+    errorHeader(eCode, lineNumber,
+            idlc()->getOffsetStart(), idlc()->getOffsetEnd());
+}
     
 static void errorHeader(ErrorCode eCode)
 {
-    errorHeader(eCode, idlc()->getLineNumber());
+    errorHeader(eCode, idlc()->getLineNumber(),
+            idlc()->getOffsetStart(), idlc()->getOffsetEnd());
 }	
 
 static void warningHeader(WarningCode wCode)
diff --git a/idlc/source/idlc.cxx b/idlc/source/idlc.cxx
index c637728..7fcc8e8 100644
--- a/idlc/source/idlc.cxx
+++ b/idlc/source/idlc.cxx
@@ -220,6 +220,8 @@ Idlc::Idlc(Options* pOptions)
     , m_errorCount(0)
     , m_warningCount(0)
     , m_lineNumber(0)
+    , m_offsetStart(0)
+    , m_offsetEnd(0)
     , m_parseState(PS_NoState)
 {
     m_pScopes = new AstStack();
diff --git a/idlc/source/parser.y b/idlc/source/parser.y
index 8da9c7a..6de66ae 100644
--- a/idlc/source/parser.y
+++ b/idlc/source/parser.y
@@ -103,8 +103,8 @@
 
 #include <algorithm>
 #include <vector>
-    
-using namespace ::rtl;
+
+using namespace rtl;
 
 #define YYDEBUG 1
 #define YYERROR_VERBOSE 1
diff --git a/idlc/source/scanner.ll b/idlc/source/scanner.ll
index bbcc08f..2206297 100644
--- a/idlc/source/scanner.ll
+++ b/idlc/source/scanner.ll
@@ -48,12 +48,19 @@
 
 #include "attributeexceptions.hxx"
 
+
 class AstExpression;
 class AstArray;
 class AstMember;
 
 #include <parser.hxx>
 
+/* handle locations */
+int yycolumn = 1;
+
+#define YY_USER_ACTION idlc()->setOffset(yycolumn, yycolumn+yyleng-1); \
+    yycolumn += yyleng;
+
 sal_Int32		beginLine = 0;
 ::rtl::OString	docu;
 
@@ -227,6 +234,7 @@ static void parseLineAndFile(sal_Char* pBuf)
 	for (; *r != '\0' && *r != ' ' && *r != '\t'; r++) ;
 	*r++ = 0;
 	idlc()->setLineNumber((sal_uInt32)atol(h));
+    yylineno = atol(h);
 
 	/* Find file name, if present */
 	for (; *r != '"'; r++)
@@ -283,8 +291,10 @@ IDENTIFIER      ("_"?({ALPHA}|{DIGIT})+)*
 %%
 
 [ \t\r]+	; /* eat up whitespace */
-[\n] 		{
-	idlc()->incLineNumber();
+[\n]           {
+       idlc()->incLineNumber();
+       yycolumn = 1;
+       yylineno++;
 }
 
 attribute       return IDL_ATTRIBUTE;
@@ -349,21 +359,21 @@ published       return IDL_PUBLISHED;
 "..."           return IDL_ELLIPSIS;
 
 ("-")?{INT_LITERAL}+(l|L|u|U)?    {
-            	return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
+                return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
             }
 
 ("-")?{OCT_LITERAL}+(l|L|u|U)?    {
-            	return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
+                return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
             }
 
 ("-")?{HEX_LITERAL}+(l|L|u|U)?    {
-            	return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
+                return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
             }
 
 ("-")?{DIGIT}+(e|E){1}(("+"|"-")?{DIGIT}+)+(f|F)?	|
 ("-")?"."{DIGIT}+((e|E)("+"|"-")?{DIGIT}+)?(f|F)?	|
 ("-")?{DIGIT}*"."{DIGIT}+((e|E)("+"|"-")?{DIGIT}+)?(f|F)?        {
-            	yylval.dval = asciiToFloat( yytext );
+                yylval.dval = asciiToFloat( yytext );
 				return IDL_FLOATING_PT_LITERAL;
             }
 
commit dc9eb59c70454b85710e474ed84e7e0621e7e739
Author: Miklos Vajna <vmiklos at frugalware.org>
Date:   Mon Nov 8 21:55:52 2010 +0100

    cpp_uno: fix build error introduced by commit 706100d1

diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
index db29a87..8074489 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
@@ -158,7 +158,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
         buf.append( 'E' );
 
         OString symName( buf.makeStringAndClear() );
-#if defined(FREEBSD) && __FreeBSD_version < 702104 /* #i22253# &/
+#if defined(FREEBSD) && __FreeBSD_version < 702104 /* #i22253# */
         rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
 #else
         rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
commit 910c7c2be9981c94ec94b52a91eac6744f7f2d9a
Author: Robert Nagy <robert at openbsd.org>
Date:   Mon Nov 8 19:51:12 2010 +0100

    JFW_PLUGIN_ARCH/server is needed on OpenBSD

diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx
index 3658747..852c7cb 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx
@@ -89,6 +89,9 @@ char const* const* SunInfo::getLibraryPaths(int* size)
     static char const * ar[] = {
 
         "/lib/" JFW_PLUGIN_ARCH "/client",
+#if defined(OPENBSD)
+        "/lib/" JFW_PLUGIN_ARCH "/server",
+#endif
         "/lib/" JFW_PLUGIN_ARCH "/native_threads", 
         "/lib/" JFW_PLUGIN_ARCH
 
commit c75b0314ec681dbb31b8b235cb417e6a062c07ed
Author: Robert Nagy <robert at openbsd.org>
Date:   Sat Nov 6 18:33:28 2010 +0100

    add OPENBSD ld command

diff --git a/pyuno/source/module/makefile.mk b/pyuno/source/module/makefile.mk
index c928cc6..06f9b42 100644
--- a/pyuno/source/module/makefile.mk
+++ b/pyuno/source/module/makefile.mk
@@ -144,6 +144,8 @@ $(PYUNO_MODULE) : $(SLO)$/pyuno_dlopenwrapper.obj
     @echo ld -shared -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
 .ELIF "$(OS)" == "NETBSD"
     @echo $(LINK) $(LINKFLAGSSHLCUI) -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
+.ELIF "$(OS)" == "OPENBSD"
+    @echo ld -shared -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
 .ELIF "$(OS)" == "MACOSX"
     @echo $(CC) -bundle -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o $(EXTRA_LINKFLAGS) $(EXTRA_FRAMEWORK_FLAG) > $(MISC)$/$(@:b).cmd
 .ELSE
commit 706100d12bd0043336a41f0f36c85389fef67075
Author: Robert Nagy <robert at openbsd.org>
Date:   Sat Nov 6 00:13:51 2010 +0100

    Use linux bridge code on all BSDs.
    
    Share the linux bridge code with all the BSDs to avoid code duplication
    and the hassle of syncing. Discussed with Caolan McNamara

diff --git a/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx b/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
index 43b0bf8..680dee6 100644
--- a/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
+++ b/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
@@ -38,7 +38,8 @@
 #include <hash_map>
 
 /*See: http://people.redhat.com/drepper/selinux-mem.html*/
-#ifdef LINUX
+#if defined(LINUX) || defined(OPENBSD) || defined(FREEBSD) \
+	|| defined(NETBSD)
 #define USE_DOUBLE_MMAP
 #endif
 
diff --git a/bridges/prj/build.lst b/bridges/prj/build.lst
index 51c342a..34eda8a 100644
--- a/bridges/prj/build.lst
+++ b/bridges/prj/build.lst
@@ -9,9 +9,7 @@ br	bridges\source\cpp_uno\mingw_intel	nmake	-	w	br_gcc3i br_cppuno_shared br_uno
 br	bridges\source\cpp_uno\msvc_win32_intel	nmake	-	w	br_msci br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_linux_intel	nmake	-	u	br_gcc3li br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_os2_intel	nmake	-	p	br_gcc3os br_cppuno_shared br_unotypes br_inc NULL
-br	bridges\source\cpp_uno\gcc3_freebsd_intel	nmake	-	u	br_gcc3fi br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_linux_x86-64	nmake	-	u	br_gcc3lx br_cppuno_shared br_unotypes br_inc NULL
-br	bridges\source\cpp_uno\gcc3_freebsd_x86-64	nmake	-	u	br_gcc3fx br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_linux_powerpc	nmake	-	u	br_gcc3lp br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_aix_powerpc	nmake	-	u	br_gcc3ap br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_linux_powerpc64	nmake	-	u	br_gcc3lp_64 br_cppuno_shared br_unotypes br_inc NULL
@@ -31,8 +29,6 @@ br  bridges\source\cpp_uno\cc5_solaris_sparc64 nmake - u br_cc5sols64 br_unotype
 br	bridges\source\cpp_uno\cc50_solaris_intel			nmake	-	u	br_cc50soli br_unotypes br_cppuno_shared br_inc NULL
 br	bridges\source\cpp_uno\gcc3_solaris_sparc			nmake	-	u	br_gcc3sogs br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\cpp_uno\gcc3_solaris_intel			nmake	-	u	br_gcc3sogi br_cppuno_shared br_unotypes br_inc NULL
-br	bridges\source\cpp_uno\gcc3_netbsd_intel	nmake	-	u	br_gccni br_unotypes br_inc NULL
-br	bridges\source\cpp_uno\gcc3_netbsd_x86-64	nmake	-	u	br_gcc3nx br_cppuno_shared br_unotypes br_inc NULL
 br  bridges\source\cpp_uno\shared           nmake   -   all br_cppuno_shared br_unotypes br_inc NULL
 br	bridges\source\jni_uno					nmake	-	all	br_jni_uno br_unotypes br_inc NULL
 br	bridges\source\jni_uno\java\com\sun\star\bridges\jni_uno				nmake	-	all	br_jni_uno_java br_unotypes br_inc NULL
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/call.s b/bridges/source/cpp_uno/gcc3_freebsd_intel/call.s
deleted file mode 100644
index f345e3a..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_intel/call.s
+++ /dev/null
@@ -1,268 +0,0 @@
-    .text
-
-.globl privateSnippetExecutorGeneral
-    .type   privateSnippetExecutorGeneral, at function
-privateSnippetExecutorGeneral:
-.LFBg:
-    movl    %esp,%ecx
-    pushl   %ebp              # proper stack frame needed for exception handling
-.LCFIg0:
-    movl    %esp,%ebp
-.LCFIg1:
-    subl    $0x4,%esp         # 32bit returnValue
-    pushl   %esp              # 32bit &returnValue
-    pushl   %ecx              # 32bit pCallStack
-    pushl   %edx              # 32bit nVtableOffset
-    pushl   %eax              # 32bit nFunctionIndex
-    call    cpp_vtable_call
-    movl    16(%esp),%eax     # 32bit returnValue
-    leave
-    ret
-.LFEg:
-    .size   privateSnippetExecutorGeneral,.-privateSnippetExecutorGeneral
-
-.globl privateSnippetExecutorVoid
-    .type   privateSnippetExecutorVoid, at function
-privateSnippetExecutorVoid:
-.LFBv:
-    movl    %esp,%ecx
-    pushl   %ebp              # proper stack frame needed for exception handling
-.LCFIv0:
-    movl    %esp,%ebp
-.LCFIv1:
-    pushl   $0                # 32bit null pointer (returnValue not used)
-    pushl   %ecx              # 32bit pCallStack
-    pushl   %edx              # 32bit nVtableOffset
-    pushl   %eax              # 32bit nFunctionIndex
-    call    cpp_vtable_call
-    leave
-    ret
-.LFEv:
-    .size   privateSnippetExecutorVoid,.-privateSnippetExecutorVoid
-
-.globl privateSnippetExecutorHyper
-    .type   privateSnippetExecutorHyper, at function
-privateSnippetExecutorHyper:
-.LFBh:
-    movl    %esp,%ecx
-    pushl   %ebp              # proper stack frame needed for exception handling
-.LCFIh0:
-    movl    %esp,%ebp
-.LCFIh1:
-    subl    $0x8,%esp         # 64bit returnValue
-    pushl   %esp              # 32bit &returnValue
-    pushl   %ecx              # 32bit pCallStack
-    pushl   %edx              # 32bit nVtableOffset
-    pushl   %eax              # 32bit nFunctionIndex
-    call    cpp_vtable_call
-    movl    16(%esp),%eax     # 64bit returnValue, lower half
-    movl    20(%esp),%edx     # 64bit returnValue, upper half
-    leave
-    ret
-.LFEh:
-    .size   privateSnippetExecutorHyper,.-privateSnippetExecutorHyper
-
-.globl privateSnippetExecutorFloat
-    .type   privateSnippetExecutorFloat, at function
-privateSnippetExecutorFloat:
-.LFBf:
-    movl    %esp,%ecx
-    pushl   %ebp              # proper stack frame needed for exception handling
-.LCFIf0:
-    movl    %esp,%ebp
-.LCFIf1:
-    subl    $0x4,%esp         # 32bit returnValue
-    pushl   %esp              # 32bit &returnValue
-    pushl   %ecx              # 32bit pCallStack
-    pushl   %edx              # 32bit nVtableOffset
-    pushl   %eax              # 32bit nFunctionIndex
-    call    cpp_vtable_call
-    flds    16(%esp)          # 32bit returnValue
-    leave
-    ret
-.LFEf:
-    .size   privateSnippetExecutorFloat,.-privateSnippetExecutorFloat
-
-.globl privateSnippetExecutorDouble
-    .type   privateSnippetExecutorDouble, at function
-privateSnippetExecutorDouble:
-.LFBd:
-    movl    %esp,%ecx
-    pushl   %ebp              # proper stack frame needed for exception handling
-.LCFId0:
-    movl    %esp,%ebp
-.LCFId1:
-    subl    $0x8,%esp         # 64bit returnValue
-    pushl   %esp              # 32bit &returnValue
-    pushl   %ecx              # 32bit pCallStack
-    pushl   %edx              # 32bit nVtableOffset
-    pushl   %eax              # 32bit nFunctionIndex
-    call    cpp_vtable_call
-    fldl    16(%esp)          # 64bit returnValue
-    leave
-    ret
-.LFEd:
-    .size   privateSnippetExecutorDouble,.-privateSnippetExecutorDouble
-
-.globl privateSnippetExecutorClass
-    .type   privateSnippetExecutorClass, at function
-privateSnippetExecutorClass:
-.LFBc:
-    movl    %esp,%ecx
-    pushl   %ebp              # proper stack frame needed for exception handling
-.LCFIc0:
-    movl    %esp,%ebp
-.LCFIc1:
-    subl    $0x4,%esp         # 32bit returnValue
-    pushl   %esp              # 32bit &returnValue
-    pushl   %ecx              # 32bit pCallStack
-    pushl   %edx              # 32bit nVtableOffset
-    pushl   %eax              # 32bit nFunctionIndex
-    call    cpp_vtable_call
-    movl    16(%esp),%eax     # 32bit returnValue
-    leave
-    ret     $4
-.LFEc:
-    .size   privateSnippetExecutorClass,.-privateSnippetExecutorClass
-
-    .section .eh_frame,"a", at progbits
-.Lframe1:
-    .long   .LECIE1-.LSCIE1   # length
-.LSCIE1:
-    .long   0                 # CIE_ID
-    .byte   1                 # version
-    .string "zR"              # augmentation
-    .uleb128 1                # code_alignment_factor
-    .sleb128 -4               # data_alignment_factor
-    .byte   8                 # return_address_register
-    .uleb128 1                # augmentation size 1:
-    .byte   0x1B              #  FDE Encoding (pcrel sdata4)
-                              # initial_instructions:
-    .byte   0x0C              #  DW_CFA_def_cfa %esp, 4
-    .uleb128 4
-    .uleb128 4
-    .byte   0x88              #  DW_CFA_offset ret, 1
-    .uleb128 1
-    .align 4
-.LECIE1:
-.LSFDEg:
-    .long   .LEFDEg-.LASFDEg  # length
-.LASFDEg:
-    .long   .LASFDEg-.Lframe1 # CIE_pointer
-    .long   .LFBg-.           # initial_location
-    .long   .LFEg-.LFBg       # address_range
-    .uleb128 0                # augmentation size 0
-                              # instructions:
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIg0-.LFBg
-    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
-    .uleb128 8
-    .byte   0x85              #  DW_CFA_offset %ebp, 2
-    .uleb128 2
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIg1-.LCFIg0
-    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
-    .uleb128 5
-    .align 4
-.LEFDEg:
-.LSFDEv:
-    .long   .LEFDEv-.LASFDEv  # length
-.LASFDEv:
-    .long   .LASFDEv-.Lframe1 # CIE_pointer
-    .long   .LFBv-.           # initial_location
-    .long   .LFEv-.LFBv       # address_range
-    .uleb128 0                # augmentation size 0
-                              # instructions:
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIv0-.LFBv
-    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
-    .uleb128 8
-    .byte   0x85              #  DW_CFA_offset %ebp, 2
-    .uleb128 2
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIv1-.LCFIv0
-    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
-    .uleb128 5
-    .align 4
-.LEFDEv:
-.LSFDEh:
-    .long   .LEFDEh-.LASFDEh  # length
-.LASFDEh:
-    .long   .LASFDEh-.Lframe1 # CIE_pointer
-    .long   .LFBh-.           # initial_location
-    .long   .LFEh-.LFBh       # address_range
-    .uleb128 0                # augmentation size 0
-                              # instructions:
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIh0-.LFBh
-    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
-    .uleb128 8
-    .byte   0x85              #  DW_CFA_offset %ebp, 2
-    .uleb128 2
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIh1-.LCFIh0
-    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
-    .uleb128 5
-    .align 4
-.LEFDEh:
-.LSFDEf:
-    .long   .LEFDEf-.LASFDEf  # length
-.LASFDEf:
-    .long   .LASFDEf-.Lframe1 # CIE_pointer
-    .long   .LFBf-.           # initial_location
-    .long   .LFEf-.LFBf       # address_range
-    .uleb128 0                # augmentation size 0
-                              # instructions:
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIf0-.LFBf
-    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
-    .uleb128 8
-    .byte   0x85              #  DW_CFA_offset %ebp, 2
-    .uleb128 2
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIf1-.LCFIf0
-    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
-    .uleb128 5
-    .align 4
-.LEFDEf:
-.LSFDEd:
-    .long   .LEFDEd-.LASFDEd  # length
-.LASFDEd:
-    .long   .LASFDEd-.Lframe1 # CIE_pointer
-    .long   .LFBd-.           # initial_location
-    .long   .LFEd-.LFBd       # address_range
-    .uleb128 0                # augmentation size 0
-                              # instructions:
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFId0-.LFBd
-    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
-    .uleb128 8
-    .byte   0x85              #  DW_CFA_offset %ebp, 2
-    .uleb128 2
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFId1-.LCFId0
-    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
-    .uleb128 5
-    .align 4
-.LEFDEd:
-.LSFDEc:
-    .long   .LEFDEc-.LASFDEc  # length
-.LASFDEc:
-    .long   .LASFDEc-.Lframe1 # CIE_pointer
-    .long   .LFBc-.           # initial_location
-    .long   .LFEc-.LFBc       # address_range
-    .uleb128 0                # augmentation size 0
-                              # instructions:
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIc0-.LFBc
-    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
-    .uleb128 8
-    .byte   0x85              #  DW_CFA_offset %ebp, 2
-    .uleb128 2
-    .byte   0x04              #  DW_CFA_advance_loc4
-    .long   .LCFIc1-.LCFIc0
-    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
-    .uleb128 5
-    .align 4
-.LEFDEc:
-    .section .note.GNU-stack,"", at progbits
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
deleted file mode 100644
index 1d3c307..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+++ /dev/null
@@ -1,493 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_bridges.hxx"
-
-#include <com/sun/star/uno/genfunc.hxx>
-#include "com/sun/star/uno/RuntimeException.hpp"
-#include <uno/data.h>
-#include <typelib/typedescription.hxx>
-
-#include "bridges/cpp_uno/shared/bridge.hxx"
-#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
-#include "bridges/cpp_uno/shared/types.hxx"
-#include "bridges/cpp_uno/shared/vtablefactory.hxx"
-
-#include "share.hxx"
-
-using namespace ::com::sun::star::uno;
-
-namespace
-{
-
-//==================================================================================================
-void cpp2uno_call(
-    bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
-    const typelib_TypeDescription * pMemberTypeDescr,
-    typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
-    sal_Int32 nParams, typelib_MethodParameter * pParams,
-    void ** pCallStack,
-    void * pReturnValue )
-{
-    // pCallStack: ret, [return ptr], this, params
-    char * pCppStack = (char *)(pCallStack +1);
-
-    // return
-    typelib_TypeDescription * pReturnTypeDescr = 0;
-    if (pReturnTypeRef)
-        TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-    
-    void * pUnoReturn = 0;
-    void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
-    
-    if (pReturnTypeDescr)
-    {
-        if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-        {
-            pUnoReturn = pReturnValue; // direct way for simple types
-        }
-        else // complex return via ptr (pCppReturn)
-        {
-            pCppReturn = *(void **)pCppStack;
-            pCppStack += sizeof(void *);
-            
-            pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType(
-                              pReturnTypeDescr )
-                          ? alloca( pReturnTypeDescr->nSize )
-                          : pCppReturn); // direct way
-        }
-    }
-    // pop this
-    pCppStack += sizeof( void* );
-
-    // stack space
-    OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
-    // parameters
-    void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
-    void ** pCppArgs = pUnoArgs + nParams;
-    // indizes of values this have to be converted (interface conversion cpp<=>uno)
-    sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
-    // type descriptions for reconversions
-    typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
-    
-    sal_Int32 nTempIndizes   = 0;
-    
-    for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
-    {
-        const typelib_MethodParameter & rParam = pParams[nPos];
-        typelib_TypeDescription * pParamTypeDescr = 0;
-        TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-
-        if (!rParam.bOut
-            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
-            // value
-        {
-            pCppArgs[nPos] = pCppStack;
-            pUnoArgs[nPos] = pCppStack;
-            switch (pParamTypeDescr->eTypeClass)
-            {
-            case typelib_TypeClass_HYPER:
-            case typelib_TypeClass_UNSIGNED_HYPER:
-            case typelib_TypeClass_DOUBLE:
-                pCppStack += sizeof(sal_Int32); // extra long
-                break;
-            default:
-                break;
-            }
-            // no longer needed
-            TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-        }
-        else // ptr to complex value | ref
-        {
-            pCppArgs[nPos] = *(void **)pCppStack;
-
-            if (! rParam.bIn) // is pure out
-            {
-                // uno out is unconstructed mem!
-                pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
-                pTempIndizes[nTempIndizes] = nPos;
-                // will be released at reconversion
-                ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-            }
-            // is in/inout
-            else if (bridges::cpp_uno::shared::relatesToInterfaceType(
-                         pParamTypeDescr ))
-            {
-                uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-                                        *(void **)pCppStack, pParamTypeDescr,
-                                        pThis->getBridge()->getCpp2Uno() );
-                pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
-                // will be released at reconversion
-                ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-            }
-            else // direct way
-            {
-                pUnoArgs[nPos] = *(void **)pCppStack;
-                // no longer needed
-                TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-            }
-        }
-        pCppStack += sizeof(sal_Int32); // standard parameter length
-    }
-    
-    // ExceptionHolder
-    uno_Any aUnoExc; // Any will be constructed by callee
-    uno_Any * pUnoExc = &aUnoExc;
-
-    // invoke uno dispatch call
-    (*pThis->getUnoI()->pDispatcher)(
-        pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
-    
-    // in case an exception occured...
-    if (pUnoExc)
-    {
-        // destruct temporary in/inout params
-        for ( ; nTempIndizes--; )
-        {
-            sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-            
-            if (pParams[nIndex].bIn) // is in/inout => was constructed
-                uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
-            TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
-        }
-        if (pReturnTypeDescr)
-            TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-        
-        CPPU_CURRENT_NAMESPACE::raiseException(
-            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
-            // has to destruct the any
-    }
-    else // else no exception occured...
-    {
-        // temporary params
-        for ( ; nTempIndizes--; )
-        {
-            sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-            typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-            
-            if (pParams[nIndex].bOut) // inout/out
-            {
-                // convert and assign
-                uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-                uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
-                                        pThis->getBridge()->getUno2Cpp() );
-            }
-            // destroy temp uno param
-            uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
-            
-            TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-        }
-        // return
-        if (pCppReturn) // has complex return
-        {
-            if (pUnoReturn != pCppReturn) // needs reconversion
-            {
-                uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
-                                        pThis->getBridge()->getUno2Cpp() );
-                // destroy temp uno return
-                uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
-            }
-            // complex return ptr is set to eax
-            *static_cast< void ** >(pReturnValue) = pCppReturn;
-        }
-        if (pReturnTypeDescr)
-        {
-            TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-        }
-    }
-}
-
-
-//==================================================================================================
-extern "C" void cpp_vtable_call(
-    int nFunctionIndex, int nVtableOffset, void** pCallStack,
-    void * pReturnValue )
-{
-    OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
-    
-    // pCallStack: ret adr, [ret *], this, params
-    void * pThis;
-    if( nFunctionIndex & 0x80000000 )
-    {
-        nFunctionIndex &= 0x7fffffff;
-        pThis = pCallStack[2];
-    }
-    else
-    {
-        pThis = pCallStack[1];
-    }
-    pThis = static_cast< char * >(pThis) - nVtableOffset;
-    bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
-        = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
-            pThis);
-    
-    typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
-    
-    OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
-    if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
-    {
-        throw RuntimeException(
-            rtl::OUString::createFromAscii("illegal vtable index!"),
-            (XInterface *)pThis );
-    }
-    
-    // determine called method
-    sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
-    OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
-
-    TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
-    
-    switch (aMemberDescr.get()->eTypeClass)
-    {
-    case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-    {
-        if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
-        {
-            // is GET method
-            cpp2uno_call(
-                pCppI, aMemberDescr.get(),
-                ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
-                0, 0, // no params
-                pCallStack, pReturnValue );
-        }
-        else
-        {
-            // is SET method
-            typelib_MethodParameter aParam;
-            aParam.pTypeRef =
-                ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
-            aParam.bIn		= sal_True;
-            aParam.bOut		= sal_False;
-            
-            cpp2uno_call(
-                pCppI, aMemberDescr.get(),
-                0, // indicates void return
-                1, &aParam,
-                pCallStack, pReturnValue );
-        }
-        break;
-    }
-    case typelib_TypeClass_INTERFACE_METHOD:
-    {
-        // is METHOD
-        switch (nFunctionIndex)
-        {
-        case 1: // acquire()
-            pCppI->acquireProxy(); // non virtual call!
-            break;
-        case 2: // release()
-            pCppI->releaseProxy(); // non virtual call!
-            break;
-        case 0: // queryInterface() opt
-        {
-            typelib_TypeDescription * pTD = 0;
-            TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pCallStack[3] )->getTypeLibType() );
-            if (pTD)
-            {
-                XInterface * pInterface = 0;
-                (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
-                    pCppI->getBridge()->getCppEnv(),
-                    (void **)&pInterface, pCppI->getOid().pData,
-                    (typelib_InterfaceTypeDescription *)pTD );
-            
-                if (pInterface)
-                {
-                    ::uno_any_construct(
-                        reinterpret_cast< uno_Any * >( pCallStack[1] ),
-                        &pInterface, pTD, cpp_acquire );
-                    pInterface->release();
-                    TYPELIB_DANGER_RELEASE( pTD );
-                    *static_cast< void ** >(pReturnValue) = pCallStack[1];
-                    break;
-                }
-                TYPELIB_DANGER_RELEASE( pTD );
-            }
-        } // else perform queryInterface()
-        default:
-            cpp2uno_call(
-                pCppI, aMemberDescr.get(),
-                ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
-                ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
-                ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
-                pCallStack, pReturnValue );
-        }
-        break;
-    }
-    default:
-    {
-        throw RuntimeException(
-            rtl::OUString::createFromAscii("no member description found!"),
-            (XInterface *)pThis );
-    }
-    }
-}
-
-//==================================================================================================
-extern "C" void privateSnippetExecutorGeneral();
-extern "C" void privateSnippetExecutorVoid();
-extern "C" void privateSnippetExecutorHyper();
-extern "C" void privateSnippetExecutorFloat();
-extern "C" void privateSnippetExecutorDouble();
-extern "C" void privateSnippetExecutorClass();
-extern "C" typedef void (*PrivateSnippetExecutor)();
-
-int const codeSnippetSize = 16;
-
-unsigned char * codeSnippet(
-    unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
-    typelib_TypeClass returnTypeClass)
-{
-    if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) {
-        functionIndex |= 0x80000000;
-    }
-    PrivateSnippetExecutor exec;
-    switch (returnTypeClass) {
-    case typelib_TypeClass_VOID:
-        exec = privateSnippetExecutorVoid;
-        break;
-    case typelib_TypeClass_HYPER:
-    case typelib_TypeClass_UNSIGNED_HYPER:
-        exec = privateSnippetExecutorHyper;
-        break;
-    case typelib_TypeClass_FLOAT:
-        exec = privateSnippetExecutorFloat;
-        break;
-    case typelib_TypeClass_DOUBLE:
-        exec = privateSnippetExecutorDouble;
-        break;
-    case typelib_TypeClass_STRING:
-    case typelib_TypeClass_TYPE:
-    case typelib_TypeClass_ANY:
-    case typelib_TypeClass_SEQUENCE:
-    case typelib_TypeClass_STRUCT:
-    case typelib_TypeClass_INTERFACE:
-        exec = privateSnippetExecutorClass;
-        break;
-    default:
-        exec = privateSnippetExecutorGeneral;
-        break;
-    }
-    unsigned char * p = code;
-    OSL_ASSERT(sizeof (sal_Int32) == 4);
-    // mov function_index, %eax:
-    *p++ = 0xB8;
-    *reinterpret_cast< sal_Int32 * >(p) = functionIndex;
-    p += sizeof (sal_Int32);
-    // mov vtable_offset, %edx:
-    *p++ = 0xBA;
-    *reinterpret_cast< sal_Int32 * >(p) = vtableOffset;
-    p += sizeof (sal_Int32);
-    // jmp privateSnippetExecutor:
-    *p++ = 0xE9;
-    *reinterpret_cast< sal_Int32 * >(p)
-        = ((unsigned char *) exec) - p - sizeof (sal_Int32);
-    p += sizeof (sal_Int32);
-    OSL_ASSERT(p - code <= codeSnippetSize);
-    return code + codeSnippetSize;
-}
-
-}
-
-struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
-
-bridges::cpp_uno::shared::VtableFactory::Slot *
-bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
-{
-    return static_cast< Slot * >(block) + 2;
-}
-
-sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
-    sal_Int32 slotCount)
-{
-    return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
-}
-
-bridges::cpp_uno::shared::VtableFactory::Slot *
-bridges::cpp_uno::shared::VtableFactory::initializeBlock(
-    void * block, sal_Int32 slotCount)
-{
-    Slot * slots = mapBlockToVtable(block);
-    slots[-2].fn = 0;
-    slots[-1].fn = 0;
-    return slots + slotCount;
-}
-
-unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
-    Slot ** slots, unsigned char * code,
-    typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
-    sal_Int32 functionCount, sal_Int32 vtableOffset)
-{
-    (*slots) -= functionCount;
-    Slot * s = *slots;
-    for (sal_Int32 i = 0; i < type->nMembers; ++i) {
-        typelib_TypeDescription * member = 0;
-        TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
-        OSL_ASSERT(member != 0);
-        switch (member->eTypeClass) {
-        case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-            // Getter:
-            (s++)->fn = code;
-            code = codeSnippet(
-                code, functionOffset++, vtableOffset,
-                reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >(
-                    member)->pAttributeTypeRef->eTypeClass);
-            // Setter:
-            if (!reinterpret_cast<
-                typelib_InterfaceAttributeTypeDescription * >(
-                    member)->bReadOnly)
-            {
-                (s++)->fn = code;
-                code = codeSnippet(
-                    code, functionOffset++, vtableOffset,
-                    typelib_TypeClass_VOID);
-            }
-            break;
-
-        case typelib_TypeClass_INTERFACE_METHOD:
-            (s++)->fn = code;
-            code = codeSnippet(
-                code, functionOffset++, vtableOffset,
-                reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(
-                    member)->pReturnTypeRef->eTypeClass);
-            break;
-
-        default:
-            OSL_ASSERT(false);
-            break;
-        }
-        TYPELIB_DANGER_RELEASE(member);
-    }
-    return code;
-}
-
-void bridges::cpp_uno::shared::VtableFactory::flushCode(
-    unsigned char const *, unsigned char const *)
-{}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx b/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
deleted file mode 100644
index 60009e9..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
+++ /dev/null
@@ -1,340 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_bridges.hxx"
-
-#include <stdio.h>
-#include <dlfcn.h>
-#include <cxxabi.h>
-#include <hash_map>
-#include <sys/param.h>
-
-#include <rtl/strbuf.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <osl/diagnose.h>
-#include <osl/mutex.hxx>
-
-#include <com/sun/star/uno/genfunc.hxx>
-#include "com/sun/star/uno/RuntimeException.hpp"
-#include <typelib/typedescription.hxx>
-#include <uno/any2.h>
-
-#include "share.hxx"
-
-
-using namespace ::std;
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::__cxxabiv1;
-
-
-namespace CPPU_CURRENT_NAMESPACE
-{
-
-void dummy_can_throw_anything( char const * )
-{
-}
-
-//==================================================================================================
-static OUString toUNOname( char const * p ) SAL_THROW( () )
-{
-#if OSL_DEBUG_LEVEL > 1
-    char const * start = p;
-#endif
-
-    // example: N3com3sun4star4lang24IllegalArgumentExceptionE
-
-    OUStringBuffer buf( 64 );
-    OSL_ASSERT( 'N' == *p );
-    ++p; // skip N
-
-    while ('E' != *p)
-    {
-        // read chars count
-        long n = (*p++ - '0');
-        while ('0' <= *p && '9' >= *p)
-        {
-            n *= 10;
-            n += (*p++ - '0');
-        }
-        buf.appendAscii( p, n );
-        p += n;
-        if ('E' != *p)
-            buf.append( (sal_Unicode)'.' );
-    }
-
-#if OSL_DEBUG_LEVEL > 1
-    OUString ret( buf.makeStringAndClear() );
-    OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
-    fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
-    return ret;
-#else
-    return buf.makeStringAndClear();
-#endif
-}
-
-//==================================================================================================
-class RTTI
-{
-    typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
-
-    Mutex m_mutex;
-    t_rtti_map m_rttis;
-    t_rtti_map m_generatedRttis;
-
-    void * m_hApp;
-
-public:
-    RTTI() SAL_THROW( () );
-    ~RTTI() SAL_THROW( () );
-
-    type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
-};
-//__________________________________________________________________________________________________
-RTTI::RTTI() SAL_THROW( () )
-#if __FreeBSD_version < 602103
-    : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) )
-#else
-    : m_hApp( dlopen( 0, RTLD_LAZY ) )
-#endif
-{
-}
-//__________________________________________________________________________________________________
-RTTI::~RTTI() SAL_THROW( () )
-{
-    dlclose( m_hApp );
-}
-
-//__________________________________________________________________________________________________
-type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
-{
-    type_info * rtti;
-
-    OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
-
-    MutexGuard guard( m_mutex );
-    t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
-    if (iRttiFind == m_rttis.end())
-    {
-        // RTTI symbol
-        OStringBuffer buf( 64 );
-        buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
-        sal_Int32 index = 0;
-        do
-        {
-            OUString token( unoName.getToken( 0, '.', index ) );
-            buf.append( token.getLength() );
-            OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
-            buf.append( c_token );
-        }
-        while (index >= 0);
-        buf.append( 'E' );
-
-        OString symName( buf.makeStringAndClear() );
-#if __FreeBSD_version < 602103 /* #i22253# */
-        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
-#else
-        rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
-#endif
-
-        if (rtti)
-        {
-            pair< t_rtti_map::iterator, bool > insertion(
-                m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
-            OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
-        }
-        else
-        {
-            // try to lookup the symbol in the generated rtti map
-            t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
-            if (iFind == m_generatedRttis.end())
-            {
-                // we must generate it !
-                // symbol and rtti-name is nearly identical,
-                // the symbol is prefixed with _ZTI
-                char const * rttiName = symName.getStr() +4;
-#if OSL_DEBUG_LEVEL > 1
-                fprintf( stderr,"generated rtti for %s\n", rttiName );
-#endif
-                if (pTypeDescr->pBaseTypeDescription)
-                {
-                    // ensure availability of base
-                    type_info * base_rtti = getRTTI(
-                        (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
-                    rtti = new __si_class_type_info(
-                        strdup( rttiName ), (__class_type_info *)base_rtti );
-                }
-                else
-                {
-                    // this class has no base class
-                    rtti = new __class_type_info( strdup( rttiName ) );
-                }
-
-                pair< t_rtti_map::iterator, bool > insertion(
-                    m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
-                OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
-            }
-            else // taking already generated rtti
-            {
-                rtti = iFind->second;
-            }
-        }
-    }
-    else
-    {
-        rtti = iRttiFind->second;
-    }
-
-    return rtti;
-}
-
-//--------------------------------------------------------------------------------------------------
-static void deleteException( void * pExc )
-{
-    __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
-    typelib_TypeDescription * pTD = 0;
-    OUString unoName( toUNOname( header->exceptionType->name() ) );
-    ::typelib_typedescription_getByName( &pTD, unoName.pData );
-    OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
-    if (pTD)
-    {
-        ::uno_destructData( pExc, pTD, cpp_release );
-        ::typelib_typedescription_release( pTD );
-    }
-}
-
-//==================================================================================================
-void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
-{
-#if OSL_DEBUG_LEVEL > 1
-    OString cstr(
-        OUStringToOString(
-            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
-            RTL_TEXTENCODING_ASCII_US ) );
-    fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
-#endif
-    void * pCppExc;
-    type_info * rtti;
-
-    {
-    // construct cpp exception object
-    typelib_TypeDescription * pTypeDescr = 0;
-    TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
-    OSL_ASSERT( pTypeDescr );
-    if (! pTypeDescr)
-    {
-        throw RuntimeException(
-            OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
-            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
-            Reference< XInterface >() );
-    }
-
-    pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
-    ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
-
-    // destruct uno exception
-    ::uno_any_destruct( pUnoExc, 0 );
-    // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-#ifdef LEAK_STATIC_DATA
-            s_rtti = new RTTI();
-#else
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-#endif
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
-    TYPELIB_DANGER_RELEASE( pTypeDescr );
-    OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
-    if (! rtti)
-    {
-        throw RuntimeException(
-            OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
-            *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
-            Reference< XInterface >() );
-    }
-    }
-
-    __cxa_throw( pCppExc, rtti, deleteException );
-}
-
-//==================================================================================================
-void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
-{
-    if (! header)
-    {
-        RuntimeException aRE(
-            OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
-            Reference< XInterface >() );
-        Type const & rType = ::getCppuType( &aRE );
-        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
-#if OSL_DEBUG_LEVEL > 0
-        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
-        OSL_ENSURE( 0, cstr.getStr() );
-#endif
-        return;
-    }
-
-    typelib_TypeDescription * pExcTypeDescr = 0;
-    OUString unoName( toUNOname( header->exceptionType->name() ) );
-#if OSL_DEBUG_LEVEL > 1
-    OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
-    fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
-#endif
-    typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
-    if (0 == pExcTypeDescr)
-    {
-        RuntimeException aRE(
-            OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
-            Reference< XInterface >() );
-        Type const & rType = ::getCppuType( &aRE );
-        uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
-#if OSL_DEBUG_LEVEL > 0
-        OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
-        OSL_ENSURE( 0, cstr.getStr() );
-#endif
-    }
-    else
-    {
-        // construct uno exception any
-        uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-        typelib_typedescription_release( pExcTypeDescr );
-    }
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk b/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk
deleted file mode 100644
index 87ff690..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=bridges
-TARGET=gcc3_uno
-LIBTARGET=no
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCFREEBSDIgcc3"
-
-.IF "$(cppu_no_leak)" == ""
-CFLAGS += -DLEAK_STATIC_DATA
-.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
-
-CFLAGSNOOPT=-O0
-
-SLOFILES= \
-    $(SLO)$/except.obj		\
-    $(SLO)$/cpp2uno.obj		\
-    $(SLO)$/uno2cpp.obj \
-    $(SLO)$/call.obj
-
-SHL1TARGET= $(TARGET)
-
-SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=..$/..$/bridge_exports.map
-SHL1RPATH=URELIB
-
-SHL1OBJS = $(SLOFILES)
-SHL1LIBS = $(SLB)$/cpp_uno_shared.lib
-
-SHL1STDLIBS= \
-    $(CPPULIB)			\
-    $(SALLIB)
-
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-$(SLO)$/%.obj: %.s
-    $(CC) -c -o $(SLO)$/$(@:b).o $<
-    touch $@
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx b/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx
deleted file mode 100644
index e4a6b37..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "uno/mapping.h"
-
-#include <typeinfo>
-#include <exception>
-#include <cstddef>
-
-namespace CPPU_CURRENT_NAMESPACE
-{
-
-void dummy_can_throw_anything( char const * );
-
-// ----- 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
-{ 
-    ::std::type_info *exceptionType;
-    void (*exceptionDestructor)(void *); 
-    
-    ::std::unexpected_handler unexpectedHandler;
-    ::std::terminate_handler terminateHandler;
-    
-    __cxa_exception *nextException;
-    
-    int handlerCount;
-    
-    int handlerSwitchValue;
-    const unsigned char *actionRecord;
-    const unsigned char *languageSpecificData;
-    void *catchTemp;
-    void *adjustedPtr;
-    
-    _Unwind_Exception unwindHeader;
-};    
-
-extern "C" void *__cxa_allocate_exception(
-    std::size_t thrown_size ) throw();
-extern "C" void __cxa_throw (
-    void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
-
-struct __cxa_eh_globals
-{
-    __cxa_exception *caughtExceptions;
-    unsigned int uncaughtExceptions;
-};
-extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
-
-// -----
-
-//==================================================================================================
-void raiseException(
-    uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
-//==================================================================================================
-void fillUnoException(
-    __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
deleted file mode 100644
index 6ab09df..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
+++ /dev/null
@@ -1,447 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_bridges.hxx"
-
-#include <stdlib.h>
-
-#include <com/sun/star/uno/genfunc.hxx>
-#include "com/sun/star/uno/RuntimeException.hpp"
-#include <uno/data.h>
-
-#include "bridges/cpp_uno/shared/bridge.hxx"
-#include "bridges/cpp_uno/shared/types.hxx"
-#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx"
-#include "bridges/cpp_uno/shared/vtables.hxx"
-
-#include "share.hxx"
-
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-
-namespace
-{
-
-//==================================================================================================
-// The call instruction within the asm section of callVirtualMethod may throw
-// exceptions.  So that the compiler handles this correctly, it is important
-// that (a) callVirtualMethod might call dummy_can_throw_anything (although this
-// never happens at runtime), which in turn can throw exceptions, and (b)
-// callVirtualMethod is not inlined at its call site (so that any exceptions are
-// caught which are thrown from the instruction calling callVirtualMethod):
-void callVirtualMethod(
-    void * pAdjustedThisPtr,
-    sal_Int32 nVtableIndex,
-    void * pRegisterReturn,
-    typelib_TypeClass eReturnType,
-    sal_Int32 * pStackLongs,
-    sal_Int32 nStackLongs ) __attribute__((noinline));
-
-void callVirtualMethod(
-    void * pAdjustedThisPtr,
-    sal_Int32 nVtableIndex,
-    void * pRegisterReturn,
-    typelib_TypeClass eReturnType,
-    sal_Int32 * pStackLongs,
-    sal_Int32 nStackLongs )
-{
-    // parameter list is mixed list of * and values
-    // reference parameters are pointers
-    
-    OSL_ENSURE( pStackLongs && pAdjustedThisPtr, "### null ptr!" );
-    OSL_ENSURE( (sizeof(void *) == 4) && (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
-    OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
-    
-    // never called
-    if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
-
-    volatile long edx = 0, eax = 0; // for register returns
-    void * stackptr;
-    asm volatile (
-        "mov   %%esp, %6\n\t"
-        // copy values
-        "mov   %0, %%eax\n\t"
-        "mov   %%eax, %%edx\n\t"
-        "dec   %%edx\n\t"
-        "shl   $2, %%edx\n\t"
-        "add   %1, %%edx\n"
-        "Lcopy:\n\t"
-        "pushl 0(%%edx)\n\t"
-        "sub   $4, %%edx\n\t"
-        "dec   %%eax\n\t"
-        "jne   Lcopy\n\t"
-        // do the actual call
-        "mov   %2, %%edx\n\t"
-        "mov   0(%%edx), %%edx\n\t"
-        "mov   %3, %%eax\n\t"
-        "shl   $2, %%eax\n\t"
-        "add   %%eax, %%edx\n\t"
-        "mov   0(%%edx), %%edx\n\t"
-        "call  *%%edx\n\t"
-        // save return registers
-         "mov   %%eax, %4\n\t"
-         "mov   %%edx, %5\n\t"
-        // cleanup stack
-        "mov   %6, %%esp\n\t"
-        :
-        : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
-          "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
-        : "eax", "edx" );
-    switch( eReturnType )
-    {
-        case typelib_TypeClass_HYPER:
-        case typelib_TypeClass_UNSIGNED_HYPER:
-            ((long*)pRegisterReturn)[1] = edx;
-        case typelib_TypeClass_LONG:
-        case typelib_TypeClass_UNSIGNED_LONG:
-        case typelib_TypeClass_CHAR:
-        case typelib_TypeClass_ENUM:
-            ((long*)pRegisterReturn)[0] = eax;
-            break;
-        case typelib_TypeClass_SHORT:
-        case typelib_TypeClass_UNSIGNED_SHORT:
-            *(unsigned short*)pRegisterReturn = eax;
-            break;
-        case typelib_TypeClass_BOOLEAN:
-        case typelib_TypeClass_BYTE:
-            *(unsigned char*)pRegisterReturn = eax;
-            break;
-        case typelib_TypeClass_FLOAT:
-            asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) );
-            break;
-        case typelib_TypeClass_DOUBLE:
-            asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) );
-            break;
-        default:
-            break;
-    }
-}
-
-//================================================================================================== 
-static void cpp_call(
-    bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
-    bridges::cpp_uno::shared::VtableSlot aVtableSlot,
-    typelib_TypeDescriptionReference * pReturnTypeRef,
-    sal_Int32 nParams, typelib_MethodParameter * pParams,
-    void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
-{
-      // max space for: [complex ret ptr], values|ptr ...
-      char * pCppStack		=
-          (char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
-      char * pCppStackStart	= pCppStack;
-    
-    // return
-    typelib_TypeDescription * pReturnTypeDescr = 0;
-    TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-    OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
-    
-    void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
-    
-    if (pReturnTypeDescr)
-    {
-        if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-        {
-            pCppReturn = pUnoReturn; // direct way for simple types
-        }
-        else
-        {
-            // complex return via ptr
-            pCppReturn = *(void **)pCppStack
-                = (bridges::cpp_uno::shared::relatesToInterfaceType(
-                       pReturnTypeDescr )
-                   ? alloca( pReturnTypeDescr->nSize )
-                   : pUnoReturn); // direct way
-            pCppStack += sizeof(void *);
-        }
-    }
-    // push this
-    void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI())
-        + aVtableSlot.offset;
-    *(void**)pCppStack = pAdjustedThisPtr;
-    pCppStack += sizeof( void* );
-
-    // stack space
-    OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
-    // args
-    void ** pCppArgs  = (void **)alloca( 3 * sizeof(void *) * nParams );
-    // indizes of values this have to be converted (interface conversion cpp<=>uno)
-    sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
-    // type descriptions for reconversions
-    typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
-    
-    sal_Int32 nTempIndizes   = 0;
-    
-    for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
-    {
-        const typelib_MethodParameter & rParam = pParams[nPos];
-        typelib_TypeDescription * pParamTypeDescr = 0;
-        TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-        
-        if (!rParam.bOut
-            && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
-        {
-            uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
-                                    pThis->getBridge()->getUno2Cpp() );
-            
-            switch (pParamTypeDescr->eTypeClass)
-            {
-            case typelib_TypeClass_HYPER:
-            case typelib_TypeClass_UNSIGNED_HYPER:
-            case typelib_TypeClass_DOUBLE:
-                pCppStack += sizeof(sal_Int32); // extra long
-                break;
-            default:
-                break;
-            }
-            // no longer needed
-            TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-        }
-        else // ptr to complex value | ref
-        {
-            if (! rParam.bIn) // is pure out
-            {
-                // cpp out is constructed mem, uno out is not!
-                uno_constructData(
-                    *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-                    pParamTypeDescr );
-                pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
-                // will be released at reconversion
-                ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-            }
-            // is in/inout
-            else if (bridges::cpp_uno::shared::relatesToInterfaceType(
-                         pParamTypeDescr ))
-            {
-                uno_copyAndConvertData(
-                    *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-                    pUnoArgs[nPos], pParamTypeDescr,
-                    pThis->getBridge()->getUno2Cpp() );
-                
-                pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
-                // will be released at reconversion
-                ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-            }
-            else // direct way
-            {
-                *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
-                // no longer needed
-                TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-            }
-        }
-        pCppStack += sizeof(sal_Int32); // standard parameter length
-    }
-
-    try
-    {
-        OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
-        callVirtualMethod(
-            pAdjustedThisPtr, aVtableSlot.index,
-            pCppReturn, pReturnTypeDescr->eTypeClass,
-            (sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
-        // NO exception occured...
-        *ppUnoExc = 0;
-        
-        // reconvert temporary params
-        for ( ; nTempIndizes--; )
-        {
-            sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-            typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-            
-            if (pParams[nIndex].bIn)
-            {
-                if (pParams[nIndex].bOut) // inout
-                {
-                    uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
-                    uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-                                            pThis->getBridge()->getCpp2Uno() );
-                }
-            }
-            else // pure out
-            {
-                uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-                                        pThis->getBridge()->getCpp2Uno() );
-            }
-            // destroy temp cpp param => cpp: every param was constructed
-            uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-            
-            TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-        }
-        // return value
-        if (pCppReturn && pUnoReturn != pCppReturn)
-        {
-            uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
-                                    pThis->getBridge()->getCpp2Uno() );
-            uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
-        }
-    }
-     catch (...)
-     {
-          // fill uno exception
-        fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
-        
-        // temporary params
-        for ( ; nTempIndizes--; )
-        {
-            sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-            // destroy temp cpp param => cpp: every param was constructed
-            uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
-            TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
-        }
-        // return type
-        if (pReturnTypeDescr)
-            TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-    }
-}
-
-}
-
-namespace bridges { namespace cpp_uno { namespace shared {
-
-void unoInterfaceProxyDispatch(
-    uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
-    void * pReturn, void * pArgs[], uno_Any ** ppException )
-{
-    // is my surrogate
-    bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
-        = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
-    
-    switch (pMemberDescr->eTypeClass)
-    {
-    case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-    {
-        VtableSlot aVtableSlot(
-            getVtableSlot(
-                reinterpret_cast<
-                    typelib_InterfaceAttributeTypeDescription const * >(
-                        pMemberDescr)));
-        if (pReturn)
-        {
-            // dependent dispatch
-            cpp_call(
-                pThis, aVtableSlot,
-                ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
-                0, 0, // no params
-                pReturn, pArgs, ppException );
-        }
-        else
-        {
-            // is SET
-            typelib_MethodParameter aParam;
-            aParam.pTypeRef =
-                ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
-            aParam.bIn		= sal_True;
-            aParam.bOut		= sal_False;
-
-            typelib_TypeDescriptionReference * pReturnTypeRef = 0;
-            OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
-            typelib_typedescriptionreference_new(
-                &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
-            
-            // dependent dispatch
-            aVtableSlot.index += 1; // get, then set method
-            cpp_call(
-                pThis, aVtableSlot,
-                pReturnTypeRef,
-                1, &aParam,
-                pReturn, pArgs, ppException );
-            
-            typelib_typedescriptionreference_release( pReturnTypeRef );
-        }
-        
-        break;
-    }
-    case typelib_TypeClass_INTERFACE_METHOD:
-    {
-        VtableSlot aVtableSlot(
-            getVtableSlot(
-                reinterpret_cast<
-                    typelib_InterfaceMethodTypeDescription const * >(
-                        pMemberDescr)));
-        switch (aVtableSlot.index)
-        {
-            // standard calls
-        case 1: // acquire uno interface
-            (*pUnoI->acquire)( pUnoI );
-            *ppException = 0;
-            break;
-        case 2: // release uno interface
-            (*pUnoI->release)( pUnoI );
-            *ppException = 0;
-            break;
-        case 0: // queryInterface() opt
-        {
-            typelib_TypeDescription * pTD = 0;
-            TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
-            if (pTD)
-            {
-                uno_Interface * pInterface = 0;
-                (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
-                    pThis->pBridge->getUnoEnv(),
-                    (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
-            
-                if (pInterface)
-                {
-                    ::uno_any_construct(
-                        reinterpret_cast< uno_Any * >( pReturn ),
-                        &pInterface, pTD, 0 );
-                    (*pInterface->release)( pInterface );
-                    TYPELIB_DANGER_RELEASE( pTD );
-                    *ppException = 0;
-                    break;
-                }
-                TYPELIB_DANGER_RELEASE( pTD );
-            }
-        } // else perform queryInterface()
-        default:
-            // dependent dispatch
-            cpp_call(
-                pThis, aVtableSlot,
-                ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
-                ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
-                ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
-                pReturn, pArgs, ppException );
-        }
-        break;
-    }
-    default:
-    {
-        ::com::sun::star::uno::RuntimeException aExc(
-            OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
-            ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
-        
-        Type const & rExcType = ::getCppuType( &aExc );
-        // binary identical null reference
-        ::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
-    }
-    }
-}
-
-} } }
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx b/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx
deleted file mode 100644
index 14b4eee..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx
+++ /dev/null
@@ -1,357 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_bridges.hxx"
-
-// This is an implementation of the x86-64 ABI as described in 'System V
-// Application Binary Interface, AMD64 Architecture Processor Supplement'
-// (http://www.x86-64.org/documentation/abi-0.95.pdf)
-//
-// The code in this file is a modification of src/x86/ffi64.c from libffi
-// (http://sources.redhat.com/libffi/) which is under the following license:
-
-/* -----------------------------------------------------------------------
-   ffi.c - Copyright (c) 2002  Bo Thorsen <bo at suse.de>
-   
-   x86-64 Foreign Function Interface 
-
-   Permission is hereby granted, free of charge, to any person obtaining
-   a copy of this software and associated documentation files (the
-   ``Software''), to deal in the Software without restriction, including
-   without limitation the rights to use, copy, modify, merge, publish,
-   distribute, sublicense, and/or sell copies of the Software, and to
-   permit persons to whom the Software is furnished to do so, subject to
-   the following conditions:
-
-   The above copyright notice and this permission notice shall be included
-   in all copies or substantial portions of the Software.
-
-   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-   OTHER DEALINGS IN THE SOFTWARE.
-   ----------------------------------------------------------------------- */
-
-#include <abi.hxx>
-
-#include <rtl/ustring.hxx>
-
-using namespace x86_64;
-
-typedef struct
-{
-    /* Registers for argument passing.  */
-    long gpr[MAX_GPR_REGS];
-    __int128_t sse[MAX_SSE_REGS];
-
-    /* Stack space for arguments.  */
-    char argspace[0];
-} stackLayout;
-
-/* Register class used for passing given 64bit part of the argument.
-   These represent classes as documented by the PS ABI, with the exception
-   of SSESF, SSEDF classes, that are basically SSE class, just gcc will
-   use SF or DFmode move instead of DImode to avoid reformating penalties.
-
-   Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
-   whenever possible (upper half does contain padding).
- */
-enum x86_64_reg_class
-{
-    X86_64_NO_CLASS,
-    X86_64_INTEGER_CLASS,
-    X86_64_INTEGERSI_CLASS,
-    X86_64_SSE_CLASS,
-    X86_64_SSESF_CLASS,
-    X86_64_SSEDF_CLASS,
-    X86_64_SSEUP_CLASS,
-    X86_64_X87_CLASS,
-    X86_64_X87UP_CLASS,
-    X86_64_MEMORY_CLASS
-};
-
-#define MAX_CLASSES 4
-
-#define ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
-
-/* x86-64 register passing implementation.  See x86-64 ABI for details.  Goal
-   of this code is to classify each 8bytes of incoming argument by the register
-   class and assign registers accordingly.  */
-
-/* Return the union class of CLASS1 and CLASS2.
-   See the x86-64 PS ABI for details.  */
-
-static enum x86_64_reg_class
-merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
-{
-    /* Rule #1: If both classes are equal, this is the resulting class.  */
-    if (class1 == class2)
-        return class1;
-
-    /* Rule #2: If one of the classes is NO_CLASS, the resulting class is
-       the other class.  */
-    if (class1 == X86_64_NO_CLASS)
-        return class2;
-    if (class2 == X86_64_NO_CLASS)
-        return class1;
-
-    /* Rule #3: If one of the classes is MEMORY, the result is MEMORY.  */
-    if (class1 == X86_64_MEMORY_CLASS || class2 == X86_64_MEMORY_CLASS)
-        return X86_64_MEMORY_CLASS;
-
-    /* Rule #4: If one of the classes is INTEGER, the result is INTEGER.  */
-    if ((class1 == X86_64_INTEGERSI_CLASS && class2 == X86_64_SSESF_CLASS)
-            || (class2 == X86_64_INTEGERSI_CLASS && class1 == X86_64_SSESF_CLASS))
-        return X86_64_INTEGERSI_CLASS;
-    if (class1 == X86_64_INTEGER_CLASS || class1 == X86_64_INTEGERSI_CLASS
-            || class2 == X86_64_INTEGER_CLASS || class2 == X86_64_INTEGERSI_CLASS)
-        return X86_64_INTEGER_CLASS;
-
-    /* Rule #5: If one of the classes is X87 or X87UP class, MEMORY is used.  */
-    if (class1 == X86_64_X87_CLASS || class1 == X86_64_X87UP_CLASS
-            || class2 == X86_64_X87_CLASS || class2 == X86_64_X87UP_CLASS)
-        return X86_64_MEMORY_CLASS;
-
-    /* Rule #6: Otherwise class SSE is used.  */
-    return X86_64_SSE_CLASS;
-}
-
-/* Classify the argument of type TYPE and mode MODE.
-   CLASSES will be filled by the register class used to pass each word
-   of the operand.  The number of words is returned.  In case the parameter
-   should be passed in memory, 0 is returned. As a special case for zero
-   sized containers, classes[0] will be NO_CLASS and 1 is returned.
-
-   See the x86-64 PS ABI for details.
-*/
-static int
-classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_class classes[], int &rByteOffset )
-{
-    /* First, align to the right place.  */
-    rByteOffset = ALIGN( rByteOffset, pTypeRef->pType->nAlignment );
-
-    switch ( pTypeRef->eTypeClass )
-    {
-        case typelib_TypeClass_VOID:
-            classes[0] = X86_64_NO_CLASS;
-            return 1;
-        case typelib_TypeClass_CHAR:
-        case typelib_TypeClass_BOOLEAN:
-        case typelib_TypeClass_BYTE:
-        case typelib_TypeClass_SHORT:
-        case typelib_TypeClass_UNSIGNED_SHORT:
-        case typelib_TypeClass_LONG:
-        case typelib_TypeClass_UNSIGNED_LONG:
-        case typelib_TypeClass_HYPER:
-        case typelib_TypeClass_UNSIGNED_HYPER:
-        case typelib_TypeClass_ENUM:
-            if ( ( rByteOffset % 8 + pTypeRef->pType->nSize ) <= 4 )
-                classes[0] = X86_64_INTEGERSI_CLASS;
-            else
-                classes[0] = X86_64_INTEGER_CLASS;
-            return 1;
-        case typelib_TypeClass_FLOAT:
-            if ( ( rByteOffset % 8 ) == 0 )
-                classes[0] = X86_64_SSESF_CLASS;
-            else
-                classes[0] = X86_64_SSE_CLASS;
-            return 1;
-        case typelib_TypeClass_DOUBLE:
-            classes[0] = X86_64_SSEDF_CLASS;
-            return 1;
-        /*case LONGDOUBLE:
-            classes[0] = X86_64_X87_CLASS;
-            classes[1] = X86_64_X87UP_CLASS;
-            return 2;*/
-        case typelib_TypeClass_STRING:
-        case typelib_TypeClass_TYPE:
-        case typelib_TypeClass_ANY:
-        case typelib_TypeClass_TYPEDEF:
-        case typelib_TypeClass_UNION:
-        case typelib_TypeClass_SEQUENCE:
-        case typelib_TypeClass_ARRAY:
-        case typelib_TypeClass_INTERFACE:
-            return 0;
-        case typelib_TypeClass_STRUCT:
-        case typelib_TypeClass_EXCEPTION:
-            {
-                typelib_TypeDescription * pTypeDescr = 0;
-                TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef );
-
-                const int UNITS_PER_WORD = 8;
-                int words = ( pTypeDescr->nSize + UNITS_PER_WORD - 1 ) / UNITS_PER_WORD;
-                enum x86_64_reg_class subclasses[MAX_CLASSES];
-
-                /* If the struct is larger than 16 bytes, pass it on the stack.  */
-                if ( pTypeDescr->nSize > 16 )
-                {
-                    TYPELIB_DANGER_RELEASE( pTypeDescr );
-                    return 0;
-                }
-
-                for ( int i = 0; i < words; i++ )
-                    classes[i] = X86_64_NO_CLASS;
-
-                const typelib_CompoundTypeDescription *pStruct = reinterpret_cast<const typelib_CompoundTypeDescription*>( pTypeDescr );
-
-                /* Merge the fields of structure.  */
-                for ( sal_Int32 nMember = 0; nMember < pStruct->nMembers; ++nMember )
-                {
-                    typelib_TypeDescriptionReference *pTypeInStruct = pStruct->ppTypeRefs[ nMember ];
-
-                    int num = classify_argument( pTypeInStruct, subclasses, rByteOffset );
-
-                    if ( num == 0 )
-                    {
-                        TYPELIB_DANGER_RELEASE( pTypeDescr );
-                        return 0;
-                    }
-
-                    for ( int i = 0; i < num; i++ )
-                    {
-                        int pos = rByteOffset / 8;
-                        classes[i + pos] = merge_classes( subclasses[i], classes[i + pos] );
-                    }
-
-                    if ( pTypeInStruct->eTypeClass != typelib_TypeClass_STRUCT )
-                        rByteOffset = pStruct->pMemberOffsets[ nMember ];
-                }
-
-                TYPELIB_DANGER_RELEASE( pTypeDescr );
-
-                /* Final merger cleanup.  */
-                for ( int i = 0; i < words; i++ )
-                {
-                    /* If one class is MEMORY, everything should be passed in
-                       memory.  */
-                    if ( classes[i] == X86_64_MEMORY_CLASS )
-                        return 0;
-
-                    /* The X86_64_SSEUP_CLASS should be always preceded by
-                       X86_64_SSE_CLASS.  */
-                    if ( classes[i] == X86_64_SSEUP_CLASS
-                            && ( i == 0 || classes[i - 1] != X86_64_SSE_CLASS ) )
-                        classes[i] = X86_64_SSE_CLASS;
-
-                    /*  X86_64_X87UP_CLASS should be preceded by X86_64_X87_CLASS.  */
-                    if ( classes[i] == X86_64_X87UP_CLASS
-                            && ( i == 0 || classes[i - 1] != X86_64_X87_CLASS ) )
-                        classes[i] = X86_64_SSE_CLASS;
-                }
-                return words;
-            }
-
-        default:
-#if OSL_DEBUG_LEVEL > 1
-            OSL_TRACE( "Unhandled case: pType->eTypeClass == %d\n", pTypeRef->eTypeClass );
-#endif
-            OSL_ASSERT(0);
-    }
-    return 0; /* Never reached.  */
-}
-
-/* Examine the argument and return set number of register required in each
-   class.  Return 0 iff parameter should be passed in memory.  */
-bool x86_64::examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE )
-{
-    enum x86_64_reg_class classes[MAX_CLASSES];
-    int offset = 0;
-    int n;
-
-    n = classify_argument( pTypeRef, classes, offset );
-
-    if ( n == 0 )
-        return false;
-
-    nUsedGPR = 0;
-    nUsedSSE = 0;
-    for ( n--; n >= 0; n-- )
-        switch ( classes[n] )
-        {
-            case X86_64_INTEGER_CLASS:
-            case X86_64_INTEGERSI_CLASS:
-                nUsedGPR++;
-                break;
-            case X86_64_SSE_CLASS:
-            case X86_64_SSESF_CLASS:
-            case X86_64_SSEDF_CLASS:
-                nUsedSSE++;
-                break;
-            case X86_64_NO_CLASS:
-            case X86_64_SSEUP_CLASS:
-                break;
-            case X86_64_X87_CLASS:
-            case X86_64_X87UP_CLASS:
-                if ( !bInReturn )
-                    return false;
-                break;
-            default:
-#if OSL_DEBUG_LEVEL > 1
-            OSL_TRACE( "Unhandled case: classes[n] == %d\n", classes[n] );
-#endif
-            OSL_ASSERT(0);
-        }
-    return true;
-}
-
-bool x86_64::return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef )
-{
-    int g, s;
-
-    return examine_argument( pTypeRef, true, g, s ) == 0;
-}
-
-void x86_64::fill_struct( typelib_TypeDescriptionReference *pTypeRef, void * const *pGPR, void * const *pSSE, void *pStruct )
-{
-    enum x86_64_reg_class classes[MAX_CLASSES];
-    int offset = 0;
-    int n;
-
-    n = classify_argument( pTypeRef, classes, offset );
-
-    sal_uInt64 *pStructAlign = reinterpret_cast<sal_uInt64 *>( pStruct );
-    for ( n--; n >= 0; n-- )
-        switch ( classes[n] )
-        {
-            case X86_64_INTEGER_CLASS:
-            case X86_64_INTEGERSI_CLASS:
-                *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pGPR++ );
-                break;
-            case X86_64_SSE_CLASS:
-            case X86_64_SSESF_CLASS:
-            case X86_64_SSEDF_CLASS:
-                *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pSSE++ );
-                break;
-        }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.hxx b/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.hxx
deleted file mode 100644
index 7c15276..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
-#define _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
-
-// This is an implementation of the x86-64 ABI as described in 'System V
-// Application Binary Interface, AMD64 Architecture Processor Supplement'
-// (http://www.x86-64.org/documentation/abi-0.95.pdf)
-
-#include <typelib/typedescription.hxx>
-
-namespace x86_64
-{
-
-/* 6 general purpose registers are used for parameter passing */
-const sal_uInt32 MAX_GPR_REGS = 6;
-
-/* 8 SSE registers are used for parameter passing */
-const sal_uInt32 MAX_SSE_REGS = 8;
-
-/* Count number of required registers.
-
- Examine the argument and return set number of register required in each
- class.
- 
- Return false iff parameter should be passed in memory.
-*/
-bool examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE );
-
-/** Does function that returns this type use a hidden parameter, or registers?
-
- The value can be returned either in a hidden 1st parameter (which is a
- pointer to a structure allocated by the caller), or in registers (rax, rdx
- for the integers, xmm0, xmm1 for the floating point numbers).
-*/
-bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef );
-
-void fill_struct( typelib_TypeDescriptionReference *pTypeRef, void * const *pGPR, void * const *pSSE, void *pStruct );
-
-} // namespace x86_64
-
-#endif // _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/call.s b/bridges/source/cpp_uno/gcc3_freebsd_x86-64/call.s
deleted file mode 100644
index 7362307..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/call.s
+++ /dev/null
@@ -1,93 +0,0 @@
-	.text
-	.align 2
-.globl privateSnippetExecutor
-	.type	privateSnippetExecutor, @function
-privateSnippetExecutor:
-.LFB3:
-	pushq	%rbp
-.LCFI0:
-	movq	%rsp, %rbp
-.LCFI1:
-	subq	$160, %rsp
-.LCFI2:
-	movq	%r10, -152(%rbp)		# Save (nVtableOffset << 32) + nFunctionIndex
-
-	movq	%rdi, -112(%rbp)		# Save GP registers
-	movq	%rsi, -104(%rbp)
-	movq	%rdx, -96(%rbp)
-	movq	%rcx, -88(%rbp)
-	movq	%r8 , -80(%rbp)
-	movq	%r9 , -72(%rbp)
-	
-	movsd	%xmm0, -64(%rbp)		# Save FP registers
-	movsd	%xmm1, -56(%rbp)
-	movsd	%xmm2, -48(%rbp)
-	movsd	%xmm3, -40(%rbp)
-	movsd	%xmm4, -32(%rbp)
-	movsd	%xmm5, -24(%rbp)
-	movsd	%xmm6, -16(%rbp)
-	movsd	%xmm7, -8(%rbp)
-
-	leaq	-144(%rbp), %r9			# 6th param: sal_uInt64 * pRegisterReturn
-	leaq	16(%rbp), %r8			# 5rd param: void ** ovrflw
-	leaq	-64(%rbp), %rcx			# 4th param: void ** fpreg
-	leaq	-112(%rbp), %rdx		# 3rd param: void ** gpreg
-	movl	-148(%rbp), %esi		# 2nd param: sal_int32 nVtableOffset
-	movl	-152(%rbp), %edi		# 1st param: sal_int32 nFunctionIndex
-	
-	call	cpp_vtable_call
-
-	cmp	$10, %rax					# typelib_TypeClass_FLOAT
-	je	.Lfloat
-	cmp	$11, %rax					# typelib_TypeClass_DOUBLE
-	je	.Lfloat
-
-	movq	-144(%rbp), %rax		# Return value (int case)
-	jmp	.Lfinish
-.Lfloat:
-	movlpd	-144(%rbp), %xmm0		# Return value (float/double case)
-
-.Lfinish:
-	leave
-	ret
-.LFE3:
-	.size	privateSnippetExecutor, .-privateSnippetExecutor
-	.section	.eh_frame,"a", at progbits
-.Lframe1:
-	.long	.LECIE1-.LSCIE1
-.LSCIE1:
-	.long	0x0
-	.byte	0x1
-	.string	"zR"
-	.uleb128 0x1
-	.sleb128 -8
-	.byte	0x10
-	.uleb128 0x1
-	.byte	0x1b
-	.byte	0xc
-	.uleb128 0x7
-	.uleb128 0x8
-	.byte	0x90
-	.uleb128 0x1
-	.align 8
-.LECIE1:
-.LSFDE1:
-	.long	.LEFDE1-.LASFDE1
-.LASFDE1:
-	.long	.LASFDE1-.Lframe1
-	.long	.LFB3-.
-	.long	.LFE3-.LFB3
-	.uleb128 0x0
-	.byte	0x4
-	.long	.LCFI0-.LFB3
-	.byte	0xe
-	.uleb128 0x10
-	.byte	0x86
-	.uleb128 0x2
-	.byte	0x4
-	.long	.LCFI1-.LCFI0
-	.byte	0xd
-	.uleb128 0x6
-	.align 8
-.LEFDE1:
-	.section	.note.GNU-stack,"", at progbits
diff --git a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
deleted file mode 100644
index 3ef3397..0000000
--- a/bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
+++ /dev/null
@@ -1,544 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_bridges.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <hash_map>
-
-#include <rtl/alloc.h>
-#include <osl/mutex.hxx>
-
-#include <com/sun/star/uno/genfunc.hxx>
-#include "com/sun/star/uno/RuntimeException.hpp"
-#include <uno/data.h>
-#include <typelib/typedescription.hxx>
-
-#include "bridges/cpp_uno/shared/bridge.hxx"
-#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
-#include "bridges/cpp_uno/shared/types.hxx"
-#include "bridges/cpp_uno/shared/vtablefactory.hxx"
-
-#include "abi.hxx"
-#include "share.hxx"
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-
-//==================================================================================================
-
-// Perform the UNO call
-//
-// We must convert the paramaters stored in gpreg, fpreg and ovrflw to UNO
-// arguments and call pThis->getUnoI()->pDispatcher.
-//
-// gpreg:  [ret *], this, [gpr params]
-// fpreg:  [fpr params]
-// ovrflw: [gpr or fpr params (properly aligned)]
-//
-// [ret *] is present when we are returning a structure bigger than 16 bytes
-// Simple types are returned in rax, rdx (int), or xmm0, xmm1 (fp).
-// Similarly structures <= 16 bytes are in rax, rdx, xmm0, xmm1 as necessary.
-static typelib_TypeClass cpp2uno_call(
-    bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
-    const typelib_TypeDescription * pMemberTypeDescr,
-    typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
-    sal_Int32 nParams, typelib_MethodParameter * pParams,
-    void ** gpreg, void ** fpreg, void ** ovrflw,
-    sal_uInt64 * pRegisterReturn /* space for register return */ )
-{
-    int nr_gpr = 0; //number of gpr registers used 
-    int nr_fpr = 0; //number of fpr regsiters used
-       
-    // return
-    typelib_TypeDescription * pReturnTypeDescr = 0;
-    if (pReturnTypeRef)
-        TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-    
-    void * pUnoReturn = 0;
-    void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
-    
-    if ( pReturnTypeDescr )
-    {
-        if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
-        {
-            pCppReturn = *gpreg++;
-            nr_gpr++;
-            
-            pUnoReturn = ( bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-                           ? alloca( pReturnTypeDescr->nSize )
-                           : pCppReturn ); // direct way
-        }
-        else
-            pUnoReturn = pRegisterReturn; // direct way for simple types
-    }
-
-    // pop this
-    gpreg++; 

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list