diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2017-08-25 20:16:51 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2017-09-05 21:07:02 -0700 |
| commit | ed938f08a949cb487f7513d4f22f92355a40d2f3 (patch) | |
| tree | 7ab91cf4fa734cef75f13d7e333cdf41df09a56f /src/libstd/sys/unix/time.rs | |
| parent | 2f1ef9ef1181298d46e79d5dde6bafeb6483926f (diff) | |
| download | rust-ed938f08a949cb487f7513d4f22f92355a40d2f3.tar.gz rust-ed938f08a949cb487f7513d4f22f92355a40d2f3.zip | |
rustc: Attempt to handle super long linker invocations
This commit adds logic to the compiler to attempt to handle super long linker invocations by falling back to the `@`-file syntax if the invoked command is too large. Each OS has a limit on how many arguments and how large the arguments can be when spawning a new process, and linkers tend to be one of those programs that can hit the limit! The logic implemented here is to unconditionally attempt to spawn a linker and then if it fails to spawn with an error from the OS that indicates the command line is too big we attempt a fallback. The fallback is roughly the same for all linkers where an argument pointing to a file, prepended with `@`, is passed. This file then contains all the various arguments that we want to pass to the linker. Closes #41190
Diffstat (limited to 'src/libstd/sys/unix/time.rs')
0 files changed, 0 insertions, 0 deletions
