[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