lvgl/lv_web_emscripten

It doesn't build with the latest emsdk

w8jcik opened this issue · 3 comments

Steps to reproduce

git clone https://github.com/emscripten-core/emsdk.git
(cd emsdk && ./emsdk install latest && ./emsdk activate latest)
source emsdk/emsdk_env.sh

git clone --recursive https://github.com/littlevgl/lv_sim_emscripten.git
(cd lv_sim_emscripten && make)
 LINK  lvgl.html
wasm-ld: error: duplicate symbol: monitor_init
>>> defined in lv_drivers/display/monitor.o
>>> defined in lv_drivers/display/monitor.o
...
wasm-ld: error: duplicate symbol: monitor_sdl_refr_core
>>> defined in lv_drivers/display/monitor.o
>>> defined in lv_drivers/display/monitor.o
shared:ERROR:...
...
make: *** [Makefile:89: lvgl.html] Error 1

It works when the older version of emsdk is selected

git clone https://github.com/emscripten-core/emsdk.git
(cd emsdk && ./emsdk install 1.38.48 && ./emsdk activate 1.38.48)
source emsdk/emsdk_env.sh

git clone --recursive https://github.com/littlevgl/lv_sim_emscripten.git
(cd lv_sim_emscripten && make)
  • Project builds with emsdk 1.38/fastcomp. Both with make and cmake.
  • Project doesn't build with emsdk latest (1.39/llvm) with make but it builds with cmake.
  • I know it works with cmake because this works #5
  • So it seems that there is something wrong with the Makefile.

It's good to hear that there are no runtime issues with the new LLVM backend.

I'm taking a look at this now; I should have a fix soon.

It was a pretty simple mistake. I'm not sure why the older Emscripten worked with it like this.

Great. Thank you for the fix.