rust: Enable x86_64-unknown-uefi and i686-unknown-uefi bare targets

UEFI targets are useful for building bootloaders for generic PC hardware.

A couple patches are needed. One is a backport to disable building std
for the UEFI targets (should be in Rust 1.64). The other bumps the
version of `cc` to fix build errors with compiler_builtins. I used
`cc-1.0.72` since that's the latest vendored version currently. Upstream
PR to upgrade to cc-1.0.73: https://github.com/rust-lang/rust/pull/100117

Tested by building a minimal UEFI app where src/main.rs looks like this:

```
fn panic_handler(_info: &core::panic::PanicInfo) -> ! {
    loop {}
}
pub extern "C" fn main(_h: *mut core::ffi::c_void, _st: *mut core::ffi::c_void) -> usize {
    0
}
```

The app can be built with:
RUSTFLAGS="-C linker=lld-link" cargo build --target i686-unknown-uefi
RUSTFLAGS="-C linker=lld-link" cargo build --target x86_64-unknown-uefi

BUG=b:202164480
TEST=sudo emerge dev-lang/rust-host
TEST=sudo emerge dev-lang/rust
TEST=Build the test app as described above

Change-Id: Ib0dfeb6519adacd7ad323ae05e7ddc38c7511e6a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/3810682
Reviewed-by: George Burgess <gbiv@chromium.org>
Tested-by: Michael Benfield <mbenfield@google.com>
6 files changed