about summary refs log tree commit diff
path: root/src/libstd/sys/unix/time.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-09-07 04:07:09 +0000
committerbors <bors@rust-lang.org>2017-09-07 04:07:09 +0000
commita6a9d4c5fd214cb8110482dee2017607e23ccc7b (patch)
tree65fdacc215a88f9812d4b12b355bfea5695ad25c /src/libstd/sys/unix/time.rs
parent05e3c96d36b5281e969b5e79b92d671c7872bf83 (diff)
parented938f08a949cb487f7513d4f22f92355a40d2f3 (diff)
downloadrust-a6a9d4c5fd214cb8110482dee2017607e23ccc7b.tar.gz
rust-a6a9d4c5fd214cb8110482dee2017607e23ccc7b.zip
Auto merge of #44094 - alexcrichton:long-linkers, r=michaelwoerister
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