...I don't know how to read such obfuscated bazel error messages sorry ;) It could be about a build target called "errors", which would produce a library file "liberrors.a" from an object file "errors.o" which fails somehow, but that looks like a problem with the build system, not emscripten.
On Monday, 20 May 2019 15:22:23 UTC+2, Tsvi Sabo wrote: > > Thanks Floh, > seems like adding > the above mentioned -isystem flag does seem to work after all, rebuilt > after clean without any errors the `hello-world` example, also i got no > special env but i'm worried about the write permission error, > However, now i happen to stumble upon something really weird, > When i try to separate the example to a header and source file, it does > not build successfully, > > I now get: > > ERROR: /home/tsvi/IOTA_DEV/entangled/common/BUILD:8:1: Linking of rule > '//common:errors' failed (Exit 1): false failed: error executing command > (cd > /home/tsvi/.cache/bazel/_bazel_tsvi/9194043dbd55a599c9568f5a8b5663c8/execroot/org_iota_entangled > > && \ > exec env - \ > > PATH=/home/tsvi/.local/share/umake/bin:/home/tsvi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/tsvi/go:/home/tsvi/go/bin:/home/tsvi/.go/bin > > \ > PWD=/proc/self/cwd \ > /bin/false rcsD bazel-out/asmjs-fastbuild/bin/common/liberrors.a > bazel-out/asmjs-fastbuild/bin/common/_objs/errors/errors.o) > Execution platform: @bazel_tools//platforms:host_platform > Target //common:errors failed to build > > > > On Mon, May 20, 2019 at 4:04 PM Floh <[email protected] <javascript:>> > wrote: > >> Hmm, AFAIK those libraries you are building manually via embuilder.py >> should be built automatically when running emcc for the first time to build >> a program (basically emcc detects that some runtime libraries are missing, >> or are outdated, and builds them "on the fly"). >> >> Your last error (IOError: [Errno 30] Read-only file system: >> '/home/tsvi/.emscripten_cache/asmjs/libc-extras.bc') looks like emcc wants >> to build one of those required runtime libraries, but it can't because it >> doesn't have write-access permissions to the .emscripten_cache directory in >> your home directory. >> >> Do you have some "unusual" Linux environment where write-access to the >> home directory is restricted? Or is bazel running as another user? >> >> Maybe similar permission errors also caused other problems earlier, and >> that's why the bazel tutorial failed. >> >> On Monday, 20 May 2019 14:40:35 UTC+2, Tsvi Sabo wrote: >>> >>> Tried to add to the `cc_toolchain_config.bzl` the missing include dir as >>> `-isystem` flag, >>> >>> Now i get this: >>> >>> cache:INFO: generating system library: libc-extras.bc... (this will be >>> cached in "/home/tsvi/.emscripten_cache/asmjs/libc-extras.bc" for >>> subsequent builds) >>> Traceback (most recent call last): >>> File "external/emscripten_toolchain/emcc.py", line 3308, in <module> >>> sys.exit(run(sys.argv)) >>> File "external/emscripten_toolchain/emcc.py", line 1776, in run >>> extra_files_to_link += system_libs.calculate([f for _, f in >>> sorted(temp_files)] + extra_files_to_link, in_temp, stdout_=None, >>> stderr_=None, forced=forced_stdlibs) >>> File >>> "/home/tsvi/.cache/bazel/_bazel_tsvi/9194043dbd55a599c9568f5a8b5663c8/external/emscripten_toolchain/tools/system_libs.py", >>> >>> line 757, in calculate >>> add_library(lib) >>> File >>> "/home/tsvi/.cache/bazel/_bazel_tsvi/9194043dbd55a599c9568f5a8b5663c8/external/emscripten_toolchain/tools/system_libs.py", >>> >>> line 718, in add_library >>> libfile = shared.Cache.get(name, do_create) >>> File >>> "/home/tsvi/.cache/bazel/_bazel_tsvi/9194043dbd55a599c9568f5a8b5663c8/external/emscripten_toolchain/tools/cache.py", >>> >>> line 135, in get >>> shutil.copyfile(temp, cachename) >>> File "/usr/lib/python2.7/shutil.py", line 97, in copyfile >>> with open(dst, 'wb') as fdst: >>> IOError: [Errno 30] Read-only file system: >>> '/home/tsvi/.emscripten_cache/asmjs/libc-extras.bc' >>> Target //:helloworld.js failed to build >>> Use --verbose_failures to see the command lines of failed build steps. >>> >>> On Mon, May 20, 2019 at 2:26 PM Tsvi Sabo <[email protected]> wrote: >>> >>>> An update in case anyone was looking into it, >>>> `cxx` changed to `c++` and `wasm-libc` to `libc-wasm` so a correct way >>>> to run the script now is: >>>> >>>> `python embuilder.py build dlmalloc libc++ libc gl libc++abi >>>> libc++_noexcept libc-wasm` >>>> >>>> >>>> >>>> >>>> >>>> On Mon, May 20, 2019 at 2:05 PM Tsvi Sabo <[email protected]> wrote: >>>> >>>>> I think i might have a hint for how to solve it, >>>>> I am missing some standard library files, and there's a way to >>>>> generate those running: >>>>> "python embuilder.py build dlmalloc libcxx libc gl libcxxabi >>>>> libcxx_noexcept wasm-libc" >>>>> from `external/emscripten_toolchain` >>>>> but when i do that, i get: >>>>> >>>>> embuilder:INFO: building and verifying dlmalloc >>>>> embuilder:INFO: ...success >>>>> embuilder:INFO: building and verifying libcxx >>>>> embuilder:ERROR: unfamiliar build target: libcxx >>>>> >>>>> Any idea? >>>>> >>>>> On Mon, May 20, 2019 at 12:55 PM Tsvi Sabo <[email protected]> wrote: >>>>> >>>>>> Thanks a lot for your reply, will try it, but the reason i was using >>>>>> the Bazel to pull and build emscripten rather than installing >>>>>> the SDK is that i would like to have a Bazel target which i can build >>>>>> with emscripten on any platform, >>>>>> you think that's possible? >>>>>> >>>>>> On Mon, May 20, 2019 at 12:39 PM Floh <[email protected]> wrote: >>>>>> >>>>>>> Wow, that looks overly complicated (I guess that's Bazel's fault). >>>>>>> >>>>>>> If you are on a Mac, the easiest way to get a working emscripten >>>>>>> environment is via homebrew: >>>>>>> >>>>>>> > brew install emscripten >>>>>>> >>>>>>> On Linux, check whether the emscripten SDK is provided by your >>>>>>> distro's package manager, otherwise (or if on Windows), follow the >>>>>>> steps >>>>>>> described here to install the emscripten SDK: >>>>>>> >>>>>>> https://emscripten.org/docs/getting_started/downloads.html >>>>>>> >>>>>>> ...and to test whether this worked, write a small hello.c: >>>>>>> >>>>>>> #include <stdio.h> >>>>>>> int main() { >>>>>>> printf("Hello World!\n"); >>>>>>> return 0; >>>>>>> } >>>>>>> >>>>>>> ...then run: >>>>>>> >>>>>>> > emcc hello.c -o hello.html >>>>>>> ... >>>>>>> >>>>>>> ..this should produce 3 files: hello.html, hello.js and hello.wasm >>>>>>> >>>>>>> ...to test whether the produced application works: >>>>>>> >>>>>>> > emrun hello.html >>>>>>> Starting browser: open http://localhost:6931/hello.html >>>>>>> ... >>>>>>> >>>>>>> ...this should open the system's default browser and show the >>>>>>> emscripten standard demo page, at the bottom of the page there should >>>>>>> be a >>>>>>> "Hello World!" message in a text output field. >>>>>>> >>>>>>> From there, move to more complex stuff. But I would move to build >>>>>>> systems only when you're sure that the emscripten installation itself >>>>>>> works. >>>>>>> >>>>>>> Build systems just add more things that can go wrong, and the >>>>>>> additional "obfuscation layer" (which the build systems add on top of >>>>>>> the >>>>>>> compiler toolchain) can make it harder to find the actual problems. >>>>>>> >>>>>>> Cheers, >>>>>>> -Floh. >>>>>>> >>>>>>> On Monday, 20 May 2019 11:01:32 UTC+2, Tsvi Sabo wrote: >>>>>>>> >>>>>>>> Following this tutorial: >>>>>>>> >>>>>>>> https://docs.bazel.build/versions/master/tutorial/cc-toolchain-config.html >>>>>>>> And after fixing some of the configuration's paths, >>>>>>>> i manage to build a really simple `hello-world` `c` file, but when >>>>>>>> i follow the example completely, and include some cpp headers such as >>>>>>>> <ctime>, i get the following: >>>>>>>> >>>>>>>> "In file included from >>>>>>>> /home/tsvi/IOTA_DEV/entangled/hello-world.cc:2: >>>>>>>> In file included from >>>>>>>> external/emscripten_toolchain/system/include/libcxx/iostream:38: >>>>>>>> In file included from >>>>>>>> external/emscripten_toolchain/system/include/libcxx/ios:216: >>>>>>>> external/emscripten_toolchain/system/include/libcxx/__locale:417:32: >>>>>>>> error: use of undeclared identifier '_CTYPE_S' >>>>>>>> static const mask space = _CTYPE_S;" >>>>>>>> >>>>>>>> >>>>>>>> So, i am guessing, it might be using wrong include paths of clang >>>>>>>> after all? >>>>>>>> How do i fix this? >>>>>>>> Thanks >>>>>>>> >>>>>>> -- >>>>>>> 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]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/9cff3f50-bee1-43ac-be9b-f7076024d47e%40googlegroups.com >>>>>>> >>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/9cff3f50-bee1-43ac-be9b-f7076024d47e%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>> *IOTA Foundation* >>> c/o Nextland >>> Strassburgerstraße 55 >>> 10405 Berlin, Germany >>> >>> Board of Directors: Sergey Ivancheglo, Serguei Popov, Ralf Rottmann, >>> Dominik Schiener, David Sønstebø >>> >>> ID/Company No.: 3416/1234/2 >>> >> -- >> 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] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/emscripten-discuss/1f8ccc46-13e3-44c7-950c-d67d6f708f14%40googlegroups.com >> >> <https://groups.google.com/d/msgid/emscripten-discuss/1f8ccc46-13e3-44c7-950c-d67d6f708f14%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > *IOTA Foundation* > c/o Nextland > Strassburgerstraße 55 > 10405 Berlin, Germany > > Board of Directors: Sergey Ivancheglo, Serguei Popov, Ralf Rottmann, > Dominik Schiener, David Sønstebø > > ID/Company No.: 3416/1234/2 > -- 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/15c844c4-8bba-4a48-a9ab-e4599779a2f3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
