b/ci: update build container to Fedora 35

Fedora 32 is EOL since over half a year, update to the current stable
Fedora release.

toolchains: adds clang as it's no longer part of the llvm package,
changes toolchain path references to GCC 11, and rebuilds the sysroot.

edk2: update to latest stable (old version cannot build with a newer
minor version of Python 3) and patch to disable -Werror and make the
newer included Brotli version work as it natively includes BUILD
files which need to be patched out to make the source files accessible.

linux: add patch to fix PVH ELF note entrypoint with binutils 2.32+ as
otherwise the .notes section gets emitted with broken alignment.

m/t/launch: RunMicroVM is broken if SerialPort is not set with newer
QEMU versions because fcntl(2) fails to interact with a broken file
descriptor. This is due to a confusion between nil interfaces and
interfaces containing a nil pointer causing Go to improperly pass the
file descriptor. Changing the type of SerialPort to the actual
interface resolves the issue.

Change-Id: I03a8cbf4f80a7363794dad1ff62ccb57e778cac3
Reviewed-on: https://review.monogon.dev/c/monogon/+/529
Reviewed-by: Leopold Schabel <leo@nexantic.com>
diff --git a/build/ci/Dockerfile b/build/ci/Dockerfile
index dda3113..4272dd6 100644
--- a/build/ci/Dockerfile
+++ b/build/ci/Dockerfile
@@ -1,10 +1,11 @@
-FROM fedora:32
+FROM fedora:35
 
 RUN dnf -y upgrade && \
 	dnf -y install \
 	"@Development Tools" \
 	g++ \
 	llvm \
+	clang \
 	lld \
 	libuuid-devel \
 	python3 \
diff --git a/build/toolchain/cc_toolchain_config.bzl b/build/toolchain/cc_toolchain_config.bzl
index 5aeb270..7647021 100644
--- a/build/toolchain/cc_toolchain_config.bzl
+++ b/build/toolchain/cc_toolchain_config.bzl
@@ -195,7 +195,7 @@
         "is_glibc": attr.bool(default = True),
         "host_includes": attr.string_list(
             default = [
-                "/usr/lib/gcc/x86_64-redhat-linux/10/include/",
+                "/usr/lib/gcc/x86_64-redhat-linux/11/include/",
                 "/usr/include",
             ],
         ),
diff --git a/build/toolchain/musl-host-gcc/sysroot.tar.xz b/build/toolchain/musl-host-gcc/sysroot.tar.xz
index 6cfd0e6..dd14fcc 100644
--- a/build/toolchain/musl-host-gcc/sysroot.tar.xz
+++ b/build/toolchain/musl-host-gcc/sysroot.tar.xz
Binary files differ
diff --git a/build/toolchain/musl-host-gcc/sysroot/tarball.bzl b/build/toolchain/musl-host-gcc/sysroot/tarball.bzl
index 14b7bbd..c0631f8 100644
--- a/build/toolchain/musl-host-gcc/sysroot/tarball.bzl
+++ b/build/toolchain/musl-host-gcc/sysroot/tarball.bzl
@@ -34,7 +34,7 @@
     linux_headers = ctx.file.linux_headers
     linux_headers_path = linux_headers.path
 
-    compiler_headers_path = "lib/gcc/x86_64-redhat-linux/10/include"
+    compiler_headers_path = "lib/gcc/x86_64-redhat-linux/11/include"
 
     musl_root = detect_root(ctx.attr.musl)
     musl_files = ctx.files.musl