Some improvements to the Cargo compiler file.
Use rustc's errorformat and add option to specify permanent parameters.
Updates based on kballard's feedback.
Added check for absolute file path, removed hard tab, and added documentation for new option.
librustc: Allow linkage attribute on any statics, not just foreign statics.
librustc: Respect no-compiler-rt target option for static libs as well.
Fix `Vec::map_in_place` not doing what is written in the comment
convert 1 line match to 2 lines for readability
Expand the benchmarking and unit test suite for ring_buf.
-Adds unit tests for fn get() and fn get_mut() which are currently untested
-Adds unit tests to verify growth of the ringbuffer when reserve is called.
-Adds unit tests to confirm that dropping of items is correct
Move ringbuf to use a raw buffer instead of Option<T>
Handle allocate/reallocate errors in ring_buf
Use is_some() in clear to simplify the clear loop.
Added some extra debug_asserts to ring_buf.
Manually reset the ringbuffer before or after the ringbuffer push/pop tests.
Added population count assertion in reserve. Cleaned up wrap_index.
Add `Show` and `Clone` trait to arrays

Due to not being able to parametrize over array sizes, `Clone` is only
implemented for element types that are `Copy`able.
libstd: improve os::args() doc
Guide: add a pointer to play.rust-lang.org and explain how to run the code examples.
Update ring_buf.rs from fallout of #18827.
Fix for issue #17574
Look for standard crates in LIBDIR provided by --libdir option,
not in hardcoded libdir path. If there was no LIBDIR provided
during configuration fallback to hardcoded paths.

Thanks to Jan Niklas Hasse for solution and to Alex Crichton for improvements.

Closes #11671
doc: make end comment consistent with start comment