Skip to content

llvm-nm error The end of the file was unexpectedly encountered #10195

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

Closed
etam opened this issue Jan 13, 2020 · 9 comments · Fixed by #10300
Closed

llvm-nm error The end of the file was unexpectedly encountered #10195

etam opened this issue Jan 13, 2020 · 9 comments · Fixed by #10300

Comments

@etam
Copy link

etam commented Jan 13, 2020

Steps to reproduce:

Console output

$ export EMCC_DEBUG=1
$ cargo build --release
   Compiling proc-macro2 v1.0.7
   Compiling unicode-xid v0.2.0
   Compiling syn v1.0.13
   Compiling libc v0.2.66
   Compiling autocfg v1.0.0
   Compiling cc v1.0.50
   Compiling proc-macro2 v0.4.30
   Compiling unicode-xid v0.1.0
   Compiling cfg-if v0.1.10
   Compiling bitflags v1.2.1
   Compiling byteorder v1.3.2
   Compiling ryu v1.0.2
   Compiling failure_derive v0.1.6
   Compiling serde v1.0.104
   Compiling syn v0.15.44
   Compiling unicode-segmentation v1.6.0
   Compiling rustc-demangle v0.1.16
   Compiling crc32fast v1.2.0
   Compiling adler32 v1.0.4
   Compiling unicode-width v0.1.7
   Compiling ansi_term v0.11.0
   Compiling strsim v0.8.0
   Compiling itoa v0.4.4
   Compiling vec_map v0.8.1
   Compiling heck v0.3.1
   Compiling inflate v0.4.5
   Compiling num-traits v0.2.11
   Compiling num-complex v0.2.4
   Compiling textwrap v0.11.0
   Compiling atty v0.2.14
   Compiling quote v1.0.2
   Compiling quote v0.6.13
   Compiling deflate v0.7.20
   Compiling clap v2.33.0
   Compiling png v0.15.3
   Compiling backtrace-sys v0.1.32
   Compiling backtrace v0.3.40
   Compiling synstructure v0.12.3
   Compiling structopt-derive v0.2.18
   Compiling serde_derive v1.0.104
   Compiling structopt v0.2.18
   Compiling failure v0.1.6
   Compiling serde_json v1.0.44
   Compiling gwasm-dispatcher v0.1.0 (https://github.com/golemfactory/gwasm-runner.git#15ddb30b)
   Compiling mandelbrot v0.2.0 (/home/etam/tmp/mandelbrot)
error: linking with `emcc` failed: exit code: 1
  |
  = note: "emcc" "-s" "DISABLE_EXCEPTION_CATCHING=0" "-L" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.0.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.1.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.10.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.11.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.12.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.13.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.14.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.15.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.2.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.3.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.4.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.5.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.6.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.7.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.8.rcgu.o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.9.rcgu.o" "-o" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.js" "-s" "EXPORTED_FUNCTIONS=[\"_main\",\"_rust_eh_personality\"]" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.1rfrl3mew2r8803c.rcgu.o" "-O3" "--memory-init-file" "0" "-g0" "-s" "DEFAULT_LIBRARY_FUNCS_TO_INCLUDE=[]" "-L" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps" "-L" "/home/etam/tmp/mandelbrot/target/release/deps" "-L" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libpng-de5b7bee53fd8754.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libdeflate-29ab8f13b60ecaae.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbyteorder-7ba02cffeb4aa4e2.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libinflate-9329e8d514927f22.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libadler32-58666e44bcb2dcc2.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libcrc32fast-76f771a67b511a97.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libgwasm_dispatcher-f4aafccc2ad8d437.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libserde_json-7070b53e3b937a1c.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libryu-e300e02c35513cbf.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libitoa-38d6b1be474be5a7.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libserde-dafcc7fe83eef608.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libfailure-076412769f07d8cf.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbacktrace-97b4a24f4a438417.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libcfg_if-532e76cf484c0ad1.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/librustc_demangle-8a0d82d38445d847.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libstructopt-a1802fc697a5d5dd.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libclap-fc924e4dcca92395.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libvec_map-c58d2c8272dfd24c.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libtextwrap-8f3b9cce79399ad2.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libunicode_width-da80a37bce84fbf3.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libstrsim-14aa47ec8b7faee4.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbitflags-22ef1745bfb3f0f0.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libatty-d4114e894fb087cf.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/liblibc-a0bb6670f2d3073f.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libansi_term-ba4c28b82f9218b2.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libnum_complex-865ab62f15ba6c27.rlib" "/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libnum_traits-f29cec29f1198ab7.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libstd-b6414ae168385702.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libpanic_unwind-efbc2c947951b8cc.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libhashbrown-b177382d9a04ffbe.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_alloc-ba7d2244d33447d5.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libbacktrace-39569dc87e4ea301.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_demangle-f83165e777dccb8d.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libunwind-10b085de263b1750.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcfg_if-9a4a22edf44da957.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/liblibc-68fabc677efa98de.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/liballoc-026dc0061b48e8b6.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_core-7bf75bb619341145.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcore-ef54709e300503ed.rlib" "/home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcompiler_builtins-4ed27d8420cb4abc.rlib" "-l" "c" "-l" "c" "-s" "BINARYEN_ASYNC_COMPILATION=0" "-s" "ALLOW_MEMORY_GROWTH=1" "-s" "ERROR_ON_UNDEFINED_SYMBOLS=1" "-s" "ASSERTIONS=1" "-s" "ABORTING_MALLOC=0" "-Wl,--fatal-warnings"
  = note: shared:DEBUG: EM_CONFIG is located in /home/etam/.emscripten
          shared:DEBUG: JAVA not defined in /home/etam/.emscripten, using "java"
          cache:DEBUG: PID 30179 acquiring multiprocess file lock to Emscripten cache at /home/etam/.emscripten_cache
          cache:DEBUG: done
          cache:DEBUG: PID 30179 released multiprocess file lock to Emscripten cache at /home/etam/.emscripten_cache
          shared:DEBUG: check tells us to use wasm backend
          emcc:WARNING: invocation: /home/etam/code/github/emscripten-core/emsdk/upstream/emscripten/emcc.py -s DISABLE_EXCEPTION_CATCHING=0 -L /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.0.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.1.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.10.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.11.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.12.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.13.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.14.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.15.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.2.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.3.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.4.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.5.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.6.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.7.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.8.rcgu.o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.9.rcgu.o -o /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.js -s EXPORTED_FUNCTIONS=["_main","_rust_eh_personality"] /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.1rfrl3mew2r8803c.rcgu.o -O3 --memory-init-file 0 -g0 -s DEFAULT_LIBRARY_FUNCS_TO_INCLUDE=[] -L /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps -L /home/etam/tmp/mandelbrot/target/release/deps -L /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libpng-de5b7bee53fd8754.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libdeflate-29ab8f13b60ecaae.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbyteorder-7ba02cffeb4aa4e2.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libinflate-9329e8d514927f22.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libadler32-58666e44bcb2dcc2.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libcrc32fast-76f771a67b511a97.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libgwasm_dispatcher-f4aafccc2ad8d437.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libserde_json-7070b53e3b937a1c.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libryu-e300e02c35513cbf.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libitoa-38d6b1be474be5a7.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libserde-dafcc7fe83eef608.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libfailure-076412769f07d8cf.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbacktrace-97b4a24f4a438417.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libcfg_if-532e76cf484c0ad1.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/librustc_demangle-8a0d82d38445d847.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libstructopt-a1802fc697a5d5dd.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libclap-fc924e4dcca92395.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libvec_map-c58d2c8272dfd24c.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libtextwrap-8f3b9cce79399ad2.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libunicode_width-da80a37bce84fbf3.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libstrsim-14aa47ec8b7faee4.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbitflags-22ef1745bfb3f0f0.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libatty-d4114e894fb087cf.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/liblibc-a0bb6670f2d3073f.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libansi_term-ba4c28b82f9218b2.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libnum_complex-865ab62f15ba6c27.rlib /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libnum_traits-f29cec29f1198ab7.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libstd-b6414ae168385702.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libpanic_unwind-efbc2c947951b8cc.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libhashbrown-b177382d9a04ffbe.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_alloc-ba7d2244d33447d5.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libbacktrace-39569dc87e4ea301.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_demangle-f83165e777dccb8d.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libunwind-10b085de263b1750.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcfg_if-9a4a22edf44da957.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/liblibc-68fabc677efa98de.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/liballoc-026dc0061b48e8b6.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/librustc_std_workspace_core-7bf75bb619341145.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcore-ef54709e300503ed.rlib /home/etam/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-emscripten/lib/libcompiler_builtins-4ed27d8420cb4abc.rlib -l c -l c -s BINARYEN_ASYNC_COMPILATION=0 -s ALLOW_MEMORY_GROWTH=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s ASSERTIONS=1 -s ABORTING_MALLOC=0 -Wl,--fatal-warnings  (in /home/etam/tmp/mandelbrot)
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/upstream/bin/clang++ --version
          root:DEBUG: Checking JS engine ['/home/etam/code/github/emscripten-core/emsdk/node/12.9.1_64bit/bin/node']
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/node/12.9.1_64bit/bin/node --version
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/upstream/bin/llc --version
          shared:INFO: (Emscripten: Running sanity checks)
          shared:DEBUG: successfully executed java -version
          shared:DEBUG: Option -s BINARYEN_ASYNC_COMPILATION=0 has been removed from the codebase. (setting renamed to WASM_ASYNC_COMPILATION)
          shared:WARNING: ignoring unsupported linker flag: `--fatal-warnings`
          emcc:DEBUG: asm.js opts not forced by user or an option that depends them, and we do not intend to run the asm.js, so disabling and leaving opts to the binaryen optimizer
          emcc:DEBUG: compiling to bitcode
          emcc:DEBUG: emcc step "parse arguments and setup" took 0.16 seconds
          cache:DEBUG: PID 30179 acquiring multiprocess file lock to Emscripten cache at /home/etam/.emscripten_cache/wasm-obj
          cache:DEBUG: done
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.0.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.1.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.10.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.11.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.12.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.13.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.14.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.15.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.2.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.3.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.4.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.5.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.6.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.7.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.8.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.mandelbrot.cj0l21d0-cgu.9.rcgu.o
          emcc:DEBUG: using object file: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/mandelbrot.1rfrl3mew2r8803c.rcgu.o
          emcc:DEBUG: using static library: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libpng-de5b7bee53fd8754.rlib
          no symbols
          no symbols
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/upstream/bin/llvm-nm --print-armap /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libpng-de5b7bee53fd8754.rlib
          emcc:DEBUG: using static library: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libdeflate-29ab8f13b60ecaae.rlib
          no symbols
          no symbols
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/upstream/bin/llvm-nm --print-armap /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libdeflate-29ab8f13b60ecaae.rlib
          emcc:DEBUG: using static library: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbyteorder-7ba02cffeb4aa4e2.rlib
          no symbols
          no symbols
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/upstream/bin/llvm-nm --print-armap /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libbyteorder-7ba02cffeb4aa4e2.rlib
          emcc:DEBUG: using static library: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libinflate-9329e8d514927f22.rlib
          no symbols
          no symbols
          shared:DEBUG: successfully executed /home/etam/code/github/emscripten-core/emsdk/upstream/bin/llvm-nm --print-armap /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libinflate-9329e8d514927f22.rlib
          emcc:DEBUG: using static library: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libadler32-58666e44bcb2dcc2.rlib
          no symbols
          /home/etam/code/github/emscripten-core/emsdk/upstream/bin/llvm-nm: error: /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libadler32-58666e44bcb2dcc2.rlib(rust.metadata.bin) The end of the file was unexpectedly encountered
          
          cache:DEBUG: PID 30179 released multiprocess file lock to Emscripten cache at /home/etam/.emscripten_cache/wasm-obj
          Traceback (most recent call last):
            File "/home/etam/code/github/emscripten-core/emsdk/upstream/emscripten/emcc.py", line 3748, in <module>
              sys.exit(run(sys.argv))
            File "/home/etam/code/github/emscripten-core/emsdk/upstream/emscripten/emcc.py", line 1993, in run
              ensure_archive_index(input_file)
            File "/home/etam/code/github/emscripten-core/emsdk/upstream/emscripten/emcc.py", line 476, in ensure_archive_index
              stdout = run_process([shared.LLVM_NM, '--print-armap', archive_file], stdout=PIPE).stdout
            File "/home/etam/code/github/emscripten-core/emsdk/upstream/emscripten/tools/shared.py", line 195, in run_process
              result.check_returncode()
            File "/home/etam/code/github/emscripten-core/emsdk/upstream/emscripten/tools/shared.py", line 168, in check_returncode
              raise Py2CalledProcessError(returncode=self.returncode, cmd=self.args, output=self.stdout, stderr=self.stderr)
          tools.shared.Py2CalledProcessError: Command '['/home/etam/code/github/emscripten-core/emsdk/upstream/bin/llvm-nm', '--print-armap', '/home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libadler32-58666e44bcb2dcc2.rlib']' returned non-zero exit status 1
          

error: aborting due to previous error

error: could not compile `mandelbrot`.

To learn more, run the command again with --verbose.

/tmp/emscripten_temp/ is empty

Environment

$ emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.5
clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project be2b7ea89ab43d6827634fbdbbd2661e1f242527)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/etam/code/github/emscripten-core/emsdk/upstream/bin
Found candidate GCC installation: /usr/lib64/gcc/x86_64-suse-linux/9
Selected GCC installation: /usr/lib64/gcc/x86_64-suse-linux/9
Candidate multilib: .;@m64
Selected multilib: .;@m64

Additional info

With emscripten 1.39.0 and 1.39.1 it compiles fine. Versions 1.39.2 and later are affected.

@etam
Copy link
Author

etam commented Jan 13, 2020

Additional interesting info: After a failed build with 1.39.5 I downgraded emscripten to 1.39.1, rerun compilation without removing target directory and it worked fine. So it seems that the problem is not with how /home/etam/tmp/mandelbrot/target/wasm32-unknown-emscripten/release/deps/libadler32-58666e44bcb2dcc2.rlib(rust.metadata.bin) is created, but how it's read by llvm-nm.

@tlively
Copy link
Member

tlively commented Jan 13, 2020

@sbc100 I thought we had fixed the issue with llvm-nm erroring out trying to read the rust.metadata.bin file in Rust libraries, but it looks like it has regressed. It would be good to add a test that links a Rust library to make sure this doesn't break.

@sbc100
Copy link
Collaborator

sbc100 commented Jan 13, 2020

I think it must of been #9758 where we added support for automatically adding archive indexes.

@sbc100
Copy link
Collaborator

sbc100 commented Jan 13, 2020

Maybe the best solution is to write my own archive header parser to detect the missing index.

@sbc100
Copy link
Collaborator

sbc100 commented Jan 15, 2020

I thought we had a test for this. WIll add one.

@sbc100
Copy link
Collaborator

sbc100 commented Jan 17, 2020

I can't seem to reproduce this when adding random text files to the archive.

Can you send me this .bin file so I can see what it is that is confusing llvm-nm?

@etam
Copy link
Author

etam commented Jan 27, 2020

@sbc100
Copy link
Collaborator

sbc100 commented Jan 28, 2020

The problem seems to be that rust metadata files start with two null bytes which means llvm thinks they are COFF files. Doh.

I filed an llvm bug to try to get that fixed by I'm not sure it will land: https://bugs.llvm.org/show_bug.cgi?id=44683

In the mean time if looks like rust fixed this upstream too: rust-lang/rust#66235

I'm not sure how or when that change to rust-lang makes it into your toolchain but this problem should go away once it does.

sbc100 added a commit that referenced this issue Jan 29, 2020
There is an llvm but that mean that certain binary files get mistaken
for COFF object which means llvm-nm will error out:
  https://bugs.llvm.org/show_bug.cgi?id=44683

Instead write out own trivial ar parser to detect the presence of that
index.

Fixes: #10195
sbc100 added a commit that referenced this issue Jan 30, 2020
There is an llvm but that mean that certain binary files get mistaken
for COFF object which means llvm-nm will error out:
  https://bugs.llvm.org/show_bug.cgi?id=44683

Instead write out own trivial ar parser to detect the presence of that
index.

Fixes: #10195
@sbc100
Copy link
Collaborator

sbc100 commented Jan 30, 2020

Should be fixed in #10300

@sbc100 sbc100 closed this as completed Jan 30, 2020
sbc100 added a commit that referenced this issue Feb 3, 2020
There is an llvm but that mean that certain binary files get mistaken
for COFF object which means llvm-nm will error out:
  https://bugs.llvm.org/show_bug.cgi?id=44683

Instead write out own trivial ar parser to detect the presence of that
index.

Fixes: #10195
sbc100 added a commit that referenced this issue Feb 4, 2020
There is an llvm but that mean that certain binary files get mistaken
for COFF object which means llvm-nm will error out:
  https://bugs.llvm.org/show_bug.cgi?id=44683

Instead write out own trivial ar parser to detect the presence of that
index.

Fixes: #10195
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

Successfully merging a pull request may close this issue.

3 participants