diff options
author | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2019-09-05 16:43:14 +0200 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2019-09-23 12:57:08 +0200 |
commit | 6d09dcf0d8a8fd3b63ad583befaf2c47f85b16b7 (patch) | |
tree | 916a8b8851ff7a5dcd5df4e21801663c3a83fc47 /bridges | |
parent | 29ad26ace6cef4655c89902a7ec2c999cc4551e6 (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>
Diffstat (limited to 'bridges')
-rw-r--r-- | bridges/Library_cpp_uno.mk | 2 | ||||
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk index f8efb498a4b1..0ca679e4b216 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 faf45a8b0590..2e11b6eb42bc 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/rtti.cxx @@ -80,7 +80,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(); @@ -90,13 +92,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) @@ -124,7 +130,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) { |