dtolnay / linkme

Safe cross-platform linker shenanigans

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Linker error on Windows with lld-link: relocation against symbol in discarded section

danakj opened this issue · comments

it actually ends up crashing lld-link, but the errors come first, so I think it's also doing something wrong.

I tried with and without used_linker and get the same thing either way, whereas used_linker fixed lld on other platforms.

The GTESTS here is the distributed_slice, in the rust_gtest_interop crate.

[2/2] LINK rust_gtest_interop_unittests.exe rust_gtest_interop_unittests.exe.pdb
FAILED: rust_gtest_interop_unittests.exe rust_gtest_interop_unittests.exe.pdb
..\..\third_party\llvm-build\Release+Asserts\bin\lld-link.exe "/OUT:./rust_gtest_interop_unittests.exe" /nologo -libpath:..\..\third_party\llvm-build\Release+Asserts\lib\clang\17\lib\windows /winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/27370823e7 /MACHINE:X64  "/PDB:./rust_gtest_interop_unittests.exe.pdb" "@./rust_gtest_interop_unittests.exe.rsp"
lld-link: error: relocation against symbol in discarded section: _ZN18rust_gtest_interop6GTESTS12LINKME_START17h75470cf2db5c947aE
>>> referenced by librust_gtest_interop.rlib(librust_gtest_interop.rust_gtest_interop.11482080eb92b0cf-cgu.0.rcgu.o):(rust_gtest_interop::GTESTS::h78f8c0ca7ebcfebd)
>>> referenced by librust_gtest_interop.rlib(librust_gtest_interop.rust_gtest_interop.11482080eb92b0cf-cgu.0.rcgu.o):(__declspec(dllimport) rust_gtest_interop::GTESTS::LINKME_START::h75470cf2db5c947a)

lld-link: error: relocation against symbol in discarded section: _ZN18rust_gtest_interop6GTESTS11LINKME_STOP17h3f94993507f6c1d0E
>>> referenced by librust_gtest_interop.rlib(librust_gtest_interop.rust_gtest_interop.11482080eb92b0cf-cgu.0.rcgu.o):(rust_gtest_interop::GTESTS::h78f8c0ca7ebcfebd)
>>> referenced by librust_gtest_interop.rlib(librust_gtest_interop.rust_gtest_interop.11482080eb92b0cf-cgu.0.rcgu.o):(__declspec(dllimport) rust_gtest_interop::GTESTS::LINKME_STOP::h3f94993507f6c1d0)

This should be reproducible on Windows outside of Chromium with --target=x86_64-pc-windows-msvc -Clinker=clang-cl -Clink-arg=-fuse-ld=lld.

I can reproduce with cargo test on Windows with the following steps:

  1. Download lld-link.exe. You can get it from Chromium here.

From the linkme repository root:

  1. tar xf path..to..downloaded\clang-llvmorg-17-init-16420-g0c545a44-5.tgz bin/lld-link.exe

    • You will now have a bin/lld-link.exe
  2. Create .cargo/config.toml that contains

[target.x86_64-pc-windows-msvc]
rustflags = ["-Clinker=path..to../linkme/bin/lld-link"]

I used:

[target.x86_64-pc-windows-msvc]
rustflags = ["-Clinker=C:/src/linkme/bin/lld-link"]
  1. Run cargo test
error: linking with `C:/src/linkme/bin/lld-link` failed: exit code: 1
  |
  = note: "C:/src/linkme/bin/lld-link" "-flavor" "link" "/NOLOGO" "C:\\src\\temp\\rustcIFjjYD\\symbols.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.18pmktcbcwvbjqen.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.1l3g5wsc4vvjavo4.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.1t3uzvw9yk7z21hy.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.1z1dbleucpgbgzv7.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.255x37g71dd3mb7x.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.29fpwmqt2zz08g3h.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.2g97lc2ij086pdmp.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.2spqvyo62sm4wk37.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.2xoqny7rqtptn43k.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.2ykky3njubleabvh.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.3etn5sze2r9pi3pg.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.3roxwqifnsiame3y.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.3tdod48uf54maz78.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.3wkyd9gad004na8o.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.41tg1gzkx6urkrl1.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.463c1jns90yin71f.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.4ctmekf6c6hatmp6.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.4e96xxzjqv7dvari.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.4rwhfg6s884850ad.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.4xrkw3kut56ubjff.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.4zbzoqff2mhalmyu.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.514edvxtw3n01v8x.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.53yuvh0b743sti3e.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.56p23zw9nmdmzo.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.56qrdbv91s6h2y29.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.dzzz5cki6iolexq.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.s491n9j8919w2fu.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.wdmiw3izbyn4wmt.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.wjiyft31tq40en1.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.byjx529ct8vsmvn.rcgu.o" "/LIBPATH:C:\\src\\linkme\\target\\debug\\deps" "/LIBPATH:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libtest-0d284f6f6d560618.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libgetopts-5e280acaaf5794c4.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunicode_width-0ce2982a496af417.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_std-a3b97a6ae8e5ad8c.rlib" "C:\\src\\linkme\\target\\debug\\deps\\libonce_cell-f3976f005bfa2918.rlib" "C:\\src\\linkme\\target\\debug\\deps\\liblinkme-2e3291a00d305a37.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-030a051d86483346.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-a4ef8812a7d4f2d3.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-956b5ac794cf81bc.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-4b05a618214a72a7.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-d406e30b884ba242.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-d8e1676808a0123b.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-c6db755d5ab63ecf.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-d890d9966a1fbbff.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-4a1ef37d6227118a.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-4acf9e1500786378.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-f5da911bfe6430ed.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-9de50b2f9c9db160.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-1aa6e102551df906.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-f3e078da12a56a5e.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-2ffbdfa62076a7b2.rlib" "kernel32.lib" "kernel32.lib" "advapi32.lib" "bcrypt.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-65fbf74dac20a26b.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\libstd.natvis"
  = note: lld-link: error: relocation against symbol in discarded section: _ZN17distributed_slice10test_empty5EMPTY12LINKME_START17hf89ddb4200e98db5E
          >>> referenced by C:\src\linkme\target\debug\deps\distributed_slice-65fbf74dac20a26b.1l3g5wsc4vvjavo4.rcgu.o:(distributed_slice::test_empty::EMPTY::hf7274b2cfd74590c)

          lld-link: error: relocation against symbol in discarded section: _ZN17distributed_slice10test_empty5EMPTY11LINKME_STOP17he008262ba2beab69E
          >>> referenced by C:\src\linkme\target\debug\deps\distributed_slice-65fbf74dac20a26b.1l3g5wsc4vvjavo4.rcgu.o:(distributed_slice::test_empty::EMPTY::hf7274b2cfd74590c)

used_linker

Testing with used_linker gets the same result. But given that used_linker is needed to resolve linking with lld on other platforms, it would be fine if this is needed for whatever the fix is.

cargo test --features=used_linker
   Compiling linkme-impl v0.3.13 (C:\src\linkme\impl)
   Compiling linkme v0.3.13 (C:\src\linkme)
error: linking with `C:/src/linkme/bin/lld-link` failed: exit code: 1
  |
  = note: "C:/src/linkme/bin/lld-link" "-flavor" "link" "/NOLOGO" "C:\\src\\temp\\rustcpdicAs\\symbols.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.10amg8dnatzvu84k.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.10uj50np4erz2oaa.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.12weel6pcaobmake.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.15tueushdfbzbr7t.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.16qjdryoydvwcsjv.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.170qx29hh234udfw.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.1871anbc6hunvwzn.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.21k510o0ooj2x74l.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.23m8ecfgbe49f8ks.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.25wfrve6wkb5r1a2.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.26ps674f1qm3kavr.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2fbuqmu1r21p4rye.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2ggoqaaao67a0iyw.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2hddufmuzosvsjvx.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2krqr0wd1ugyc34y.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2qkptfgkwby7cb18.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2v9ak420mhg6sif6.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2xlapjqpvia9cof1.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.2y39m308efvsu9hj.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.3a34qg8s5his6pwo.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.48qte9g5bsnexo89.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.4fpdqch2islvgq5z.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.4uvzkfi7p1l0tkcr.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.4xfoxe526pl65ci3.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.56bd0ecszs64e8f7.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.7l5mf4gdwzob99n.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.9a96oohar6rmou7.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.r7ktdf3b4bioklv.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.rp5qq9h26lf7mvf.rcgu.o" "C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.36a9p0crlpx0qvvx.rcgu.o" "/LIBPATH:C:\\src\\linkme\\target\\debug\\deps" "/LIBPATH:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libtest-0d284f6f6d560618.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libgetopts-5e280acaaf5794c4.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunicode_width-0ce2982a496af417.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_std-a3b97a6ae8e5ad8c.rlib" "C:\\src\\linkme\\target\\debug\\deps\\libonce_cell-f3976f005bfa2918.rlib" "C:\\src\\linkme\\target\\debug\\deps\\liblinkme-5850c5185d9052db.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-030a051d86483346.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-a4ef8812a7d4f2d3.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-956b5ac794cf81bc.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-4b05a618214a72a7.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-d406e30b884ba242.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-d8e1676808a0123b.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-c6db755d5ab63ecf.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-d890d9966a1fbbff.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-4a1ef37d6227118a.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-4acf9e1500786378.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-f5da911bfe6430ed.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-9de50b2f9c9db160.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-1aa6e102551df906.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-f3e078da12a56a5e.rlib" "C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-2ffbdfa62076a7b2.rlib" "kernel32.lib" "kernel32.lib" "advapi32.lib" "bcrypt.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\src\\linkme\\target\\debug\\deps\\distributed_slice-b4dc3e26721f69f1.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\src\\c\\src\\third_party\\rust-toolchain\\lib\\rustlib\\etc\\libstd.natvis"
  = note: lld-link: error: relocation against symbol in discarded section: _ZN17distributed_slice10test_empty5EMPTY12LINKME_START17he386675f58393d8aE
          >>> referenced by C:\src\linkme\target\debug\deps\distributed_slice-b4dc3e26721f69f1.r7ktdf3b4bioklv.rcgu.o:(distributed_slice::test_empty::EMPTY::h67524a85e72b3dc0)

          lld-link: error: relocation against symbol in discarded section: _ZN17distributed_slice10test_empty5EMPTY11LINKME_STOP17hc8c947117d94582fE
          >>> referenced by C:\src\linkme\target\debug\deps\distributed_slice-b4dc3e26721f69f1.r7ktdf3b4bioklv.rcgu.o:(distributed_slice::test_empty::EMPTY::h67524a85e72b3dc0)
``

I tried adding the LINKME_PLEASE symbol on target_os = "windows" into the #windows_section but it did not help. I am a bit out of depth and about to go on vacation so someone else will need to pick this up sorry.