Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building quakejs on emscripten 1.37.19 #5491

Closed
iRedField opened this issue Aug 20, 2017 · 4 comments
Closed

Building quakejs on emscripten 1.37.19 #5491

iRedField opened this issue Aug 20, 2017 · 4 comments

Comments

@iRedField
Copy link

iRedField commented Aug 20, 2017

Hi everyone!
I've error when trying build quake js.
My environment:
OS: Linux kali 4.3.0-kali1-amd64 #1 SMP Debian 4.3.3-5kali4 (2016-01-13) x86_64 GNU/Linux
Python: 2.7.11
Java: 7u91-2.6.3-1
NodeJs: 4.1.1
Emscripten: 1.37.19
clang: 4.0.0 (emscripten 1.37.19 : 1.37.19)
EMSCRIPTEN_NATIVE_OPTIMIZER: clang/e1.37.19_64bit/optimizer

My commands:
1. emsdk update
2. emsdk install latest
3. emsdk activate latest
4. source emsdk_env.sh
5. git clone --recursive https://github.com/inolen/quakejs.git

6. edit Makefile

ifeq ($(USE_GIT),1)
#  $(B)/client/cl_console.o : .git/index
#  $(B)/client/common.o : .git/index
#  $(B)/ded/common.o : .git/index
  $(B)/client/cl_console.o : ../.git/modules/ioq3/index
  $(B)/client/common.o : ../.git/modules/ioq3/index
  $(B)/ded/common.o : ../.git/modules/ioq3/index

7. Check Emscripten installation
emcc -v

DEBUG:root:PYTHON not defined in /root/.emscripten, using "/usr/bin/python"
DEBUG:root:JAVA not defined in /root/.emscripten, using "java"
DEBUG:root:Cache: PID 49611 acquiring multiprocess file lock to Emscripten cache
DEBUG:root:Cache: done
DEBUG:root:Cache: PID 49611 released multiprocess file lock to Emscripten cache
DEBUG:root:check tells us to use asm.js backend
WARNING:root:invocation: /usr/emsdk-portable/emscripten/1.37.19/emcc -v  (in /root/quakejs/ioq3)
DEBUG:root:Checking JS engine ['/usr/emsdk-portable/node/4.1.1_64bit/bin/node']
INFO:root:(Emscripten: Running sanity checks)
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.37.19
clang version 4.0.0  (emscripten 1.37.19 : 1.37.19)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/emsdk-portable/clang/e1.37.19_64bit
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.1
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.1
Candidate multilib: .;@m64
Selected multilib: .;@m64
INFO:root:(Emscripten: Running sanity checks)

8. emcc --clear-cache

9. make PLATFORM=js EMSCRIPTEN=/usr/emsdk-portable/emscripten/1.37.19

Trace log:

error: failure to execute js library "/root/quakejs/ioq3/code/sys/sys_common.js": TypeError: Runtime.generateStructInfo is not a function,,TypeError: Runtime.generateStructInfo is not a function
    at eval (eval at <anonymous> (eval at globalEval (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:105:8)), <anonymous>:54:25)
    at Object.LibraryManager.load (eval at globalEval (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:105:8), <anonymous>:174:9)
    at JSify (eval at globalEval (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:105:8), <anonymous>:59:20)
    at /root/quakejs/ioq3/code/sys/sys_common.js (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:208:3)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:475:10)
    at startup (node.js:117:18)
preprocessed source (you can run a js engine on this to get a clearer error message sometimes):

etc.

Internal compiler error in src/compiler.js! Please raise a bug report at https://github.com/kripken/emscripten/issues/ with a log of the build and the input files used to run. Exception message: "TypeError: Runtime.generateStructInfo is not a function" | TypeError: Runtime.generateStructInfo is not a function
    at eval (eval at <anonymous> (eval at globalEval (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:105:8)), <anonymous>:54:25)
    at Object.LibraryManager.load (eval at globalEval (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:105:8), <anonymous>:174:9)
    at JSify (eval at globalEval (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:105:8), <anonymous>:59:20)
    at Object.<anonymous> (/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js:208:3)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:475:10)
    at startup (node.js:117:18)
Traceback (most recent call last):
  File "/usr/emsdk-portable/emscripten/1.37.19/emcc", line 13, in <module>
    emcc.run()
  File "/usr/emsdk-portable/emscripten/1.37.19/emcc.py", line 1515, in run
    final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
  File "/usr/emsdk-portable/emscripten/1.37.19/tools/shared.py", line 2020, in emscripten
    call_emscripten(cmdline)
  File "/usr/emsdk-portable/emscripten/1.37.19/emscripten.py", line 2214, in _main
    temp_files.run_and_clean(lambda: main(
  File "/usr/emsdk-portable/emscripten/1.37.19/tools/tempfiles.py", line 78, in run_and_clean
    return func()
  File "/usr/emsdk-portable/emscripten/1.37.19/emscripten.py", line 2219, in <lambda>
    DEBUG=DEBUG,
  File "/usr/emsdk-portable/emscripten/1.37.19/emscripten.py", line 2119, in main
    temp_files=temp_files, DEBUG=DEBUG)
  File "/usr/emsdk-portable/emscripten/1.37.19/emscripten.py", line 98, in emscript
    glue, forwarded_data = compiler_glue(metadata, settings, libraries, compiler_engine, temp_files, DEBUG)
  File "/usr/emsdk-portable/emscripten/1.37.19/emscripten.py", line 222, in compiler_glue
    glue, forwarded_data = compile_settings(compiler_engine, settings, libraries, temp_files)
  File "/usr/emsdk-portable/emscripten/1.37.19/emscripten.py", line 535, in compile_settings
    cwd=path_from_root('src'), error_limit=300)
  File "/usr/emsdk-portable/emscripten/1.37.19/tools/jsrun.py", line 131, in run_js
    raise Exception('Expected the command ' + str(command) + ' to finish with return code ' + str(assert_returncode) + ', but it returned with code ' + str(proc.returncode) + ' instead! Output: ' + str(ret)[:error_limit])
Exception: Expected the command ['/usr/emsdk-portable/node/4.1.1_64bit/bin/node', '/usr/emsdk-portable/emscripten/1.37.19/src/compiler.js', '/tmp/emscripten_temp/tmpdwC2hW.txt', '/root/quakejs/ioq3/code/sys/sys_common.js', '/root/quakejs/ioq3/code/sys/sys_node.js', '/root/quakejs/ioq3/code/qcommon/vm_js.js', '/usr/emsdk-portable/emscripten/1.37.19/src/library_pthread_stub.js'] to finish with return code 0, but it returned with code 1 instead! Output: // The Module object: Our interface to the outside world. We import
// and export values on it, and do the work to get that through
// closure compiler if necessary. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(Module) { ..gener
Makefile:2260: recipe for target 'build/release-js-js/ioq3ded.js' failed
make[2]: *** [build/release-js-js/ioq3ded.js] Error 1
make[2]: Leaving directory '/root/quakejs/ioq3'
Makefile:1289: recipe for target 'targets' failed
make[1]: *** [targets] Error 2
make[1]: Leaving directory '/root/quakejs/ioq3'
Makefile:1263: recipe for target 'release' failed
make: *** [release] Error 2
@kripken
Copy link
Member

kripken commented Aug 20, 2017

generateStructInfo is an old internal API that no longer exists. I'd grep through that project's source code to see where it's called, and that code probably needs to be replaced.

@iRedField
Copy link
Author

OK, waiting for your changes.
Thanks!

@nazar-pc
Copy link
Contributor

@iRedField, he meant that your project's source code needs to be fixed. Emscripten itself only contains generateStructInfo in 4 places and every time as a comment. So there is nothing to change in Emscripten itself.

@iRedField
Copy link
Author

Understood. Thanks for reply.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants