NACL and emscripten deployment run and build failure + linux native crash on SocketIO


#1

Hi folks:
I’m new here so hopefully this is the appropriate place to ask how to get the build setup:
In the top of tree develop branch, the emscripten SimpleGame test fails to run
Assertion failed: segmentation fault:
Error at abort (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:496:32) at assert (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:502:5) at SAFE_HEAP_ACCESS (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:410:3) at SAFE_HEAP_LOAD (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:464:3) at ___cxx_global_var_init3 (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:91336:53) at __GLOBAL__I_a (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:25616:3) at __ATINIT__.concat.func (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:1009:24) at callRuntimeCallbacks (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:824:7) at ensureInitRuntime (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:835:3) at doRun (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/debug/SimpleGame.js:567709:5)

Release has a similar error, but in the keyboard handler
@
Assertion failed: segmentation fault:
Error
–1:
Error
at abort (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:412:32)
at __ZN7cocos2d18KeyboardDispatcherC1Ev (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:5257:80)
at sa (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6171:142533)
at Array.Oy (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6175:1670)
at Object.Gw [as _main] (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6175:271554)
at Object.callMain (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:7663:26)
at doRun (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:7702:31)
at http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:7721:19
22:
Error
at abort (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:412:32)
at Array.Ro (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6176:77900)
at Array.KB (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6175:69856)
at Array.lK (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6170:349313)
at Q1 (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6176:76504)
at Object.Runtime.dynCall (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:315:39)
at GLUT.onMouseButtonUp (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:4288:19)
22:
Error
at abort (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:412:32)
at Array.Ro (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6176:77900)
at Array.KB (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6175:69856)
at Array.lK (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6170:349313)
at Q1 (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:6176:76504)
at Object.Runtime.dynCall (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:315:39)
at GLUT.onMouseButtonUp (http://localhost:808/cocos/samples/Cpp/SimpleGame/proj.emscripten/bin/release/SimpleGame.js:4288:19)

@

when I try to build nacl, it complains about missing C11 features like nullptr and thread:: namespaces
make[1]: *** No rule to make target `obj/x86_64/Debug/openal/SimpleAudioEngine.o', needed by `../../lib/nacl/newlib_x86_64/Debug/libcocosdenshion.a'. Stop. make[1]: *** Waiting for unfinished jobs.... CXX obj/x86_64/Debug/openal/OpenALDecoder.o In file included from ../../cocos2dx/actions/CCAction.h:30, from ../../cocos2dx/include/cocos2d.h:40, from ../openal/OpenALDecoder.h:8, from ../openal/OpenALDecoder.cpp:1: ../../cocos2dx/cocoa/CCObject.h: In member function ‘cocos2d::Object* cocos2d::Clonable::copy() const’: ../../cocos2dx/cocoa/CCObject.h:60: error: ‘nullptr’ was not declared in this scope In file included from ../../cocos2dx/include/cocos2d.h:40, from ../openal/OpenALDecoder.h:8, from ../openal/OpenALDecoder.cpp:1: ../../cocos2dx/actions/CCAction.h: At global scope: ../../cocos2dx/actions/CCAction.h:140: error: expected ‘;’ before ‘override’ ../../cocos2dx/actions/CCAction.h:141: error: expected ‘;’ before ‘override’
and so on…
does NACL have C
11 support?
Also I noticed a bug appearing in valgrind with SocketIOTest when I instruct linux to build that test (attached)

The master branch works with NACL and emscripten.


errlog.zip (3.7 KB)


#2

Hi Veridian,

I wrote the SocketIO extension and test, can you describe the method you used to execute the test functions? It looks like create client and create endpoint were executed so close together that it connected to the server twice with two separate clients.

The code wasn’t designed to be used like this, I could write in extra functionality to check states but the best practice is to wait until all other clients are finished connecting until starting another connection (this really only matters when the connections share the same host).

Let me know, thanks-