android/Bootstrap/Makefile.shared                |    2 +-
 android/Bootstrap/version.map                    |    2 ++
 bridges/source/cpp_uno/gcc3_linux_arm/except.cxx |    3 ---
 desktop/source/lib/init.cxx                      |    4 ++--
 include/osl/detail/android-bootstrap.h           |    4 ++++
 sal/android/lo-bootstrap.c                       |    7 +++++++
 6 files changed, 16 insertions(+), 6 deletions(-)

New commits:
commit 875a1fb46293cd9209bd557b4a4f154bf091d9cb
Author:     Jan Holesovsky <[email protected]>
AuthorDate: Mon Feb 18 13:25:40 2019 +0100
Commit:     Jan Holesovsky <[email protected]>
CommitDate: Wed Oct 9 10:37:13 2019 +0200

    android: Expose setting of the JavaVM.
    
    Needed when we use the liblo-native-code as a library.
    
    Change-Id: Ia4d1d72f2203a96d1196d015b521201919bbb165
    Reviewed-on: https://gerrit.libreoffice.org/67965
    Tested-by: Jenkins
    Reviewed-by: Jan Holesovsky <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/80268
    Tested-by: Jan Holesovsky <[email protected]>

diff --git a/include/osl/detail/android-bootstrap.h 
b/include/osl/detail/android-bootstrap.h
index 5a5c7fcbd82d..169f3efaf282 100644
--- a/include/osl/detail/android-bootstrap.h
+++ b/include/osl/detail/android-bootstrap.h
@@ -35,6 +35,10 @@ int lo_apk_closedir(lo_apk_dir *dirp);
 
 int lo_apk_lstat(const char *path, struct stat *statp);
 
+/// "libreofficekit_" prefix, because it is exported from the .so, when we are
+/// initializing the JNI externally.
+void libreofficekit_set_javavm(JavaVM *vm);
+
 JavaVM *lo_get_javavm(void);
 
 const char *lo_get_app_data_dir(void);
diff --git a/sal/android/lo-bootstrap.c b/sal/android/lo-bootstrap.c
index d1ecd810ab19..0af8cfbb4cd3 100644
--- a/sal/android/lo-bootstrap.c
+++ b/sal/android/lo-bootstrap.c
@@ -898,6 +898,13 @@ 
Java_org_libreoffice_android_Bootstrap_address_1of_1direct_1byte_1buffer(JNIEnv
 }
 
 __attribute__ ((visibility("default")))
+void
+libreofficekit_set_javavm(JavaVM *vm)
+{
+    the_java_vm = vm;
+}
+
+__attribute__ ((visibility("default")))
 JavaVM *
 lo_get_javavm(void)
 {
commit daab05979f275c87b036571a4b42ffbfd3b35f63
Author:     Jan Holesovsky <[email protected]>
AuthorDate: Thu Feb 14 14:54:02 2019 +0100
Commit:     Jan Holesovsky <[email protected]>
CommitDate: Wed Oct 9 10:36:53 2019 +0200

    android: Generate liblo-native-code.so so that it can be linked against.
    
    And used for LibreOfficeKit directly, without a JNI wrapper.
    
    Change-Id: If4231f53b579417b6c9c90b39541193bf2e8f27c
    Reviewed-on: https://gerrit.libreoffice.org/67874
    Reviewed-by: Jan Holesovsky <[email protected]>
    Tested-by: Jan Holesovsky <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/80267

diff --git a/android/Bootstrap/Makefile.shared 
b/android/Bootstrap/Makefile.shared
index f77679853d39..942f5f8179ee 100644
--- a/android/Bootstrap/Makefile.shared
+++ b/android/Bootstrap/Makefile.shared
@@ -59,7 +59,7 @@ WHOLELIBS = \
 $(OBJLOCAL)/liblo-native-code.so : native-code.cxx $(ALL_STATIC_LIBS)
        @echo "Linking $@"
        mkdir -p $(OBJLOCAL)
-       $(CXX) -Wl,--build-id=sha1 -Wl,--gc-sections 
-Wl,--version-script=../Bootstrap/version.map -Wl,--no-keep-files-mapped 
-Wl,--no-undefined -DANDROID -DDISABLE_DYNLOADING -shared -o 
$(OBJLOCAL)/liblo-native-code.so -I$(BUILDDIR)/config_host -I$(SRCDIR)/include 
native-code.cxx -L$(INSTDIR)/$(LIBO_LIB_FOLDER) $(WHOLELIBS) $(LIBS) 
-lc++_static -lc++abi -landroid_support $(if $(filter 
armeabi-v7a,$(ANDROID_APP_ABI)),-lunwind) $(addprefix -l,$(NSSLIBS)) -lGLESv2 
-landroid -ljnigraphics -llog -lz
+       $(CXX) -Wl,--build-id=sha1 -Wl,--gc-sections 
-Wl,--version-script=../Bootstrap/version.map -Wl,--no-keep-files-mapped 
-Wl,--no-undefined -DANDROID -DDISABLE_DYNLOADING -shared 
-Wl,-soname,liblo-native-code.so -o $(OBJLOCAL)/liblo-native-code.so 
-I$(BUILDDIR)/config_host -I$(SRCDIR)/include native-code.cxx 
-L$(INSTDIR)/$(LIBO_LIB_FOLDER) $(WHOLELIBS) $(LIBS) -lc++_static -lc++abi 
-landroid_support $(if $(filter armeabi-v7a,$(ANDROID_APP_ABI)),-lunwind) 
$(addprefix -l,$(NSSLIBS)) -lGLESv2 -landroid -ljnigraphics -llog -lz
 
 $(SODEST)/liblo-native-code.so : $(OBJLOCAL)/liblo-native-code.so
        mkdir -p $(SODEST)
diff --git a/android/Bootstrap/version.map b/android/Bootstrap/version.map
index 067785410a7a..de561bfc296b 100644
--- a/android/Bootstrap/version.map
+++ b/android/Bootstrap/version.map
@@ -3,6 +3,7 @@ dummy {
         Java_*;
         JNI_OnLoad;
         _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions
+        libreofficekit_hook*;
     local:
         *;
 };
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index cf59037fcb3f..5fafd6c2a25a 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -5624,7 +5624,7 @@ static int lo_initialize(LibreOfficeKit* pThis, const 
char* pAppPath, const char
     return bInitialized;
 }
 
-SAL_DLLPUBLIC_EXPORT
+SAL_JNI_EXPORT
 LibreOfficeKit *libreofficekit_hook_2(const char* install_path, const char* 
user_profile_url)
 {
     if (!gImpl)
@@ -5640,7 +5640,7 @@ LibreOfficeKit *libreofficekit_hook_2(const char* 
install_path, const char* user
     return static_cast<LibreOfficeKit*>(gImpl);
 }
 
-SAL_DLLPUBLIC_EXPORT
+SAL_JNI_EXPORT
 LibreOfficeKit *libreofficekit_hook(const char* install_path)
 {
     return libreofficekit_hook_2(install_path, nullptr);
commit 3c92b4d430e02eb7784166a69dcec029d4d8c026
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Tue Dec 11 14:33:18 2018 +0100
Commit:     Jan Holesovsky <[email protected]>
CommitDate: Wed Oct 9 10:36:32 2019 +0200

    Export RTTI symbols from liblo-native-code.so, for binary UNO bridge
    
    This will become important when switching armeabi-v7a to
    libc++/libc++abi/libunwind (coming soon) which uses address instead of 
string
    comparison when checking for type equality, so that exceptions thrown from 
the
    binary UNO bridge will need to use the exact same RTTI objects as referenced
    from the compiled catch clauses.
    
    Change-Id: If8bcb39212b5f5e154aee215cb5f471fe2dc4a7b
    Reviewed-on: https://gerrit.libreoffice.org/64965
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/80266
    Reviewed-by: Jan Holesovsky <[email protected]>
    Tested-by: Jan Holesovsky <[email protected]>

diff --git a/android/Bootstrap/version.map b/android/Bootstrap/version.map
index e12d9985e78f..067785410a7a 100644
--- a/android/Bootstrap/version.map
+++ b/android/Bootstrap/version.map
@@ -2,6 +2,7 @@ dummy {
      global:
         Java_*;
         JNI_OnLoad;
+        _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions
     local:
         *;
 };
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx 
b/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx
index 9de606a8c6bf..251fbe09857f 100644
--- a/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx
@@ -148,9 +148,6 @@ namespace CPPU_CURRENT_NAMESPACE
             rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
 #else
             rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
-            // Unfortunately dlsym for weak symbols doesn't work in
-            // Android 4.0 at least, sigh, so we will always take the
-            // else branch below.
 #endif
 
             if (rtti)
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to