Open
Description
On Windows-MSCV-x86_64 I am attempting to create a no_std
binary with Stable (1.38). I'm getting an unresolved symbol for __chkstk
:
D:\dev\quixotic>cargo run
Compiling quixotic v0.0.0 (D:\dev\quixotic)
error: linking with `link.exe` failed: exit code: 1120
|
= note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.13.26128\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "D:\\dev\\quixotic\\target\\debug\\deps\\main-13addd73d3845cd6.1z81p1fkccyc5iby.rcgu.o" "D:\\dev\\quixotic\\target\\debug\\deps\\main-13addd73d3845cd6.22n4xq61sdy0azbs.rcgu.o" "D:\\dev\\quixotic\\target\\debug\\deps\\main-13addd73d3845cd6.255oap8fzr2s5w11.rcgu.o" "D:\\dev\\quixotic\\target\\debug\\deps\\main-13addd73d3845cd6.2u5094on6j0uypp3.rcgu.o" "/OUT:D:\\dev\\quixotic\\target\\debug\\deps\\main-13addd73d3845cd6.exe" "/SUBSYSTEM:console" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/LIBPATH:D:\\dev\\quixotic\\target\\debug\\deps" "/LIBPATH:C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "D:\\dev\\quixotic\\target\\debug\\deps\\libwinapi-f9a577440f324f5e.rlib" "C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-6391a360e3eeafba.rlib" "C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-6c8df881cdc2afb2.rlib" "C:\\Users\\Daniel\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-f998976453a15b70.rlib" "advapi32.lib" "cfgmgr32.lib" "gdi32.lib" "kernel32.lib" "msimg32.lib" "opengl32.lib" "user32.lib" "winspool.lib"
= note: main-13addd73d3845cd6.1z81p1fkccyc5iby.rcgu.o : error LNK2019: unresolved external symbol
__chkstk referenced in function mainCRTStartup
main-13addd73d3845cd6.255oap8fzr2s5w11.rcgu.o : error LNK2001: unresolved external symbol
__chkstk
D:\dev\quixotic\target\debug\deps\main-13addd73d3845cd6.exe : fatal error LNK1120: 1 unresolved externals
error: aborting due to previous error
error: Could not compile `quixotic`.
To learn more, run the command again with --verbose.
Normally, you resolve this in the C/C++ MSVC compiler with /GS-
to disable stack security checks, /Gs999999999
to disable stack probes, and telling the linker /STACK:0x100000,0x100000
to force it to commit the entire 1MB of stack right away instead of using all the pages individually.
I can pass the linker arg to link.exe
easily enough, but what would the rustc equivalents to disable stack checking and stack probing be?