[Libreoffice-commits] core.git: Branch 'feature/wasm' - external/cairo README.wasm

Jan-Marek Glogowski (via logerrit) logerrit at kemper.freedesktop.org
Sun Dec 20 11:01:37 UTC 2020


 README.wasm                             |   31 ++++++++++++++++++++++++++++++-
 external/cairo/ExternalProject_cairo.mk |    3 +--
 2 files changed, 31 insertions(+), 3 deletions(-)

New commits:
commit 7ece832eca94a4948d98e55c5371bd8575a3fdc5
Author:     Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Sun Dec 20 12:00:17 2020 +0100
Commit:     Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Sun Dec 20 12:00:17 2020 +0100

    Drop cairo debugging stuff and update README.wasm
    
    Change-Id: Ica8e115ee19c7777f520fe2c41a88efa07de8b13

diff --git a/README.wasm b/README.wasm
index d6180cab09da..46c84a1a1a4e 100644
--- a/README.wasm
+++ b/README.wasm
@@ -71,7 +71,6 @@ Enabling multi-thread support in Firefox is a bit of work with older versions:
 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
 
 
-
 == Setup LO ==
 
 Currently autogen.sh is patched to use emconfigure. That basically sets various environment vars,
@@ -119,6 +118,36 @@ QT5DIR=/dir/of/git_qt5/qtbase
 Will also be encoded in configure.ac at some point, some already is.
 
 
+= Ideas for an UNO bridge implementation =
+
+My post to Discord #emscripten: "I'm looking for a way to do an abstract call
+from one WASM C++ object to an other WASM C++ object, so like FFI / WebIDL,
+just within WASM. All my code is C++ and normally I have bridge code, with
+assembler to implement the function call /RTTI and exception semantics of the
+specified platform. Code is at
+https://cgit.freedesktop.org/libreoffice/core/tree/bridges/source/cpp_uno.
+I've read a bit about call_indirect and stuff, but I don't have yet a good
+idea, how I could implement this (and  there is an initial feature/wasm branch
+for the interested). I probably need some fixed lookup table, like on iOS,
+because AFAIK you can't dynamically generate code in WASM. So any pointers or
+ideas for an implementation? I can disassemble some minimalistic WASM example
+and read clang code for WASM_EmscriptenInvoke, but if there were some
+standalone code or documentation I'm missing, that would be nice to know."
+
+We basically would go the same way then the other backends. Write the bridge in
+C++, which is probably largely boilerplate code, but the function call in WAT
+(https://github.com/WebAssembly/wabt) based on the LLVM WASM calling
+conventions in WASM_EmscriptenInvoke. I didn't get a reply to that question for
+hours. Maybe I'll open an Emscripten issue, if we really have to implement
+this.
+
+
+= Tools for problem diagnosis =
+
+* nm -s should list the symbols in the archive, based on the index generated by ranlib.
+  If you get linking errors that archive has no index.
+
+
 = Mixed information, links, problems, TODO =
 
 More info on Qt WASM emscripten pthreads: https://wiki.qt.io/Qt_for_WebAssembly#Multithreading_Support
diff --git a/external/cairo/ExternalProject_cairo.mk b/external/cairo/ExternalProject_cairo.mk
index 08e83086a1cc..eb32338fe74b 100644
--- a/external/cairo/ExternalProject_cairo.mk
+++ b/external/cairo/ExternalProject_cairo.mk
@@ -64,8 +64,7 @@ else
 $(call gb_ExternalProject_get_state_target,cairo,build) :
 	$(call gb_Trace_StartRange,cairo,EXTERNAL)
 	$(call gb_ExternalProject_run,build,\
-	env | sort && \
-	dash -x ./configure \
+	./configure \
 		$(if $(debug),STRIP=" ") \
 		$(if $(filter ANDROID iOS,$(OS)),CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS) $(gb_VISIBILITY_FLAGS)") \
 		$(if $(filter EMSCRIPTEN,$(OS)),CFLAGS=" $(ZLIB_CFLAGS)" --enable-pthread=yes PTHREAD_LIBS="" EMMAKEN_JUST_CONFIGURE=1) \


More information about the Libreoffice-commits mailing list