Add `extra::getopts::short_usage`

This complements `usage` by auto-generating a short one-liner summary
of the options.
Avoid cloning ast::CrateConfig
etc/tidy: don't check SNAP against triple
etc: add missing license boilerplates
rustdoc: update deps
Ensure an Rc isn't freed while running its own destructor.

A weak pointer inside itself will have its destructor run when the last
strong pointer to that data disappears, so we need to make sure that the
Weak and Rc destructors don't duplicate work (i.e. freeing).

By making the Rcs effectively take a weak pointer, we ensure that no
Weak destructor will free the pointer while still ensuring that Weak
pointers can't be upgraded to strong ones as the destructors run.

This approach of starting weak at 1 is what libstdc++ does.

Fixes #12046.
libstd: Add missing constants for arm/linux.
Remove reference to @str in comment
auto merge of #11989 : adridu59/rust/tidy, r=alexcrichton

Closes #11985
Closes #4533

@huonw, @alexcrichton
Make a double-write UDP test more robust

I have a hunch this just deadlocked the windows bots. Due to UDP being a lossy
protocol, I don't think we can guarantee that the server can receive both
packets, so just listen for one of them.
auto merge of #12054 : alexcrichton/rust/less-flaky-udp, r=brson

I have a hunch this just deadlocked the windows bots. Due to UDP being a lossy
protocol, I don't think we can guarantee that the server can receive both
packets, so just listen for one of them.
auto merge of #12001 : yuriks/rust/getopts-tweaks, r=brson

This complements `usage` by auto-generating a short one-liner summary
of the options.

(First timer here, be gentle... :)
auto merge of #12047 : huonw/rust/cyclic-rc, r=thestinger

A weak pointer inside itself will have its destructor run when the last
strong pointer to that data disappears, so we need to make sure that the
Weak and Rc destructors don't duplicate work (i.e. freeing).

By making the Rcs effectively take a weak pointer, we ensure that no
Weak destructor will free the pointer while still ensuring that Weak
pointers can't be upgraded to strong ones as the destructors run.

This approach of starting weak at 1 is what libstdc++ does.

Fixes #12046.
auto merge of #12051 : luqmana/rust/arm-fix, r=alexcrichton

Fix building for arm/Linux.
Fix expansion tests
auto merge of #12048 : sanxiyn/rust/crate-config, r=alexcrichton
auto merge of #12053 : fhahn/rust/remove-str-in-comment, r=alexcrichton

This tiny pull request updates a comment referring to `@str` which was replaced by `(InternedString,StrStyle)` .

related to #10516
Move getopts out of extra
getopts: replaced base functions with those from group
getopts: unify tests