Skip to content

gnullvm: link libunwind statically by default#159782

Draft
mati865 wants to merge 2 commits into
rust-lang:mainfrom
mati865:gnullvm-static-libunwind
Draft

gnullvm: link libunwind statically by default#159782
mati865 wants to merge 2 commits into
rust-lang:mainfrom
mati865:gnullvm-static-libunwind

Conversation

@mati865

@mati865 mati865 commented Jul 23, 2026

Copy link
Copy Markdown
Member

Previously shared library was used meaning that programs and libraries couldn't be loaded if libunwind.dll was missing from the PATH. Using Wine (on Linux) because it better shows the problem (and is more convenient):

❯ cargo new hello &> /dev/null

❯ cargo rustc --target x86_64-pc-windows-gnullvm &> /dev/null

❯ wine target/x86_64-pc-windows-gnullvm/debug/hello.exe
0024:err:module:import_dll Library libunwind.dll (which is needed by L"Z:\\tmp\\hello\\target\\x86_64-pc-windows-gnullvm\\debug\\hello.exe") not found
0024:err:module:loader_init Importing dlls for L"Z:\\tmp\\hello\\target\\x86_64-pc-windows-gnullvm\\debug\\hello.exe" failed, status c0000135

❯ llvm-readobj --coff-imports target/x86_64-pc-windows-gnullvm/debug/hello.exe
...
Import {
  Name: libunwind.dll
  ImportLookupTableRVA: 0x3D308
  ImportAddressTableRVA: 0x3D678
  Symbol: _GCC_specific_handler (0)
  Symbol: _Unwind_DeleteException (0)
  Symbol: _Unwind_GetDataRelBase (0)
  Symbol: _Unwind_GetIPInfo (0)
  Symbol: _Unwind_GetLanguageSpecificData (0)
  Symbol: _Unwind_GetRegionStart (0)
  Symbol: _Unwind_GetTextRelBase (0)
  Symbol: _Unwind_RaiseException (0)
  Symbol: _Unwind_Resume (0)
  Symbol: _Unwind_SetGR (0)
  Symbol: _Unwind_SetIP (0)
}
...

Optionally libunwind could be linked statically via +crt-static:

❯ cargo rustc --target x86_64-pc-windows-gnullvm -- -C target-feature=+crt-static &> /dev/null

❯ wine target/x86_64-pc-windows-gnullvm/debug/hello.exe
Hello, world!

❯ llvm-readobj --coff-imports target/x86_64-pc-windows-gnullvm/debug/hello.exe | rg 'libunwind.dll' || echo "doesn't depend on shared libunwind"
doesn't depend on shared libunwind

This PR turns that the other way, libunwind will be now linked statically by default and could be linked dynamically with -crt-static:

❯ wine target/x86_64-pc-windows-gnullvm/debug/hello.exe
Hello, world!

❯ llvm-readobj --coff-imports target/x86_64-pc-windows-gnullvm/debug/hello.exe | rg 'libunwind.dll' || echo "doesn't depend on shared libunwind"
doesn't depend on shared libunwind

❯ cargo rustc --target x86_64-pc-windows-gnullvm -q -- -C target-feature=-crt-static &> /dev/null

❯ wine target/x86_64-pc-windows-gnullvm/debug/hello.exe
0024:err:module:import_dll Library libunwind.dll (which is needed by L"Z:\\tmp\\hello\\target\\x86_64-pc-windows-gnullvm\\debug\\hello.exe") not found
0024:err:module:loader_init Importing dlls for L"Z:\\tmp\\hello\\target\\x86_64-pc-windows-gnullvm\\debug\\hello.exe" failed, status c0000135

❯ llvm-readobj --coff-imports target/x86_64-pc-windows-gnullvm/debug/hello.exe | rg 'libunwind.dll' || echo "doesn't depend on shared libunwind"
  Name: libunwind.dll

This is how I intended it to work previously, but couldn't manage to get it working 🤷🏻
Related PRs: #121794 #122003

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 23, 2026
@mati865

mati865 commented Jul 23, 2026

Copy link
Copy Markdown
Member Author

@bors try jobs=dist-x86_64-llvm-mingw

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 23, 2026
gnullvm: link libunwind statically by default


try-job: dist-x86_64-llvm-mingw
@rust-bors

rust-bors Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

💔 Test for be73c40 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@mati865

mati865 commented Jul 23, 2026

Copy link
Copy Markdown
Member Author

@bors try jobs=dist-x86_64-llvm-mingw

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 23, 2026
gnullvm: link libunwind statically by default


try-job: dist-x86_64-llvm-mingw
@rust-bors

rust-bors Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

💔 Test for e559b52 failed: CI. Failed job:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job dist-x86_64-llvm-mingw failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] cranelift_codegen test:false 144.516
   Compiling rustc_codegen_cranelift v0.1.0 (D:\a\rust\rust\compiler\rustc_codegen_cranelift)
error: linking with `x86_64-w64-mingw32-clang` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-clang" "-Wl,D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\list.def" "-nolibc" "--unwindlib=none" "-m64" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\symbols.o" "<16 object files omitted>" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\rmeta.o" "-Wl,-Bstatic" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-native\\b8630f29770ba72d\\out/libcranelift_native-b8630f29770ba72d.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-object\\727af4817bc56f06\\out/libcranelift_object-727af4817bc56f06.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\object/a045921e0956cdc2\\out/libobject-a045921e0956cdc2.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\crc32fast/7e9fc80a291d19dc\\out/libcrc32fast-7e9fc80a291d19dc.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cfg-if/b71708dcfbd80b3d\\out/libcfg_if-b71708dcfbd80b3d.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\memchr/48d6406ebbf7684c\\out/libmemchr-48d6406ebbf7684c.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-frontend\\7bafb042fa54f8e0\\out/libcranelift_frontend-7bafb042fa54f8e0.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-module\\7dc7027ba1b8e2bf\\out/libcranelift_module-7dc7027ba1b8e2bf.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\anyhow/6c48f04b464353ba\\out/libanyhow-6c48f04b464353ba.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-codegen\\26cc5d19bc639af9\\out/libcranelift_codegen-26cc5d19bc639af9.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-assembler-x64/f0e59204b31016fa\\out/libcranelift_assembler_x64-f0e59204b31016fa.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\target-lexicon/459637113d1cd50a\\out/libtarget_lexicon-459637113d1cd50a.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-codegen-shared/ec8e099b9d62c296\\out/libcranelift_codegen_shared-ec8e099b9d62c296.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\regalloc2/260e15585367b2fc\\out/libregalloc2-260e15585367b2fc.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\bumpalo/8ce21bb1d9f73467\\out/libbumpalo-8ce21bb1d9f73467.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\log/1b63cb4fc81a8c80\\out/liblog-1b63cb4fc81a8c80.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\smallvec/55b384d10cc8a8ef\\out/libsmallvec-55b384d10cc8a8ef.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc-hash/0ffa2dd2cc633df4\\out/librustc_hash-0ffa2dd2cc633df4.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\allocator-api2/8a9184384dbc6a13\\out/liballocator_api2-8a9184384dbc6a13.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\gimli/dcd5deaf1b7a3e3c\\out/libgimli-dcd5deaf1b7a3e3c.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\fnv/f2379ee94eecae7b\\out/libfnv-f2379ee94eecae7b.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\indexmap/170b61284c9e6c9d\\out/libindexmap-170b61284c9e6c9d.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\equivalent/d7c2a47235e7ecbb\\out/libequivalent-d7c2a47235e7ecbb.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\hashbrown/3557d3b1cfc55743\\out/libhashbrown-3557d3b1cfc55743.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-control/d9703e487945453d\\out/libcranelift_control-d9703e487945453d.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\arbitrary/c2c3edf7aebc69bd\\out/libarbitrary-c2c3edf7aebc69bd.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-bforest/b2abed9f309171fe\\out/libcranelift_bforest-b2abed9f309171fe.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-entity/a5c51b3215e06de9\\out/libcranelift_entity-a5c51b3215e06de9.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\cranelift-bitset/d1083d06ffb62311\\out/libcranelift_bitset-d1083d06ffb62311.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\wasmtime-internal-core/f063d45a0ef768f1\\out/libwasmtime_internal_core-f063d45a0ef768f1.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\libm/5f2555692e81004e\\out/liblibm-5f2555692e81004e.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\hashbrown/da3687c6f1175d03\\out/libhashbrown-da3687c6f1175d03.rlib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\foldhash/cc516026cb64d5e5\\out/libfoldhash-cc516026cb64d5e5.rlib" "-Wl,-Bdynamic" "<sysroot>\\lib\\rustlib\\x86_64-pc-windows-gnullvm\\lib\\rustc_driver-8ab2882174ddb14e.dll" "-Wl,-Bstatic" "<sysroot>\\lib\\rustlib\\x86_64-pc-windows-gnullvm\\lib/libcompiler_builtins-*.rlib" "-Wl,-Bdynamic" "-lshell32" "-luuid" "-lLLVM-22-rust-1.99.0-nightly" "-lkernel32" "-ladvapi32" "-lole32" "-loleaut32" "-lkernel32" "-lkernel32" "-lkernel32" "-lkernel32" "-lntdll" "-luserenv" "-lws2_32" "-ldbghelp" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\advapi32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-errorhandling-l1-1-3.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-file-fromapp-l1-1-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-handle-l1-1-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-ioring-l1-1-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-libraryloader-l2-1-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-memory-l1-1-3.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-memory-l1-1-4.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-memory-l1-1-5.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-memory-l1-1-6.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-memory-l1-1-7.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-memory-l1-1-8.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-synch-l1-2-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-util-l1-1-1.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-winrt-error-l1-1-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-winrt-l1-1-0.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-core-wow64-l1-1-1.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\api-ms-win-security-base-l1-2-2.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\avrt.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\bcp47mrm.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\bcryptprimitives.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\clfsw32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\dbghelp.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\elscore.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\gdi32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\icu.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\icuin.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\icuuc.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\imagehlp.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\kernel32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\ktmw32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\netapi32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\normaliz.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\ntdll.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\ole32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\oleacc.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\oleaut32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\psapi.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\rtworkq.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\txfw32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\user32.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\usp10.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\version.dll_imports_indirect.lib" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustcmPeyo6\\wofutil.dll_imports_indirect.lib" "-lmingw32" "-lmingwex" "-lmsvcrt" "-lkernel32" "-luser32" "-Wl,--nxcompat" "-L" "<sysroot>\\lib\\rustlib\\x86_64-pc-windows-gnullvm\\lib" "-o" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\rustc_codegen_cranelift-f071d329bbbc2c9c.dll" "-static" "-shared" "-Wl,--out-implib=D:\\a\\rust\\rust\\build\\x86_64-pc-windows-gnullvm\\stage2-codegen\\x86_64-pc-windows-gnullvm\\release\\build\\rustc_codegen_cranelift/f071d329bbbc2c9c\\out\\librustc_codegen_cranelift-f071d329bbbc2c9c.dll.a" "-Wl,-O1" "-LD:/a/rust/rust/build/x86_64-pc-windows-gnullvm/llvm/lib"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: clang-21: warning: argument unused during compilation: '-nolibc' [-Wunused-command-line-argument]
          ld.lld: error: undefined symbol: _Unwind_Resume
          >>> referenced by D:\a\rust\rust\build\x86_64-pc-windows-gnullvm\stage2-codegen\x86_64-pc-windows-gnullvm\release\build\rustc_codegen_cranelift/f071d329bbbc2c9c\out\rustc_codegen_cranelift-f071d329bbbc2c9c.rustc_codegen_cranelift.b09bb4ed5b4dbf86-cgu.00.rcgu.o:(<gimli::write::op::Expression>::write::<rustc_codegen_cranelift::debuginfo::emit::WriterRelocate>)
          >>> referenced by D:\a\rust\rust\build\x86_64-pc-windows-gnullvm\stage2-codegen\x86_64-pc-windows-gnullvm\release\build\rustc_codegen_cranelift/f071d329bbbc2c9c\out\rustc_codegen_cranelift-f071d329bbbc2c9c.rustc_codegen_cranelift.b09bb4ed5b4dbf86-cgu.00.rcgu.o:(<rustc_middle::dep_graph::graph::DepGraphData>::hash_result_and_alloc_node::<rustc_codegen_ssa::ModuleCodegen<rustc_codegen_cranelift::driver::aot::AotModule>>)
          >>> referenced by D:\a\rust\rust\build\x86_64-pc-windows-gnullvm\stage2-codegen\x86_64-pc-windows-gnullvm\release\build\rustc_codegen_cranelift/f071d329bbbc2c9c\out\rustc_codegen_cranelift-f071d329bbbc2c9c.rustc_codegen_cranelift.b09bb4ed5b4dbf86-cgu.00.rcgu.o:(<rustc_middle::dep_graph::graph::DepGraphData>::assert_dep_node_not_yet_allocated_in_current_session::<alloc::string::String, <rustc_middle::dep_graph::graph::DepGraphData>::with_task<<rustc_codegen_cranelift::driver::aot::AotDriver as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::{closure#0}, rustc_codegen_ssa::ModuleCodegen<rustc_codegen_cranelift::driver::aot::AotModule>>::{closure#0}>)
          >>> referenced 4082 more times
          clang-21: error: linker command failed with exit code 1 (use -v to see invocation)
          

[RUSTC-TIMING] rustc_codegen_cranelift test:false 24.587
error: could not compile `rustc_codegen_cranelift` (lib) due to 1 previous error
Bootstrap failed while executing `dist bootstrap enzyme --include-default-paths`

@mati865

mati865 commented Jul 23, 2026

Copy link
Copy Markdown
Member Author

This is how I intended it to work previously, but couldn't manage to get it working 🤷🏻

So, that must be why...

ld.lld: error: undefined symbol: _Unwind_Resume
#159782 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants