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

compiler_builtins 0.1.20 (likely) broke xargo compilation #322

Closed
RalfJung opened this issue Nov 8, 2019 · 3 comments · Fixed by #324
Closed

compiler_builtins 0.1.20 (likely) broke xargo compilation #322

RalfJung opened this issue Nov 8, 2019 · 3 comments · Fixed by #324

Comments

@RalfJung
Copy link
Member

RalfJung commented Nov 8, 2019

Since compiler_builtins 0.1.20 was released, Miri is broken on macOS and Windows as xargo fails to build libstd. (Currently latest xargo ignores the lockfile, so it will always build libstd with the latest version of all involved crates. A fix for that is hopefully going to be released soon, but that seems orthogonal.)

On Windows, the error is

error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\appveyor\\AppData\\Local\\rust-lang\\miri\\cache\\HOST\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.0.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.1.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.10.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.11.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.12.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.13.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.14.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.15.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.2.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.3.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.4.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.5.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.6.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.7.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.8.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.std.9frsuiy7-cgu.9.rcgu.o" "/OUT:C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.dll" "/DEF:C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\lib.def" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.2qzihvbkmjhq7pfa.rcgu.o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.4f5mgpkh8dli7sc3.rcgu.o" "/OPT:REF,ICF" "/DEBUG" "/LIBPATH:C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps" "/LIBPATH:C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\release\\deps" "/LIBPATH:C:\\Users\\appveyor\\AppData\\Local\\rust-lang\\miri\\cache\\HOST\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libpanic_unwind-275f615d9b39f3f1.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libhashbrown-590ae4c0395f691e.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\librustc_std_workspace_alloc-3d6a7ba205ab520a.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libbacktrace-00e9a9ccf2272490.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\librustc_demangle-baf1d7d5cac013c3.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libunwind-bf411db0c0e3a904.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libcfg_if-dbb439db3e845984.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\liblibc-40cce4e31e001aba.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\liballoc-d04d3bd41898dd94.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\librustc_std_workspace_core-dea927fe85ff3b02.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libcore-ea34e7f78ace01ca.rlib" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\rustcuPQ9c1\\libcompiler_builtins-37c094553672d784.rlib" "msvcrt.lib" "/DLL" "/IMPLIB:C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\xargo.4aGLo778seq6\\target\\x86_64-pc-windows-msvc\\release\\deps\\std.dll.lib"
  = note:    Creating library C:\Users\appveyor\AppData\Local\Temp\1\xargo.4aGLo778seq6\target\x86_64-pc-windows-msvc\release\deps\std.dll.lib and object C:\Users\appveyor\AppData\Local\Temp\1\xargo.4aGLo778seq6\target\x86_64-pc-windows-msvc\release\deps\std.dll.exp
          libcompiler_builtins-37c094553672d784.rlib(compiler_builtins-37c094553672d784.compiler_builtins.1coylv34-cgu.5.rcgu.o) : error LNK2019: unresolved external symbol __sync_val_compare_and_swap_16 referenced in function __llvm_memcpy_element_unordered_atomic_16
          libcompiler_builtins-37c094553672d784.rlib(compiler_builtins-37c094553672d784.compiler_builtins.1coylv34-cgu.5.rcgu.o) : error LNK2019: unresolved external symbol __sync_lock_test_and_set_16 referenced in function __llvm_memcpy_element_unordered_atomic_16
          C:\Users\appveyor\AppData\Local\Temp\1\xargo.4aGLo778seq6\target\x86_64-pc-windows-msvc\release\deps\std.dll : fatal error LNK1120: 2 unresolved externals
          
error: aborting due to previous error
error: could not compile `std`.

and on macOS, it starts with

error: linking with `cc` failed: exit code: 1

  |

  = note: "cc" "-m32" "-L" "/Users/travis/Library/Caches/org.rust-lang.miri/lib/rustlib/i686-apple-darwin/lib" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.0.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.1.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.10.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.11.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.12.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.13.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.14.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.15.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.2.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.3.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.4.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.5.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.6.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.7.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.8.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.std.8sfdv10m-cgu.9.rcgu.o" "-o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/libstd.dylib" "-Wl,-exported_symbols_list,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/list" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.2lg0awms1xbqknxx.rcgu.o" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps/std.4i86n2lmpfdbpci3.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/deps" "-L" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/release/deps" "-L" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/xargo.hwyVdmi27hf6/target/i686-apple-darwin/release/build/backtrace-sys-e15093736628d2c1/out" "-L" "/Users/travis/Library/Caches/org.rust-lang.miri/lib/rustlib/i686-apple-darwin/lib" "-lSystem" "-lresolv" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libpanic_unwind-574d9f2b20722c6c.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libhashbrown-8c9410f43c34c375.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/librustc_std_workspace_alloc-0a921424f3e15b5f.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libbacktrace-8630f1fe1b083f0a.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/librustc_demangle-844493b74214a800.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libunwind-0bbc6edf26ee0820.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libcfg_if-f2ef1f45d53b2bd2.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/liblibc-16470196836e92e2.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/liballoc-cdac88354d321e5c.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/librustc_std_workspace_core-d76be33b42b0f265.rlib" "-Wl,-force_load" "-Wl,/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libcore-f92fb94d33fd15c9.rlib" "/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libcompiler_builtins-cb06eb4f5cb108d6.rlib" "-lc" "-lm" "-dynamiclib" "-Wl,-dylib"

  = note: ld: warning: cannot export hidden symbol compiler_builtins::mem::memcpy::h1f97dfde851c02dc from /var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libcompiler_builtins-cb06eb4f5cb108d6.rlib(compiler_builtins-cb06eb4f5cb108d6.compiler_builtins.crtnmu5o-cgu.5.rcgu.o)

          ld: warning: cannot export hidden symbol compiler_builtins::mem::memmove::h870d040713cf2ddf from /var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/rustcucaNs8/libcompiler_builtins-cb06eb4f5cb108d6.rlib(compiler_builtins-cb06eb4f5cb108d6.compiler_builtins.crtnmu5o-cgu.5.rcgu.o)
[...]
@RalfJung
Copy link
Member Author

RalfJung commented Nov 8, 2019

Or maybe that breakage is expected? Are compiler_builtins updates semver-compatible in the sense that old compilers can still work when using newer compiler_builtins?

@mati865
Copy link

mati865 commented Nov 9, 2019

Most likely cause: #311

alexcrichton added a commit to alexcrichton/compiler-builtins that referenced this issue Nov 11, 2019
Don't emit the intrinsics for platforms which don't actually have the
instructions to do atomic loads/stores.

Closes rust-lang#322
@alexcrichton
Copy link
Member

I think this should be fixed with #324, and when merged I'll make a new release. Thanks for the report!

alexcrichton added a commit that referenced this issue Nov 11, 2019
Don't emit the intrinsics for platforms which don't actually have the
instructions to do atomic loads/stores.

Closes #322
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