[Libreoffice-commits] core.git: bridges/Library_cc50_solaris_intel.mk bridges/Library_cc50_solaris_sparc.mk bridges/Library_cc5_solaris_sparc64.mk bridges/Library_cpp_uno.mk bridges/Library_gcc3_aix_powerpc.mk bridges/Library_gcc3_ios_arm.mk bridges/Library_gcc3_linux_alpha.mk bridges/Library_gcc3_linux_arm.mk bridges/Library_gcc3_linux_hppa.mk bridges/Library_gcc3_linux_ia64.mk bridges/Library_gcc3_linux_intel.mk bridges/Library_gcc3_linux_m68k.mk bridges/Library_gcc3_linux_mips.mk bridges/Library_gcc3_linux_powerpc64.mk bridges/Library_gcc3_linux_powerpc.mk bridges/Library_gcc3_linux_s390.mk bridges/Library_gcc3_linux_s390x.mk bridges/Library_gcc3_linux_sparc.mk bridges/Library_gcc3_linux_x86-64.mk bridges/Library_gcc3_macosx_intel.mk bridges/Library_gcc3_macosx_powerpc.mk bridges/Library_gcc3_macosx_x86-64.mk bridges/Library_gcc3_solaris_intel.mk bridges/Library_gcc3_solaris_sparc.mk bridges/Library_mingw_intel.mk bridges/Library_msvc_win32_intel.mk bridges/Library_msvc_win32_x86-64.mk bridges/Module_bridges.mk bridges/source

Peter Foley pefoley2 at verizon.net
Mon Mar 18 00:53:41 PDT 2013


 bridges/Library_cc50_solaris_intel.mk                             |   69 -
 bridges/Library_cc50_solaris_sparc.mk                             |   63 -
 bridges/Library_cc5_solaris_sparc64.mk                            |   66 -
 bridges/Library_cpp_uno.mk                                        |  216 +++
 bridges/Library_gcc3_aix_powerpc.mk                               |   67 -
 bridges/Library_gcc3_ios_arm.mk                                   |   85 -
 bridges/Library_gcc3_linux_alpha.mk                               |   67 -
 bridges/Library_gcc3_linux_arm.mk                                 |   75 -
 bridges/Library_gcc3_linux_hppa.mk                                |   71 -
 bridges/Library_gcc3_linux_ia64.mk                                |   71 -
 bridges/Library_gcc3_linux_intel.mk                               |   77 -
 bridges/Library_gcc3_linux_m68k.mk                                |   67 -
 bridges/Library_gcc3_linux_mips.mk                                |   69 -
 bridges/Library_gcc3_linux_powerpc.mk                             |   67 -
 bridges/Library_gcc3_linux_powerpc64.mk                           |   67 -
 bridges/Library_gcc3_linux_s390.mk                                |   67 -
 bridges/Library_gcc3_linux_s390x.mk                               |   67 -
 bridges/Library_gcc3_linux_sparc.mk                               |   71 -
 bridges/Library_gcc3_linux_x86-64.mk                              |   78 -
 bridges/Library_gcc3_macosx_intel.mk                              |   67 -
 bridges/Library_gcc3_macosx_powerpc.mk                            |   63 -
 bridges/Library_gcc3_macosx_x86-64.mk                             |   71 -
 bridges/Library_gcc3_solaris_intel.mk                             |   67 -
 bridges/Library_gcc3_solaris_sparc.mk                             |   67 -
 bridges/Library_mingw_intel.mk                                    |   78 -
 bridges/Library_msvc_win32_intel.mk                               |   60 
 bridges/Library_msvc_win32_x86-64.mk                              |   64 -
 bridges/Module_bridges.mk                                         |   87 -
 bridges/source/cpp_uno/cc50_solaris_intel/call.s                  |  266 ----
 bridges/source/cpp_uno/cc50_solaris_intel/cc50_solaris_intel.hxx  |   66 -
 bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx             |  519 --------
 bridges/source/cpp_uno/cc50_solaris_intel/except.cxx              |  438 -------
 bridges/source/cpp_uno/cc50_solaris_intel/hash.cxx                |  253 ----
 bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx             |  409 ------
 bridges/source/cpp_uno/cc50_solaris_sparc/call.s                  |  217 ---
 bridges/source/cpp_uno/cc50_solaris_sparc/cc50_solaris_sparc.hxx  |   80 -
 bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx             |  506 --------
 bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx              |  434 -------
 bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx           |   42 
 bridges/source/cpp_uno/cc50_solaris_sparc/hash.cxx                |  254 ----
 bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx             |  387 ------
 bridges/source/cpp_uno/cc5_solaris_sparc64/callvirtualmethod.hxx  |   30 
 bridges/source/cpp_uno/cc5_solaris_sparc64/callvirtualmethod.s    |   50 
 bridges/source/cpp_uno/cc5_solaris_sparc64/cpp2uno.cxx            |  602 ----------
 bridges/source/cpp_uno/cc5_solaris_sparc64/exceptions.cxx         |  448 -------
 bridges/source/cpp_uno/cc5_solaris_sparc64/exceptions.hxx         |   66 -
 bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx          |   42 
 bridges/source/cpp_uno/cc5_solaris_sparc64/fp.hxx                 |  107 -
 bridges/source/cpp_uno/cc5_solaris_sparc64/fp.s                   |  593 ---------
 bridges/source/cpp_uno/cc5_solaris_sparc64/isdirectreturntype.cxx |   74 -
 bridges/source/cpp_uno/cc5_solaris_sparc64/isdirectreturntype.hxx |   35 
 bridges/source/cpp_uno/cc5_solaris_sparc64/uno2cpp.cxx            |  500 --------
 bridges/source/cpp_uno/cc5_solaris_sparc64/vtableslotcall.hxx     |   29 
 bridges/source/cpp_uno/cc5_solaris_sparc64/vtableslotcall.s       |   42 
 54 files changed, 224 insertions(+), 8369 deletions(-)

New commits:
commit a1fbebff263f65bc25c0c955da2e68e90cd2bb03
Author: Peter Foley <pefoley2 at verizon.net>
Date:   Thu Mar 14 21:21:28 2013 -0400

    Cleanup bridges module
    
    Reduce excessive copy-pasting
    Remove bridges for C50 and C52 compilers which aren't in configure any
    more
    Prevent LTO from being used in the bridges module because it causes
    crashes
    
    Change-Id: I7ff85c2e8d6ff89c5acd48aea415e0960b3ef812
    Reviewed-on: https://gerrit.libreoffice.org/2765
    Reviewed-by: Tor Lillqvist <tml at iki.fi>
    Tested-by: Tor Lillqvist <tml at iki.fi>

diff --git a/bridges/Library_cc50_solaris_intel.mk b/bridges/Library_cc50_solaris_intel.mk
deleted file mode 100644
index 7e3565d..0000000
--- a/bridges/Library_cc50_solaris_intel.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge cc50_solaris_intel: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := cc50_solaris_intel
-
-$(eval $(call gb_Library_Library,sunpro5_uno))
-
-$(eval $(call gb_Library_use_external,sunpro5_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,sunpro5_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,sunpro5_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,sunpro5_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,sunpro5_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-	-O5 \
-	-xO5 \
-))
-
-$(eval $(call gb_Library_use_libraries,sunpro5_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,sunpro5_uno,\
-	bridges/source/cpp_uno/cc50_solaris_intel/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,sunpro5_uno,\
-	bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno \
-	bridges/source/cpp_uno/cc50_solaris_intel/except \
-	bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,sunpro5_uno,\
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_cc50_solaris_sparc.mk b/bridges/Library_cc50_solaris_sparc.mk
deleted file mode 100644
index 2e6ca9c..0000000
--- a/bridges/Library_cc50_solaris_sparc.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge cc50_solaris_sparc: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := cc50_solaris_sparc
-
-$(eval $(call gb_Library_Library,sunpro5_uno))
-
-$(eval $(call gb_Library_use_external,sunpro5_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,sunpro5_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,sunpro5_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,sunpro5_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,sunpro5_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_use_libraries,sunpro5_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,sunpro5_uno,\
-	bridges/source/cpp_uno/cc50_solaris_sparc/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,sunpro5_uno,\
-	bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno \
-	bridges/source/cpp_uno/cc50_solaris_sparc/except \
-	bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_cc5_solaris_sparc64.mk b/bridges/Library_cc5_solaris_sparc64.mk
deleted file mode 100644
index 2c12767..0000000
--- a/bridges/Library_cc5_solaris_sparc64.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge cc5_solaris_sparc64: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := cc5_solaris_sparc64
-
-$(eval $(call gb_Library_Library,sunpro5_uno))
-
-$(eval $(call gb_Library_use_external,sunpro5_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,sunpro5_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,sunpro5_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,sunpro5_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,sunpro5_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_use_libraries,sunpro5_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,sunpro5_uno,\
-	bridges/source/cpp_uno/cc5_solaris_sparc64/callvirtualmethod \
-	bridges/source/cpp_uno/cc5_solaris_sparc64/fp \
-	bridges/source/cpp_uno/cc5_solaris_sparc64/vtableslotcall \
-))
-
-$(eval $(call gb_Library_add_exception_objects,sunpro5_uno,\
-	bridges/source/cpp_uno/cc5_solaris_sparc64/cpp2uno \
-	bridges/source/cpp_uno/cc5_solaris_sparc64/exceptions \
-	bridges/source/cpp_uno/cc5_solaris_sparc64/isdirectreturntype \
-	bridges/source/cpp_uno/cc5_solaris_sparc64/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk
new file mode 100644
index 0000000..577e015
--- /dev/null
+++ b/bridges/Library_cpp_uno.mk
@@ -0,0 +1,216 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+ifeq ($(COM),GCC)
+bridge_lib_name := gcc3_uno
+else ifeq ($(COM),MSC)
+ifeq ($(CPU),I)
+bridge_lib_name := msci_uno
+else ifeq ($(CPU),X)
+bridge_lib_name := mscx_uno
+endif # COM=WNT
+endif
+
+$(eval $(call gb_Library_Library,$(bridge_lib_name)))
+
+ifeq ($(OS)$(CPU),AIXP)
+bridges_SELECTED_BRIDGE := gcc3_aix_powerpc
+bridge_exception_objects := except
+bridge_cxx_objects := cpp2uno uno2cpp
+else ifeq ($(CPU),R)
+ifeq ($(OS),IOS)
+bridges_SELECTED_BRIDGE := gcc3_ios_arm
+bridge_asm_objects := helper
+bridge_exception_objects := cpp2uno cpp2uno-arm cpp2uno-i386 except uno2cpp uno2cpp-arm uno2cpp-i386
+$(eval $(call gb_Library_use_custom_headers,gcc3_uno,\
+	bridges/source/cpp_uno/gcc3_ios_arm \
+))
+else ifneq ($(filter LINUX ANDROID,$(OS)),)
+bridges_SELECTED_BRIDGE := gcc3_linux_arm
+bridge_noopt_objects := cpp2uno except uno2cpp
+# HACK
+$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,gcc3_uno)) : \
+	$(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
+$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,gcc3_uno)) : \
+	EXTRAOBJECTLISTS += $(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
+endif # CPU=R
+else ifeq ($(OS)$(CPU),LINUXL)
+bridges_SELECTED_BRIDGE := gcc3_linux_alpha
+bridge_exception_objects := cpp2uno except uno2cpp
+else ifeq ($(OS)$(CPU),LINUXH)
+bridges_SELECTED_BRIDGE := gcc3_linux_hppa
+bridge_asm_objects := call
+bridge_noopt_objects := cpp2uno except uno2cpp
+else ifeq ($(OS)$(CPU),LINUXA)
+bridges_SELECTED_BRIDGE := gcc3_linux_ia64
+bridge_asm_objects := call
+bridge_exception_objects := except
+bridge_noopt_objects := cpp2uno uno2cpp
+else ifeq ($(CPU),I)
+ifneq ($(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
+bridges_SELECTED_BRIDGE := gcc3_linux_intel
+bridge_asm_objects := call
+bridge_exception_objects := callvirtualmethod cpp2uno except uno2cpp
+else ifeq ($(OS),MACOSX)
+bridges_SELECTED_BRIDGE := gcc3_macosx_intel
+bridge_asm_objects := call
+bridge_exception_objects := cpp2uno except uno2cpp
+else ifeq ($(COM),MSC)
+bridges_SELECTED_BRIDGE := msvc_win32_intel
+bridge_exception_objects := cpp2uno dllinit uno2cpp
+bridge_noopt_objects := except
+endif # CPU=I
+else ifeq ($(OS)$(CPU),LINUX6)
+bridges_SELECTED_BRIDGE := gcc3_linux_m68k
+bridge_noopt_objects := cpp2uno except uno2cpp
+else ifeq ($(CPU),M)
+ifneq ($(filter ANDROID LINUX,$(OS)),)
+bridges_SELECTED_BRIDGE := gcc3_linux_mips
+bridge_noopt_objects := cpp2uno uno2cpp
+bridge_exception_objects := except
+endif # CPU=M
+else ifeq ($(OS)$(CPUNAME),LINUXPOWERPC)
+bridges_SELECTED_BRIDGE := gcc3_linux_powerpc
+bridge_noopt_objects := uno2cpp
+bridge_exception_objects := cpp2uno except
+else ifeq ($(OS)$(CPUNAME),LINUXPOWERPC64)
+bridges_SELECTED_BRIDGE := gcc3_linux_powerpc64
+bridge_noopt_objects := cpp2uno uno2cpp
+bridge_exception_objects := except
+else ifeq ($(OS)$(CPUNAME),LINUXS390)
+bridges_SELECTED_BRIDGE := gcc3_linux_s390
+bridge_exception_objects := cpp2uno except uno2cpp
+else ifeq ($(OS)$(CPUNAME),LINUXS390X)
+bridges_SELECTED_BRIDGE := gcc3_linux_s390x
+bridge_exception_objects := cpp2uno except uno2cpp
+else ifeq ($(OS)$(CPU),LINUXS)
+bridges_SELECTED_BRIDGE := gcc3_linux_sparc
+bridge_asm_objects := call
+bridge_noopt_objects := except
+bridge_exception_objects := cpp2uno uno2cpp
+else ifeq ($(CPU),X)
+ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
+bridges_SELECTED_BRIDGE := gcc3_linux_x86-64
+bridge_asm_objects := call
+bridge_exception_objects := abi callvirtualmethod cpp2uno except uno2cpp
+else ifeq ($(OS),MACOSX)
+bridges_SELECTED_BRIDGE := gcc3_macosx_x86-64
+bridge_exception_objects := abi call callvirtualmethod cpp2uno except uno2cpp
+else ifeq ($(COM),MSC)
+bridges_SELECTED_BRIDGE := msvc_win32_x86-64
+bridge_exception_objects := cpp2uno dllinit uno2cpp
+bridge_noopt_objects := except
+bridge_asm_objects := call
+endif # CPU=X
+else ifeq ($(OS)$(CPU),MACOSXP)
+bridges_SELECTED_BRIDGE := gcc3_macosx_powerpc
+bridge_noopt_objects := uno2cpp
+bridge_exception_objects := cpp2uno except
+else ifeq ($(OS)$(CPU),SOLARISI)
+bridges_SELECTED_BRIDGE := gcc3_solaris_intel
+bridge_exception_objects := cpp2uno except uno2cpp
+else ifeq ($(OS)$(CPU),SOLARISS)
+bridges_SELECTED_BRIDGE := gcc3_solaris_sparc
+bridge_noopt_objects := cpp2uno uno2cpp
+bridge_exception_objects := except
+else ifeq ($(OS)$(COM),WNTGCC)
+bridges_SELECTED_BRIDGE := mingw_intel
+bridge_noopt_objects := uno2cpp
+bridge_exception_objects := callvirtualmethod cpp2uno dllinit except smallstruct
+endif
+
+$(eval $(call gb_Library_use_external,$(bridge_lib_name),boost_headers))
+
+$(eval $(call gb_Library_use_internal_comprehensive_api,$(bridge_lib_name),\
+	udkapi \
+))
+
+$(eval $(call gb_Library_set_include,$(bridge_lib_name),\
+	-I$(SRCDIR)/bridges/inc \
+	$$(INCLUDE) \
+))
+
+ifeq ($(HAVE_POSIX_FALLOCATE),YES)
+$(eval $(call gb_Library_add_defs,$(bridge_lib_name),\
+	-DHAVE_POSIX_FALLOCATE \
+))
+endif
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_defs,$(bridge_lib_name),\
+	$(if $(filter GCC,$(COM)),\
+	$(if $(filter sjlj,$(EXCEPTIONS)),\
+		-DBROKEN_ALLOCA \
+	), \
+	$(if $(cppu_no_leak)$(bndchk),,\
+		-DLEAK_STATIC_DATA \
+	)) \
+))
+endif
+
+# In case someone enabled the non-standard -fomit-frame-pointer which does not
+# work with the .cxx sources of this library.
+# LTO causes crashes when enabled for this library
+# In case the compiler supports AVX this code segfaults so specifically turn
+# it off.
+ifeq ($(COM),GCC)
+$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
+	-fno-omit-frame-pointer \
+	-fno-strict-aliasing \
+	$(if $(filter TRUE,$(ENABLE_LTO)),-fno-lto) \
+	$(if $(filter I,$(OS)),\
+		$(if $(filter TRUE,$(HAVE_GCC_AVX)),\
+			-mno-avx)) \
+))
+
+ifneq ($(OS),ANDROID)
+$(eval $(call gb_Library_add_libs,gcc3_uno,\
+	-ldl \
+))
+endif
+endif
+
+$(eval $(call gb_Library_use_libraries,$(bridge_lib_name),\
+	cppu \
+	sal \
+))
+
+$(foreach obj,$(bridge_exception_objects),\
+	$(eval $(call gb_Library_add_exception_objects,$(bridge_lib_name),\
+	bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj))) \
+)
+
+$(foreach obj,$(bridge_noopt_objects),\
+	$(eval $(call gb_Library_add_cxxobjects,$(bridge_lib_name),\
+	bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj) \
+	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS))) \
+)
+$(foreach obj,$(bridge_cxx_objects),\
+	$(eval $(call gb_Library_add_cxxobjects,$(bridge_lib_name),\
+	bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj))) \
+)
+$(foreach obj,$(bridge_asm_objects),\
+$(eval $(call gb_Library_add_asmobjects,$(bridge_lib_name),\
+	bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/$(obj))) \
+)
+
+$(eval $(call gb_Library_add_exception_objects,$(bridge_lib_name),\
+	bridges/source/cpp_uno/shared/bridge \
+	bridges/source/cpp_uno/shared/component \
+	bridges/source/cpp_uno/shared/types \
+	bridges/source/cpp_uno/shared/unointerfaceproxy \
+	bridges/source/cpp_uno/shared/vtablefactory \
+	bridges/source/cpp_uno/shared/vtables \
+))
+
+$(eval $(call gb_Library_add_cxxobjects,$(bridge_lib_name),\
+	bridges/source/cpp_uno/shared/cppinterfaceproxy \
+	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_aix_powerpc.mk b/bridges/Library_gcc3_aix_powerpc.mk
deleted file mode 100644
index e27df57..0000000
--- a/bridges/Library_gcc3_aix_powerpc.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_aix_powerpc: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_aix_powerpc
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_aix_powerpc/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_aix_powerpc/cpp2uno \
-	bridges/source/cpp_uno/gcc3_aix_powerpc/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_ios_arm.mk b/bridges/Library_gcc3_ios_arm.mk
deleted file mode 100644
index 314a589..0000000
--- a/bridges/Library_gcc3_ios_arm.mk
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_ios_arm: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_ios_arm
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_custom_headers,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_ios_arm \
-))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_ios_arm/helper \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno \
-	bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm \
-	bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-i386 \
-	bridges/source/cpp_uno/gcc3_ios_arm/except \
-	bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp \
-	bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-arm \
-	bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-i386 \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-ifeq ($(COM),GCC)
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-else
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_alpha.mk b/bridges/Library_gcc3_linux_alpha.mk
deleted file mode 100644
index 35e19648..0000000
--- a/bridges/Library_gcc3_linux_alpha.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_alpha: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_alpha
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_alpha/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_alpha/except \
-	bridges/source/cpp_uno/gcc3_linux_alpha/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_arm.mk b/bridges/Library_gcc3_linux_arm.mk
deleted file mode 100644
index 95c85d2..0000000
--- a/bridges/Library_gcc3_linux_arm.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_arm: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_arm
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-ifneq ($(OS),ANDROID)
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-endif
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_arm/except \
-	bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# HACK
-$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,gcc3_uno)) : \
-	$(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
-$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,gcc3_uno)) : \
-	EXTRAOBJECTLISTS += $(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_hppa.mk b/bridges/Library_gcc3_linux_hppa.mk
deleted file mode 100644
index bb2e90d..0000000
--- a/bridges/Library_gcc3_linux_hppa.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_hppa: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_hppa
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_hppa/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_hppa/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_hppa/except \
-	bridges/source/cpp_uno/gcc3_linux_hppa/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_ia64.mk b/bridges/Library_gcc3_linux_ia64.mk
deleted file mode 100644
index 8944948..0000000
--- a/bridges/Library_gcc3_linux_ia64.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_ia64: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_ia64
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_ia64/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_ia64/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_ia64/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_ia64/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_intel.mk b/bridges/Library_gcc3_linux_intel.mk
deleted file mode 100644
index 02a033b..0000000
--- a/bridges/Library_gcc3_linux_intel.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_intel: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_intel
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-	$(if $(filter TRUE,$(HAVE_GCC_AVX)),\
-		-mno-avx \
-	) \
-))
-
-ifneq ($(OS),ANDROID)
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-endif
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_intel/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_intel/callvirtualmethod \
-	bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_intel/except \
-	bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_m68k.mk b/bridges/Library_gcc3_linux_m68k.mk
deleted file mode 100644
index 015764e..0000000
--- a/bridges/Library_gcc3_linux_m68k.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_m68k: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_m68k
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_m68k/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_m68k/except \
-	bridges/source/cpp_uno/gcc3_linux_m68k/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_mips.mk b/bridges/Library_gcc3_linux_mips.mk
deleted file mode 100644
index 37ca9b0..0000000
--- a/bridges/Library_gcc3_linux_mips.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_mips: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_mips
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-ifneq ($(OS),ANDROID)
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-endif
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_mips/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_mips/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_mips/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_powerpc.mk b/bridges/Library_gcc3_linux_powerpc.mk
deleted file mode 100644
index c9c79c4..0000000
--- a/bridges/Library_gcc3_linux_powerpc.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_powerpc: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_powerpc
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_powerpc/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_powerpc64.mk b/bridges/Library_gcc3_linux_powerpc64.mk
deleted file mode 100644
index baf6bf3..0000000
--- a/bridges/Library_gcc3_linux_powerpc64.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_powerpc64: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_powerpc64
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_powerpc64/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_s390.mk b/bridges/Library_gcc3_linux_s390.mk
deleted file mode 100644
index 388ef81..0000000
--- a/bridges/Library_gcc3_linux_s390.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_s390: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_s390
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_s390/except \
-	bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_s390x.mk b/bridges/Library_gcc3_linux_s390x.mk
deleted file mode 100644
index 4216d3c..0000000
--- a/bridges/Library_gcc3_linux_s390x.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_s390x: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_s390x
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_s390x/except \
-	bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_sparc.mk b/bridges/Library_gcc3_linux_sparc.mk
deleted file mode 100644
index 0240316..0000000
--- a/bridges/Library_gcc3_linux_sparc.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_sparc: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_sparc
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_sparc/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_sparc/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_linux_x86-64.mk b/bridges/Library_gcc3_linux_x86-64.mk
deleted file mode 100644
index 93b5d2a..0000000
--- a/bridges/Library_gcc3_linux_x86-64.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_x86-64: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_linux_x86-64
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-# In case the compiler supports AVX this code segfaults so specifically turn
-# it off.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-	$(if $(filter TRUE,$(HAVE_GCC_AVX)),\
-		-mno-avx \
-	) \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_x86-64/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_linux_x86-64/abi \
-	bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod \
-	bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno \
-	bridges/source/cpp_uno/gcc3_linux_x86-64/except \
-	bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_macosx_intel.mk b/bridges/Library_gcc3_macosx_intel.mk
deleted file mode 100644
index 4807853..0000000
--- a/bridges/Library_gcc3_macosx_intel.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_macosx_intel: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_macosx_intel
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_macosx_intel/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno \
-	bridges/source/cpp_uno/gcc3_macosx_intel/except \
-	bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_macosx_powerpc.mk b/bridges/Library_gcc3_macosx_powerpc.mk
deleted file mode 100644
index 67b8b69..0000000
--- a/bridges/Library_gcc3_macosx_powerpc.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_macosx_powerpc: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_macosx_powerpc
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno \
-	bridges/source/cpp_uno/gcc3_macosx_powerpc/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_macosx_x86-64.mk b/bridges/Library_gcc3_macosx_x86-64.mk
deleted file mode 100644
index 2a05faa..0000000
--- a/bridges/Library_gcc3_macosx_x86-64.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_linux_x86-64: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_macosx_x86-64
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-# In case the compiler supports AVX this code segfaults so specifically turn
-# it off.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-	$(if $(filter TRUE,$(HAVE_GCC_AVX)),\
-		-mno-avx \
-	) \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_macosx_x86-64/abi \
-	bridges/source/cpp_uno/gcc3_macosx_x86-64/call \
-	bridges/source/cpp_uno/gcc3_macosx_x86-64/callvirtualmethod \
-	bridges/source/cpp_uno/gcc3_macosx_x86-64/cpp2uno \
-	bridges/source/cpp_uno/gcc3_macosx_x86-64/except \
-	bridges/source/cpp_uno/gcc3_macosx_x86-64/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_solaris_intel.mk b/bridges/Library_gcc3_solaris_intel.mk
deleted file mode 100644
index 8cdabab..0000000
--- a/bridges/Library_gcc3_solaris_intel.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_solaris_intel: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_solaris_intel
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno \
-	bridges/source/cpp_uno/gcc3_solaris_intel/except \
-	bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_gcc3_solaris_sparc.mk b/bridges/Library_gcc3_solaris_sparc.mk
deleted file mode 100644
index 456717a..0000000
--- a/bridges/Library_gcc3_solaris_sparc.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge gcc3_solaris_sparc: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := gcc3_solaris_sparc
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-ifeq ($(HAVE_POSIX_FALLOCATE),YES)
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	-DHAVE_POSIX_FALLOCATE \
-))
-endif
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-))
-
-$(eval $(call gb_Library_add_libs,gcc3_uno,\
-	-ldl \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_solaris_sparc/except \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno \
-	bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_mingw_intel.mk b/bridges/Library_mingw_intel.mk
deleted file mode 100644
index 2a57d28..0000000
--- a/bridges/Library_mingw_intel.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge mingw_intel: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := mingw_intel
-
-$(eval $(call gb_Library_Library,gcc3_uno))
-
-$(eval $(call gb_Library_use_external,gcc3_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,gcc3_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,gcc3_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-$(eval $(call gb_Library_add_defs,gcc3_uno,\
-	$(if $(filter sjlj,$(EXCEPTIONS)),\
-		-DBROKEN_ALLOCA \
-	) \
-	$(if $(filter YES,$(HAVE_POSIX_FALLOCATE)),\
-		-DHAVE_POSIX_FALLOCATE \
-	) \
-))
-
-# In case someone enabled the non-standard -fomit-frame-pointer which does not
-# work with the .cxx sources of this library.
-# In case the compiler supports AVX this code segfaults so specifically turn
-# it off.
-$(eval $(call gb_Library_add_cxxflags,gcc3_uno,\
-	-fno-omit-frame-pointer \
-	-fno-strict-aliasing \
-	$(if $(filter TRUE,$(HAVE_GCC_AVX)),\
-		-mno-avx \
-	) \
-))
-
-$(eval $(call gb_Library_use_libraries,gcc3_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,gcc3_uno,\
-	bridges/source/cpp_uno/mingw_intel/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,gcc3_uno,\
-	bridges/source/cpp_uno/mingw_intel/callvirtualmethod \
-	bridges/source/cpp_uno/mingw_intel/cpp2uno \
-	bridges/source/cpp_uno/mingw_intel/dllinit \
-	bridges/source/cpp_uno/mingw_intel/except \
-	bridges/source/cpp_uno/mingw_intel/smallstruct \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,gcc3_uno,\
-	bridges/source/cpp_uno/mingw_intel/uno2cpp \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_msvc_win32_intel.mk b/bridges/Library_msvc_win32_intel.mk
deleted file mode 100644
index aa51b9c..0000000
--- a/bridges/Library_msvc_win32_intel.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge msvc_win32_intel: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := msvc_win32_intel
-
-$(eval $(call gb_Library_Library,msci_uno))
-
-$(eval $(call gb_Library_use_external,msci_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,msci_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,msci_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-$(eval $(call gb_Library_add_defs,msci_uno,\
-	$(if $(filter YES,$(HAVE_POSIX_FALLOCATE)),\
-		-DHAVE_POSIX_FALLOCATE \
-	) \
-	$(if $(cppu_no_leak)$(bndchk),,\
-		-DLEAK_STATIC_DATA \
-	) \
-))
-
-$(eval $(call gb_Library_use_libraries,msci_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_exception_objects,msci_uno,\
-	bridges/source/cpp_uno/msvc_win32_intel/cpp2uno \
-	bridges/source/cpp_uno/msvc_win32_intel/dllinit \
-	bridges/source/cpp_uno/msvc_win32_intel/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,msci_uno,\
-	bridges/source/cpp_uno/msvc_win32_intel/except \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Library_msvc_win32_x86-64.mk b/bridges/Library_msvc_win32_x86-64.mk
deleted file mode 100644
index cf34370..0000000
--- a/bridges/Library_msvc_win32_x86-64.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-ifneq ($(strip $(bridges_SELECTED_BRIDGE)),)
-$(eval $(call gb_Output_error,cannot build bridge msvc_win32_x86-64: bridge $(bridges_SELECTED_BRIDGE) already selected))
-endif
-bridges_SELECTED_BRIDGE := msvc_win32_x86-64
-
-$(eval $(call gb_Library_Library,mscx_uno))
-
-$(eval $(call gb_Library_use_external,mscx_uno,boost_headers))
-
-$(eval $(call gb_Library_use_internal_comprehensive_api,mscx_uno,\
-	udkapi \
-))
-
-$(eval $(call gb_Library_set_include,mscx_uno,\
-	-I$(SRCDIR)/bridges/inc \
-	$$(INCLUDE) \
-))
-
-$(eval $(call gb_Library_add_defs,mscx_uno,\
-	$(if $(filter YES,$(HAVE_POSIX_FALLOCATE)),\
-		-DHAVE_POSIX_FALLOCATE \
-	) \
-	$(if $(cppu_no_leak)$(bndchk),,\
-   		-DLEAK_STATIC_DATA \
-	) \
-))
-
-$(eval $(call gb_Library_use_libraries,mscx_uno,\
-	cppu \
-	sal \
-))
-
-$(eval $(call gb_Library_add_asmobjects,mscx_uno,\
-	bridges/source/cpp_uno/msvc_win32_x86-64/call \
-))
-
-$(eval $(call gb_Library_add_exception_objects,mscx_uno,\
-	bridges/source/cpp_uno/msvc_win32_x86-64/cpp2uno \
-	bridges/source/cpp_uno/msvc_win32_x86-64/dllinit \
-	bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp \
-	bridges/source/cpp_uno/shared/bridge \
-	bridges/source/cpp_uno/shared/component \
-	bridges/source/cpp_uno/shared/cppinterfaceproxy \
-	bridges/source/cpp_uno/shared/types \
-	bridges/source/cpp_uno/shared/unointerfaceproxy \
-	bridges/source/cpp_uno/shared/vtablefactory \
-	bridges/source/cpp_uno/shared/vtables \
-))
-
-$(eval $(call gb_Library_add_cxxobjects,mscx_uno,\
-	bridges/source/cpp_uno/msvc_win32_x86-64/except \
-	, $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/bridges/Module_bridges.mk b/bridges/Module_bridges.mk
index c1dbcef..f9d9c14 100644
--- a/bridges/Module_bridges.mk
+++ b/bridges/Module_bridges.mk
@@ -10,95 +10,24 @@
 $(eval $(call gb_Module_Module,bridges))
 
 $(eval $(call gb_Module_add_targets,bridges,\
+	Library_cpp_uno \
 	$(if $(filter TRUE,$(SOLAR_JAVA)),\
 		Jar_java_uno \
 		Library_java_uno \
 	) \
-	$(if $(and $(filter I,$(CPU)),$(filter C50 C52,$(COM))),\
-		Library_cc50_solaris_intel \
-	) \
-	$(if $(filter C52S,$(COM)$(CPU)),\
-		Library_cc50_solaris_sparc \
-	) \
-	$(if $(filter C52U,$(COM)$(CPU)),\
-		Library_cc5_solaris_sparc64 \
-	) \
-	$(if $(filter GCCAIXP,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_aix_powerpc \
-	) \
-	$(if $(filter GCCIOSR,$(COM)$(OS)$(CPU)),\
-		CustomTarget_gcc3_ios_arm \
-		Library_gcc3_ios_arm \
-	) \
-	$(if $(filter GCCLINUXL,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_linux_alpha \
-	) \
-	$(if $(and $(filter GCCR,$(COM)$(CPU)),$(filter ANDROID LINUX,$(OS))),\
-		CustomTarget_gcc3_linux_arm \
-		Library_gcc3_linux_arm \
-	) \
-	$(if $(filter GCCLINUXH,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_linux_hppa \
-	) \
-	$(if $(filter GCCLINUXA,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_linux_ia64 \
-	) \
-	$(if $(and $(filter GCCI,$(COM)$(CPU)),$(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS))),\
-		Library_gcc3_linux_intel \
-	) \
-	$(if $(filter GCCLINUX6,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_linux_m68k \
-	) \
-	$(if $(and $(filter GCCM,$(COM)$(CPU)),$(filter ANDROID LINUX,$(OS))),\
-		Library_gcc3_linux_mips \
-	) \
-	$(if $(filter GCCLINUXPPOWERPC64,$(COM)$(OS)$(CPU)$(CPUNAME)),\
-		Library_gcc3_linux_powerpc64 \
-	) \
-	$(if $(filter GCCLINUXPPOWERPC,$(COM)$(OS)$(CPU)$(CPUNAME)),\
-		Library_gcc3_linux_powerpc \
-	) \
-	$(if $(filter GCCLINUX3S390,$(COM)$(OS)$(CPU)$(CPUNAME)),\
-		Library_gcc3_linux_s390 \
-	) \
-	$(if $(filter GCCLINUX3S390X,$(COM)$(OS)$(CPU)$(CPUNAME)),\
-		Library_gcc3_linux_s390x \
-	) \
-	$(if $(filter GCCLINUXS,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_linux_sparc \
-	) \
-	$(if $(and $(filter GCCX,$(COM)$(CPU)),$(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS))),\
-		Library_gcc3_linux_x86-64 \
-	) \
-	$(if $(filter GCCMACOSXI,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_macosx_intel \
-	) \
-	$(if $(filter GCCMACOSXX,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_macosx_x86-64 \
-	) \
-	$(if $(filter GCCMACOSXP,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_macosx_powerpc \
-	) \
-	$(if $(filter GCCSOLARISI,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_solaris_intel \
-	) \
-	$(if $(filter GCCSOLARISS,$(COM)$(OS)$(CPU)),\
-		Library_gcc3_solaris_sparc \
-	) \
-	$(if $(filter WNTGCC,$(OS)$(COM)),\
-		Library_mingw_intel \
-	) \
-	$(if $(filter MSCI,$(COM)$(CPU)),\
-		Library_msvc_win32_intel \
-	) \
-	$(if $(filter MSCX,$(COM)$(CPU)),\
-		Library_msvc_win32_x86-64 \
+	$(if $(filter R,$(CPU)),\
+		$(if $(filter IOS,$(OS)),\
+			CustomTarget_gcc3_ios_arm) \
+		$(if $(filter ANDROID LINUX,$(OS)),\
+			CustomTarget_gcc3_linux_arm) \
 	) \
 ))
 
 ifeq (,$(gb_STRIPPED_BUILD))
 ifeq ($(strip $(bridges_SELECTED_BRIDGE)),)
 $(call gb_Output_error,no bridge selected for build: bailing out)
+else ifneq ($(words $(bridges_SELECTED_BRIDGE)),1)
+$(call gb_Output_error,multiple bridges selected for build: $(bridges_SELECTED_BRIDGE))
 endif
 endif
 
diff --git a/bridges/source/cpp_uno/cc50_solaris_intel/call.s b/bridges/source/cpp_uno/cc50_solaris_intel/call.s
deleted file mode 100644
index a487491..0000000
--- a/bridges/source/cpp_uno/cc50_solaris_intel/call.s
+++ /dev/null
@@ -1,266 +0,0 @@
-/
-/ This file is part of the LibreOffice project.
-/
-/ This Source Code Form is subject to the terms of the Mozilla Public
-/ License, v. 2.0. If a copy of the MPL was not distributed with this
-/ file, You can obtain one at http://mozilla.org/MPL/2.0/.
-/
-/ This file incorporates work covered by the following license notice:
-/
-/   Licensed to the Apache Software Foundation (ASF) under one or more
-/   contributor license agreements. See the NOTICE file distributed
-/   with this work for additional information regarding copyright
-/   ownership. The ASF licenses this file to you under the Apache
-/   License, Version 2.0 (the "License"); you may not use this file
-/   except in compliance with the License. You may obtain a copy of
-/   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-/
-
-    .align 4
-    .globl privateSnippetExecutorGeneral
-privateSnippetExecutorGeneral:
-    movl    %esp,%ecx
-    pushl   %ebp              / proper stack frame needed for exception handling
-    movl    %esp,%ebp
-    andl    $0xFFFFFFF8,%esp  / align following 64bit arg
-    subl    $0x8,%esp         / 64bit nRegReturn
-    pushl   %ecx              / 32bit pCallStack
-    pushl   %edx              / 32bit nVtableOffset
-    pushl   %eax              / 32bit nFunctionIndex
-    call    cpp_vtable_call
-    movl    12(%esp),%eax     / 64 bit nRegReturn, lower half
-    leave
-    ret
-    .type privateSnippetExecutorGeneral, @function
-    .size privateSnippetExecutorGeneral, .-privateSnippetExecutorGeneral
-
-    .align 4
-    .globl privateSnippetExecutorVoid
-privateSnippetExecutorVoid:
-    movl    %esp,%ecx
-    pushl   %ebp              / proper stack frame needed for exception handling
-    movl    %esp,%ebp
-    andl    $0xFFFFFFF8,%esp  / align following 64bit arg
-    subl    $0x8,%esp         / 64bit nRegReturn
-    pushl   %ecx              / 32bit pCallStack
-    pushl   %edx              / 32bit nVtableOffset
-    pushl   %eax              / 32bit nFunctionIndex
-    call    cpp_vtable_call
-    leave
-    ret
-    .type privateSnippetExecutorVoid, @function
-    .size privateSnippetExecutorVoid, .-privateSnippetExecutorVoid
-
-    .align 4
-    .globl privateSnippetExecutorHyper
-privateSnippetExecutorHyper:
-    movl    %esp,%ecx
-    pushl   %ebp              / proper stack frame needed for exception handling
-    movl    %esp,%ebp
-    andl    $0xFFFFFFF8,%esp  / align following 64bit arg
-    subl    $0x8,%esp         / 64bit nRegReturn
-    pushl   %ecx              / 32bit pCallStack
-    pushl   %edx              / 32bit nVtableOffset
-    pushl   %eax              / 32bit nFunctionIndex
-    call    cpp_vtable_call
-    movl    12(%esp),%eax     / 64 bit nRegReturn, lower half
-    movl    16(%esp),%edx     / 64 bit nRegReturn, upper half
-    leave
-    ret
-    .type privateSnippetExecutorHyper, @function
-    .size privateSnippetExecutorHyper, .-privateSnippetExecutorHyper
-
-    .align 4
-    .globl privateSnippetExecutorFloat
-privateSnippetExecutorFloat:
-    movl    %esp,%ecx
-    pushl   %ebp              / proper stack frame needed for exception handling
-    movl    %esp,%ebp
-    andl    $0xFFFFFFF8,%esp  / align following 64bit arg
-    subl    $0x8,%esp         / 64bit nRegReturn
-    pushl   %ecx              / 32bit pCallStack
-    pushl   %edx              / 32bit nVtableOffset
-    pushl   %eax              / 32bit nFunctionIndex
-    call    cpp_vtable_call
-    flds    12(%esp)          / 64 bit nRegReturn, lower half
-    leave
-    ret
-    .type privateSnippetExecutorFloat, @function
-    .size privateSnippetExecutorFloat, .-privateSnippetExecutorFloat
-
-    .align 4
-    .globl privateSnippetExecutorDouble
-privateSnippetExecutorDouble:
-    movl    %esp,%ecx
-    pushl   %ebp              / proper stack frame needed for exception handling
-    movl    %esp,%ebp
-    andl    $0xFFFFFFF8,%esp  / align following 64bit arg
-    subl    $0x8,%esp         / 64bit nRegReturn
-    pushl   %ecx              / 32bit pCallStack
-    pushl   %edx              / 32bit nVtableOffset
-    pushl   %eax              / 32bit nFunctionIndex
-    call    cpp_vtable_call
-    fldl    12(%esp)          / 64 bit nRegReturn
-    leave
-    ret
-    .type privateSnippetExecutorDouble, @function
-    .size privateSnippetExecutorDouble, .-privateSnippetExecutorDouble
-
-    .align 4
-    .globl privateSnippetExecutorStruct
-privateSnippetExecutorStruct:
-    movl    %esp,%ecx
-    pushl   %ebp              / proper stack frame needed for exception handling
-    movl    %esp,%ebp
-    andl    $0xFFFFFFF8,%esp  / align following 64bit arg
-    subl    $0x8,%esp         / 64bit nRegReturn
-    pushl   %ecx              / 32bit pCallStack
-    pushl   %edx              / 32bit nVtableOffset
-    pushl   %eax              / 32bit nFunctionIndex
-    call    cpp_vtable_call
-    movl    12(%esp),%eax     / 64 bit nRegReturn, lower half
-    leave
-    ret     $4
-    .type privateSnippetExecutorStruct, @function
-    .size privateSnippetExecutorStruct, .-privateSnippetExecutorStruct
-
-	.align 4
-	.globl callVirtualMethod
-callVirtualMethod:
-	pushl	%ebp
-	movl	%esp, %ebp
-	subl	$24, %esp
-	movl	%edx, -4(%ebp)
-	movl	%ecx, -8(%ebp)
-	movl	%eax, -12(%ebp)
-	movl	%esp, -16(%ebp)
-	movl	%ebx, -20(%ebp)
-
-	/ set ebx to GOT
-.L_GOT_BEGIN_2:
-	call	.L_GOT_END_2
-.L_GOT_END_2:
-	popl	%ebx
-	addl	$_GLOBAL_OFFSET_TABLE_+[.-.L_GOT_END_2],%ebx
-.callBeginPosition:
-	movl	28(%ebp), %eax
-	movl	%eax, %edx
-	dec		%edx
-	shl		$2, %edx
-	add		24(%ebp), %edx
-.copyLong:
-	movl	0(%edx), %ecx
-	sub		$4, %edx
-	push	%ecx
-	dec		%eax
-	jne		.copyLong
-.doCall:
-	movl	8(%ebp), %edx
-	movl	0(%edx), %edx
-	movl	12(%ebp), %eax
-	add		$2, %eax
-	shl		$2, %eax
-	add		%eax, %edx
-	movl	0(%edx), %edx
-
-	call	*%edx
-
-.callVirtualMethodExceptionPosition:
-	/ handle returns
-	movl	20(%ebp), %ecx
-
-	/ byte types
-	cmp     $2, %ecx	/ typelib_TypeClass_BOOLEAN
-	je		.handleByte
-	cmp		$3, %ecx
-	je		.handleByte	/ typelib_TypeClass_BYTE
-	
-	/ half word types
-	cmp    $4, %ecx		/ typelib_TypeClass_SHORT
-	je     .handleShort
-	cmp    $5, %ecx		/ typelib_TypeClass_UNSIGNED_SHORT
-	je     .handleShort
-
-	/ word types
-	cmp    $6, %ecx		/ typelib_TypeClass_LONG
-	je     .handleWord
-	cmp    $7, %ecx		/ typelib_TypeClass_UNSIGNED_LONG
-	je     .handleWord
-	cmp    $1, %ecx		/ typelib_TypeClass_CHAR (wchar_t)
-	je     .handleWord
-	cmp    $15, %ecx	/ typelib_TypeClass_ENUM
-	je     .handleWord
-
-	/ double word types
-	cmp    $8, %ecx		/ typelib_TypeClass_HYPER
-	je     .handleDoubleWord
-	cmp    $9, %ecx		/ typelib_TypeClass_UNSIGNED_HYPER
-	je     .handleDoubleWord
-
-	/ float
-	cmp    $10, %ecx	/ typelib_TypeClass_FLOAT
-	je     .handleFloat
-
-	/ double
-	cmp    $11, %ecx	/ typelib_TypeClass_DOUBLE
-	je     .handleDouble
-
-	/ default: return void
-	jmp    .doRestore
-.handleByte:
-	movl	16(%ebp), %ecx
-	movb	%al, 0(%ecx)
-	jmp		.doRestore
-.handleShort:
-	movl	16(%ebp), %ecx
-	movw	%ax, 0(%ecx)
-	jmp		.doRestore
-.handleWord:
-	movl	16(%ebp), %ecx
-	movl	%eax, 0(%ecx)
-	jmp		.doRestore
-.handleDoubleWord:
-	movl	16(%ebp), %ecx
-	movl	%eax, 0(%ecx)
-	movl	%edx, 4(%ecx)
-	jmp		.doRestore
-.handleFloat:
-	movl	16(%ebp), %ecx
-	fstps	0(%ecx)
-	jmp		.doRestore
-.handleDouble:
-	movl	16(%ebp), %ecx
-	fstpl	0(%ecx)
-	jmp		.doRestore
-.doRestore:
-	movl	-4(%ebp), %edx
-	movl	-8(%ebp), %ecx
-	movl	-12(%ebp), %eax
-	movl	-20(%ebp), %ebx
-	movl	%ebp, %esp
-	popl	%ebp
-	ret
-	.type callVirtualMethod, @function
-	.size callVirtualMethod, .-callVirtualMethod
-
-	.globl callVirtualMethodExceptionHandler
-callVirtualMethodExceptionHandler:
-	movl	-4(%ebp), %edx
-	movl	-8(%ebp), %ecx
-	movl	-12(%ebp), %eax
-	movl	-16(%ebp), %esp
-	movl	-20(%ebp), %ebx
-	call	__1cG__CrunMex_rethrow_q6F_v_ at PLT
-	ret
-	
-	.type callVirtualMethodExceptionHandler, @function
-	.size callVirtualMethodExceptionHandler, .-callVirtualMethodExceptionHandler
-
-
-	.section	.exception_ranges,"aw"
-	.align		4
-
-	.4byte		.callBeginPosition at rel
-	.4byte		.callVirtualMethodExceptionPosition-.callBeginPosition
-	.4byte		callVirtualMethodExceptionHandler-.callBeginPosition
-	.zero		8
diff --git a/bridges/source/cpp_uno/cc50_solaris_intel/cc50_solaris_intel.hxx b/bridges/source/cpp_uno/cc50_solaris_intel/cc50_solaris_intel.hxx
deleted file mode 100644
index 53211b0..0000000
--- a/bridges/source/cpp_uno/cc50_solaris_intel/cc50_solaris_intel.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <cstddef>
-#include <rtl/string.hxx>
-#include <typeinfo>
-
-typedef struct _uno_Any uno_Any;
-typedef struct _uno_Mapping uno_Mapping;
-
-// private C50 structures and functions
-namespace __Crun
-{
-    struct static_type_info
-    {
-        std::ptrdiff_t m_pClassName;
-        int         m_nSkip1; // must be 0
-        void*       m_pMagic; // points to some magic data
-        int         m_nMagic[ 4 ];
-        int         m_nSkip2[2]; // must be 0
-    };
-    void* ex_alloc(unsigned);
-    void ex_throw( void*, const static_type_info*, void(*)(void*));
-    void* ex_get();
-    void ex_rethrow_q();
-}
-
-namespace __Cimpl
-{
-    const char* ex_name();
-}
-
-extern "C" void _ex_register( void*, int );
-
-namespace CPPU_CURRENT_NAMESPACE
-{
-
-//##################################################################################################
-//#### exceptions ##################################################################################
-//##################################################################################################
-
-void cc50_solaris_intel_raiseException(
-    uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
-
-void cc50_solaris_intel_fillUnoException(
-    void*, const char*,
-    uno_Any*, uno_Mapping * pCpp2Uno );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx b/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
deleted file mode 100644
index 7d2a0ea..0000000
--- a/bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
+++ /dev/null
@@ -1,519 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <sal/alloca.h>
-
-#include <com/sun/star/uno/genfunc.hxx>
-#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 "cc50_solaris_intel.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,
-    sal_Int64 * pRegisterReturn /* space for register return */ )
-{
-    // 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 = pRegisterReturn; // 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 ] = 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
-            }
-            // 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 no exception occurred...
-    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::cc50_solaris_intel_raiseException(
-            &aUnoExc, pThis->getBridge()->getUno2Cpp() );
-            // has to destruct the any
-    }
-    else // else no exception occurred...
-    {
-        // 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,
-                    reinterpret_cast< uno_ReleaseFunc >(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
-            *(void **)pRegisterReturn = pCppReturn;
-        }
-        if (pReturnTypeDescr)
-        {
-            TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-        }
-    }
-}
-
-
-//==================================================================================================
-extern "C" void cpp_vtable_call(
-    int nFunctionIndex, int nVtableOffset, void** pCallStack,
-    sal_Int64 nRegReturn )
-{
-    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( "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, &nRegReturn );
-        }
-        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, &nRegReturn );
-        }
-        break;
-    }
-    case typelib_TypeClass_INTERFACE_METHOD:
-    {
-        // is METHOD
-        switch (nFunctionIndex)
-        {
-            // standard XInterface vtable calls
-        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,
-                        reinterpret_cast< uno_AcquireFunc >(cpp_acquire) );
-                    pInterface->release();
-                    TYPELIB_DANGER_RELEASE( pTD );
-                    *(void **)&nRegReturn = 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, &nRegReturn );
-        }
-        break;
-    }
-    default:
-    {
-        throw RuntimeException( "no member description found!", (XInterface *)pThis );
-    }
-    }
-}
-
-//==================================================================================================
-bool isSimpleStruct(typelib_TypeDescriptionReference * type) {
-    typelib_TypeDescription * td = 0;
-    TYPELIB_DANGER_GET(&td, type);
-    OSL_ASSERT(td != 0);
-    for (typelib_CompoundTypeDescription * ctd
-             = reinterpret_cast< typelib_CompoundTypeDescription * >(td);
-         ctd != 0; ctd = ctd->pBaseTypeDescription)
-    {
-        OSL_ASSERT(ctd->aBase.eTypeClass == typelib_TypeClass_STRUCT);
-        for (sal_Int32 i = 0; i < ctd->nMembers; ++i) {
-            typelib_TypeClass c = ctd->ppTypeRefs[i]->eTypeClass;
-            switch (c) {
-            case typelib_TypeClass_STRING:
-            case typelib_TypeClass_TYPE:
-            case typelib_TypeClass_ANY:
-            case typelib_TypeClass_SEQUENCE:
-            case typelib_TypeClass_INTERFACE:
-                return false;
-            case typelib_TypeClass_STRUCT:
-                if (!isSimpleStruct(ctd->ppTypeRefs[i])) {
-                    return false;
-                }
-                break;
-            default:
-                OSL_ASSERT(
-                    c <= typelib_TypeClass_DOUBLE
-                    || c == typelib_TypeClass_ENUM);
-                break;
-            }
-        }
-    }
-    TYPELIB_DANGER_RELEASE(td);
-    return true;
-}
-
-extern "C" void privateSnippetExecutorGeneral();
-extern "C" void privateSnippetExecutorVoid();
-extern "C" void privateSnippetExecutorHyper();
-extern "C" void privateSnippetExecutorFloat();
-extern "C" void privateSnippetExecutorDouble();
-extern "C" void privateSnippetExecutorStruct();
-extern "C" typedef void (*PrivateSnippetExecutor)();
-
-int const codeSnippetSize = 16;
-
-unsigned char * codeSnippet(
-    unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
-    typelib_TypeDescriptionReference * returnType)
-{
-    typelib_TypeClass c = returnType == 0
-        ? typelib_TypeClass_VOID : returnType->eTypeClass;
-    if (returnType != 0 && !bridges::cpp_uno::shared::isSimpleType(c)) {
-        functionIndex |= 0x80000000;
-    }
-    PrivateSnippetExecutor exec;
-    switch (c) {
-    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_STRUCT:
-        OSL_ASSERT(returnType != 0);
-        // For "simple" (more-or-less POD, but not exactly) structs, the caller
-        // pops the pointer to the return value off the stack, as documented in
-        // the Intel SYSV ABI; for other structs (which includes STRING, TYPE,
-        // ANY, sequences, and interfaces, btw.), the callee pops the pointer to
-        // the return value off the stack:
-        exec = isSimpleStruct(returnType)
-            ? privateSnippetExecutorStruct : privateSnippetExecutorGeneral;
-        break;
-    default:
-        exec = privateSnippetExecutorGeneral;
-        break;
-    }
-    unsigned char * p = code;
-    OSL_ASSERT(sizeof (sal_Int32) == 4);
-    // mov function_index, %eax:

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list