Skip to content

undefined symbol: compiler_builtins::mem when building with cranelift + lld-link.exe on windows (and lld: error on gnu) #1480

Open

Description

Issue

When I try compiling any rust program with the combination of:

  • LLD 18.1.2
  • Cranklift from 4/5/2024 cg_clif-x86_64-pc-windows-msvc.tar.xz

I get these errors

C:\Users\donblas\Programming\cranelift-march-6\cargo-clif.exe build
   Compiling link-crane-example v0.1.0 (C:\Users\donblas\Programming\link-crane-example)
error: linking with `C:\Program Files\LLVM\bin\lld-link.exe` failed: exit code: 1
  |
  = note: "C:\\Program Files\\LLVM\\bin\\lld-link.exe" "-flavor" "link" "/DEF:C:\\Users\\donblas\\AppData\\Local\\Temp\\rustcZYRz07\\lib.def" "/NOLOGO" "C:\\Users\\donblas\\AppData\\Local\\Temp\\rustcZYRz07\\symbols.o" "C:\\Users\\donblas\\Programming\\link-crane-example\\target\\debug\\deps\\shufflelib.1efll5bx2e00ud32.rcgu.o" "C:\\Users\\donblas\\Programming\\link-crane-example\\target\\debug\\deps\\shufflelib.1m5mg95wxg41i1ui.rcgu.rmeta" "C:\\Users\\donblas\\Programming\\link-crane-example\\target\\debug\\deps\\shufflelib.allocator_shim.rcgu.o" "/LIBPATH:C:\\Users\\donblas\\Programming\\link-crane-example\\target\\debug\\deps" "/LIBPATH:C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-31276ed477bdd0d6.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_abort-af2fd9d19bb9fc21.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-73ce6d0b11677fa9.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-fd98a2200ad11eae.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-35a7315e06cc80c2.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-0b437564369036c4.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-90a55d17c0fe05f2.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-e1fe54e8b5ad24c1.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-2e452438aaad9a38.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-967980aca3096147.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-e02f187c876c9b12.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-e55a56e004e0a413.rlib" "C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-b9914bbc4f629d43.rlib" "kernel32.lib" "advapi32.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "synchronization.lib" "kernel32.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\donblas\\Programming\\cranelift-march-6\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\Users\\donblas\\Programming\\link-crane-example\\target\\debug\\deps\\shufflelib.dll" "/OPT:REF,NOICF" "/DLL" "/IMPLIB:C:\\Users\\donblas\\Programming\\link-crane-example\\target\\debug\\deps\\shufflelib.dll.lib" "/DEBUG" "/PDBALTPATH:%_PDB%"
  = note: lld-link: error: <root>: undefined symbol: compiler_builtins::mem::bcmp::hf89d8ec69417b8af
          lld-link: error: <root>: undefined symbol: compiler_builtins::mem::memcmp::h5e7dc66d5bda6f4b
          lld-link: error: <root>: undefined symbol: compiler_builtins::mem::memcpy::h7112795738f157a8
          lld-link: error: <root>: undefined symbol: compiler_builtins::mem::memset::hd5a36185bfe23a75
          lld-link: error: <root>: undefined symbol: compiler_builtins::mem::strlen::h51798b0eccb4a025
          lld-link: error: <root>: undefined symbol: compiler_builtins::mem::memmove::h85e5af0d67f5ae71
          lld-link: error: undefined symbol: compiler_builtins::mem::bcmp::hf89d8ec69417b8af
          >>> referenced by C:\Users\donblas\AppData\Local\Temp\rustcZYRz07\symbols.o
          >>> referenced by libcompiler_builtins-b9914bbc4f629d43.rlib(compiler_builtins-b9914bbc4f629d43.compiler_builtins.88e0577c9cba8cfc-cgu.002.rcgu.o)

          lld-link: error: undefined symbol: compiler_builtins::mem::memcmp::h5e7dc66d5bda6f4b
          >>> referenced by C:\Users\donblas\AppData\Local\Temp\rustcZYRz07\symbols.o
          >>> referenced by libcompiler_builtins-b9914bbc4f629d43.rlib(compiler_builtins-b9914bbc4f629d43.compiler_builtins.88e0577c9cba8cfc-cgu.002.rcgu.o):(.refptr._ZN17compiler_builtins3mem6memcmp17h5e7dc66d5bda6f4bE)

          lld-link: error: undefined symbol: compiler_builtins::mem::memcpy::h7112795738f157a8
          >>> referenced by C:\Users\donblas\AppData\Local\Temp\rustcZYRz07\symbols.o
          >>> referenced by libcompiler_builtins-b9914bbc4f629d43.rlib(compiler_builtins-b9914bbc4f629d43.compiler_builtins.88e0577c9cba8cfc-cgu.002.rcgu.o)

          lld-link: error: undefined symbol: compiler_builtins::mem::memset::hd5a36185bfe23a75
          >>> referenced by C:\Users\donblas\AppData\Local\Temp\rustcZYRz07\symbols.o
          >>> referenced by libcompiler_builtins-b9914bbc4f629d43.rlib(compiler_builtins-b9914bbc4f629d43.compiler_builtins.88e0577c9cba8cfc-cgu.002.rcgu.o)

          lld-link: error: undefined symbol: compiler_builtins::mem::strlen::h51798b0eccb4a025
          >>> referenced by C:\Users\donblas\AppData\Local\Temp\rustcZYRz07\symbols.o
          >>> referenced by libcompiler_builtins-b9914bbc4f629d43.rlib(compiler_builtins-b9914bbc4f629d43.compiler_builtins.88e0577c9cba8cfc-cgu.002.rcgu.o)

          lld-link: error: undefined symbol: compiler_builtins::mem::memmove::h85e5af0d67f5ae71
          >>> referenced by C:\Users\donblas\AppData\Local\Temp\rustcZYRz07\symbols.o
          >>> referenced by libcompiler_builtins-b9914bbc4f629d43.rlib(compiler_builtins-b9914bbc4f629d43.compiler_builtins.88e0577c9cba8cfc-cgu.002.rcgu.o)

Steps to Reproduce

  • git clone down https://github.com/chamons/link-crane-example
  • Update .cargo\config.toml to point to your lld-link.exe location (if not in Program Files\LLVM\bin)
  • C:\Users\donblas\Programming\cranelift-march-6\cargo-clif.exe build (change path to clif)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.O-windowsOperating system: Windows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions