Add test case for issue 7911
bump minimum supported OS X version to 10.7

Closes #11927
Closes #10842
Closes #2024
mark Windows 8 as supported
mark the minimum supported Linux kernel version

This is just taken from the binary itself. It would be nice to mark the
minimum glibc version too, and the corresponding RHEL/CentOS version.
Add test cases for #4063.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Add test for sensible #[start] error message.

Fixes #9575.
Remove the obsolete handler for `impl A;`.

This is has been obsolete for quite a while now (including a release),
so removing the special handling seems fine. (The error message is quite
good still anyway.)

Fixes #9580.
Test for null buffer in CString.len()/.iter() and fail

Also change .as_str() to fail on null buffer.
Remove the need to count lang items

This solves horrible diffs where all you do is renumber literally everything.
Fixing tests
auto merge of #11965 : alexcrichton/rust/issue-7385, r=alexcrichton

I've verified that it works on osx x86_64

Closes #7385

Rolled up PRs:

Closes #11898
Closes #11934
Closes #11942
Closes #11952 
Closes #11960 
Closes #11966
Closes #11953 

Closed issues:

Closes #4063 
Closes #7911
auto merge of #11789 : pongad/rust/master, r=kballard

All tests passing. #5268
auto merge of #11963 : alexcrichton/rust/fix-rustpkg, r=brson

Right now the bots are all injecting a libstd version, so all the rustpkg tests
are passing. All rustpkg compilations will fail unless the version number is
explicitly given because rustpkg attempts to exactly guess the target file name.
Switch back to using a pattern match in order to unbreak tests.

Closes #11852
auto merge of #11930 : bjz/rust/next_power_of_two, r=huonw
auto merge of #11932 : dmanescu/rust/11741-stability-cross-crate, r=alexcrichton

Fixes #11741
Added tests and removed xfail-fast from run-pass/simd-experimental which is now fixed (see #11738).
Optimize u64_to_{le,be}_bytes

LLVM fails to properly optimize the shifts used to convert the source
value to the right endianess. The resulting assembly copies the value
to the stack one byte at a time even when there's no conversion required
(e.g. u64_to_le_bytes on a little endian machine).

Instead of doing the conversion ourselves using shifts, we can use the
existing intrinsics to perform the endianess conversion and then
transmute the value to get a fixed vector of its bytes.

Before:

test be_i8  ... bench:     21442 ns/iter (+/- 70)
test be_i16 ... bench:     21447 ns/iter (+/- 45)
test be_i32 ... bench:     23832 ns/iter (+/- 63)
test be_i64 ... bench:     26887 ns/iter (+/- 267)

test le_i8  ... bench:     21442 ns/iter (+/- 56)
test le_i16 ... bench:     21448 ns/iter (+/- 36)
test le_i32 ... bench:     23825 ns/iter (+/- 153)
test le_i64 ... bench:     26271 ns/iter (+/- 138)

After:

test be_i8  ... bench:     21438 ns/iter (+/- 10)
test be_i16 ... bench:     21441 ns/iter (+/- 15)
test be_i32 ... bench:     19057 ns/iter (+/- 6)
test be_i64 ... bench:     21439 ns/iter (+/- 34)

test le_i8  ... bench:     21438 ns/iter (+/- 19)
test le_i16 ... bench:     21439 ns/iter (+/- 8)
test le_i32 ... bench:     21439 ns/iter (+/- 19)
test le_i64 ... bench:     21438 ns/iter (+/- 22)
libsyntax: Introduce an `InternedString` type to reduce `@str` in the
compiler and use it for attributes
libsyntax: De-`@str` literal strings in the AST
libsyntax: De-`@str` `to_source`
librustc: Fix merge fallout.