summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2019-09-05 16:43:14 +0200
committerJan Holesovsky <kendy@collabora.com>2019-10-22 14:17:32 +0200
commit7d8f0a8fdef91f7f46fc6b5d86a169a55c934519 (patch)
treeb2ebb4249fca100f8104a4c0abfc05a88e4ad159 /bridges
parent016141db1deea005c7963d2f4c9e934fe2d85817 (diff)
android: add support for 64bit build
Change-Id: Id8aae84308f6128351ae2f93c8fbc8941a0c7fc6 Reviewed-on: https://gerrit.libreoffice.org/79085 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-on: https://gerrit.libreoffice.org/81225 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'bridges')
-rw-r--r--bridges/Library_cpp_uno.mk2
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx10
2 files changed, 11 insertions, 1 deletions
diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk
index 4efba804b7d2..d4e942496830 100644
--- a/bridges/Library_cpp_uno.mk
+++ b/bridges/Library_cpp_uno.mk
@@ -159,7 +159,7 @@ bridge_exception_objects := except
else ifeq ($(CPUNAME),X86_64)
-ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD HAIKU,$(OS)),)
+ifneq ($(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD HAIKU,$(OS)),)
bridges_SELECTED_BRIDGE := gcc3_linux_x86-64
bridge_asm_objects := call
bridge_noncallexception_noopt_objects := callvirtualmethod
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx b/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx
index 038f88f1d18e..39cf5bd13218 100644
--- a/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx
@@ -81,7 +81,9 @@ class RTTI
std::vector<OString> m_rttiNames;
std::unordered_map<OUString, std::unique_ptr<Generated>> m_generatedRttis;
+#if !defined ANDROID
void * m_hApp;
+#endif
public:
RTTI();
@@ -91,13 +93,17 @@ public:
};
RTTI::RTTI()
+#if !defined ANDROID
: m_hApp( dlopen( nullptr, RTLD_LAZY ) )
+#endif
{
}
RTTI::~RTTI()
{
+#if !defined ANDROID
dlclose( m_hApp );
+#endif
}
std::type_info * RTTI::getRTTI(typelib_TypeDescription const & pTypeDescr)
@@ -125,7 +131,11 @@ std::type_info * RTTI::getRTTI(typelib_TypeDescription const & pTypeDescr)
buf.append( 'E' );
OString symName( buf.makeStringAndClear() );
+#if !defined ANDROID
rtti = static_cast<std::type_info *>(dlsym( m_hApp, symName.getStr() ));
+#else
+ rtti = static_cast<std::type_info *>(dlsym( RTLD_DEFAULT, symName.getStr() ));
+#endif
if (rtti)
{