Is this Boehm specific? Can you build a trivial hello world? - Alon
On Thu, Nov 6, 2014 at 2:15 PM, Colin Gordon <[email protected]> wrote: > Hi everyone, > > I’ve been trying to build the trunk version of the Boehm GC using > emscripten, which now appears to be an officially supported platform based > on some of the change sets from the last few months (some work was > upstreamed from Unity). Has anyone had success in doing this? I’ve > managed to produce a compiled library of LLVM bit code with the emscripten > target triple, but attempting to link even a trivial program against it > causes emcc to crash. > > I’ve asked about this on the Boehm GC mailing list with no luck. > > I modified the standard Boehm build instructions according to standard > emscripten practice and based on the changes to the GC library itself: > > autoreconf -vif > automake --add-missing > emconfigure ./configure --prefix=$OUTPUT --without-threads > --disable-threads __EMSCRIPTEN__=1 EMSCRIPTEN=1 > emmake make > make install > > This produces an LLVM bitcode file in $OUTPUT/lib/libgc.dylib (OS X > 10.9.5) which, when disassembled, appears to contain the relevant symbols, > code, and the target triple asmjs-unknown-emscripten. But linking even a > minimal program against this cases emcc (from the portable SDK, I’ve tried > 1.22 and 1.25) to fail. > > Example program: > > #include<gc.h> > int main() { > GC_INIT(); // Initialize the GC allocator > return 0; > } > > Compiled via: > emcc –g –I $OUTPUT/include –L$(OUTPUT)/lib –lgc boehm.c > > Produces: > fs.js:427 > return binding.open(pathModule._makeLong(path), stringToFlags(flags), > mode); > ^ > Error: ENOENT, no such file or directory '--' > at Object.fs.openSync (fs.js:427:18) > at Object.fs.readFileSync (fs.js:284:15) > at read (.../external/emsdk/emscripten/1.22.0/src/compiler.js:57:34) > at Object.<anonymous> > (.../external/emsdk/emscripten/1.22.0/src/compiler.js:145:29) > at Module._compile (module.js:456:26) > at Object.Module._extensions..js (module.js:474:10) > at Module.load (module.js:356:32) > at Function.Module._load (module.js:312:12) > at Function.Module.runMain (module.js:497:10) > at startup (node.js:119:16) > Traceback (most recent call last): > File ".../external/emsdk/emscripten/1.22.0/emscripten.py", line 1490, in > <module> > _main(environ=os.environ) > File ".../external/emsdk/emscripten/1.22.0/emscripten.py", line 1478, in > _main > temp_files.run_and_clean(lambda: main( > File ".../external/emsdk/emscripten/1.22.0/tools/tempfiles.py", line 39, > in run_and_clean > return func() > File ".../external/emsdk/emscripten/1.22.0/emscripten.py", line 1486, in > <lambda> > DEBUG_CACHE=DEBUG_CACHE, > File ".../external/emsdk/emscripten/1.22.0/emscripten.py", line 1373, in > main > jcache=jcache, temp_files=temp_files, DEBUG=DEBUG, > DEBUG_CACHE=DEBUG_CACHE) > File ".../external/emsdk/emscripten/1.22.0/emscripten.py", line 861, in > emscript_fast > cwd=path_from_root('src'), error_limit=300) > File ".../external/emsdk/emscripten/1.22.0/tools/jsrun.py", line 43, 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 > ['.../external/emsdk/node/0.10.18_64bit/bin/node', > '.../external/emsdk/emscripten/1.22.0/src/compiler.js', '--', > '/var/folders/nx/_cvrfktd5cs5h3ktk6v3z310qn9lg1/T/tmp6TBpfX.txt', ';', > 'glue'] to finish with return code 0, but it returned with code 8 instead! > Output: > Traceback (most recent call last): > File "external/emsdk/emscripten/1.22.0/emcc", line 1642, in <module> > final = shared.Building.emscripten(final, append_ext=False, > extra_args=extra_args) > File ".../external/emsdk/emscripten/1.22.0/tools/shared.py", line 1464, > in emscripten > assert os.path.exists(filename + '.o.js'), 'Emscripten failed to > generate .js' > AssertionError: Emscripten failed to generate .js > > A very similar stack trace showed up in another recent mail to this list > (https://groups.google.com/forum/#!topic/emscripten-discuss/Wn6YnoHu9XQ). > > Has anyone had more success than this? Am I missing another > emscripten-specific build tweak? > > Thanks in advance, > Colin > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
