Omega-Numworks / Omega

Omega 2.0, the next evolution of Epsilon! Now available for your Numworks calculator!
https://getomega.dev
Other
316 stars 93 forks source link

Websimulator Last version of emsdk does not support fastcomp... which version to use? #559

Closed daitangio closed 11 months ago

daitangio commented 3 years ago

Last version of emsdk does not support fastcomp

Running

git clone https://github.com/emscripten-core/emsdk.git cd emsdk ./emsdk install latest-fastcomp

reports error:

error: the fastcomp backend is not getting new builds or releases. Please use the upstream llvm backend or use an older version than 2.0.0 (such as 1.40.1).

So I checkout out tag 1.40.1 and compiled it. But this version cannot work with omega. Running make PLATFORM=simulator TARGET=web OMEGA_USERNAME="{Your name, max 15 characters}" -j4

Reports the following error:

emcc: warning: the fastomp compiler is deprecated. Please switch to the upstream llvm backend as soon as possible and open issues if you have trouble doing so [-Wfastcomp] emcc: error: ASYNCIFY has been removed from fastcomp. There is a new implementation which can be used in the upstream wasm backend. emcc: warning: the fastomp compiler is deprecated. Please switch to the upstream llvm backend as soon as possible and open issues if you have trouble doing so [-Wfastcomp] emcc: error: ASYNCIFY has been removed from fastcomp. There is a new implementation which can be used in the upstream wasm backend. make: [build/rules.mk:21: output/release/simulator/web/apps/alternate_empty_nested_menu_controller.o] Error 1 make: Waiting for unfinished jobs.... make: *** [build/rules.mk:21: output/release/simulator/web/apps/apps_container.o] Error 1 rm output/release/simulator/web/ion/src/simulator/web/simulator.html

So I tried to compile emsdk with:

  git clone https://github.com/emscripten-core/emsdk.git
  cd emsdk
  ./emsdk install latest
  ./emsdk activate latest
  source emsdk_env.sh
  cd ../Omega
  make PLATFORM=simulator TARGET=web OMEGA_USERNAME="testme" -j4

And it seems to work but during last step I get the following error

error: undefined symbol: emscripten_sleep_with_yield (referenced by top-level compiled C/C++ code)
warning: Link with `-s LLD_REPORT_UNDEFINED` to get more information on undefined symbols
warning: To disable errors for undefined symbols use `-s ERROR_ON_UNDEFINED_SYMBOLS=0`
warning: _emscripten_sleep_with_yield may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
Error: Aborting compilation due to previous errors
emcc: error: '/home/jj/numworks/emsdk/node/14.15.5_64bit/bin/node /home/jj/numworks/emsdk/upstream/emscripten/src/compiler.js /tmp/tmpue6pxnt0.txt' failed (returned 1)
make: *** [build/rules.mk:77: output/release/simulator/web/epsilon.js] Error 1
rm output/release/simulator/web/ion/src/simulator/web/simulator.html

What is the suggested version of emsdk to use?

ArtichOwO commented 3 years ago

Hello, Using latest works for me, this commit aba23882535590a8e1498ea47d7271769c6d91c3 should fix the error ; Try building with the omega-dev branch

daitangio commented 3 years ago

Using

./emsdk install latest

with omega-dev branch still complains about: "ASYNCIFY has been removed from fastcomp."

I removed the ASYNCIFY flag inside ./build/toolchain.emscripten.mak and it compiles. Is the ASYNCIFY file mandatory?