treewide: implement basic aarch64 support

This adds aarch64 platforms, and some fixes for aarch64 support. This is
not yet complete; e.g. toolchains for aarch64 targets are still missing.

I renamed the amd64 platforms to x86_64 and efi to uefi for consistency
with @platforms.

syscall.Dup2 does not exist on arm64, but unix.Dup2 does.

Change-Id: I3ab081b2b852945b723ec83768f79000b8c4def4
Reviewed-on: https://review.monogon.dev/c/monogon/+/4173
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/.bazelrc b/.bazelrc
index d4e676e..b72e72f 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -34,7 +34,7 @@
 build:remote --noremote_upload_local_results
 
 # Set the execution platform which adds constraints for the scheduler.
-build:remote --extra_execution_platforms=//build/platforms:remote_amd64
+build:remote --extra_execution_platforms=//build/platforms:remote_x86_64
 
 # Enable pure by default. Specific go_binary targets which need cgo should set
 # `pure = "off"`.
@@ -94,13 +94,13 @@
 # In our monorepo, we mostly ignore the host platform since we bring our own
 # execution environment. However, we still need to run a small number of tools
 # such as gazelle.
-build --host_platform=//build/platforms:linux_amd64
+build --host_platform=//build/platforms:linux_x86_64
 
 # Target platform for the monorepo is currently the same as the host platform,
 # but we'll support cross-compilation at some point. Do not rely on it.
-build --platforms=//build/platforms:linux_amd64
+build --platforms=//build/platforms:linux_x86_64
 # Make sure our platform is picked instead of the --host_platform.
-build --extra_execution_platforms=//build/platforms:linux_amd64
+build --extra_execution_platforms=//build/platforms:linux_x86_64
 
 # Build resources
 startup --batch_cpu_scheduling --io_nice_level 7