Add a new USE flag 'arm64-extras' to the go ebuild which will build and install
the needed arm64 package files that will allow the SDK to cross build for arm64
targets.
Signed-off-by: Geoff Levand <geoff@infradead.org>
There's potential for racing with sgdisk or its generated udev events
which may also open the device if we get scheduled simultaneously. This
is problematic since ignition-disks may also do partitioning and
formatting of the same devices.
ignition-files can do things like add users and ssh keys, we use
shadowutils to do this which requires a minimally setup root filesystem.
Since ignition-disks might completely wipe the root filesystem,
initrd-setup-root must run to get us boot-strapped.
Commit ed4660a2d9abe4583b9b327d2801703ec9f4ca18 added an explicit error
message to catch when something goes wrong and cannot find any firmware
required by the kernel. This additionally changed the call to doins to
an explicit list of files, flattening out the directory tree and
excluding symlinks. The tree *must* be preserved exactly in order for
the kernel to find the files it needs.
We were installing selinux configuration files in /etc which caused problems
on upgrades. Move them into /usr and ensure that systemd sets up appropriate
temporary files. Fixes https://github.com/coreos/bugs/issues/447
Change --no-rebuild to -no-rebuild and drop --banner in the test phase
to match the documentation of go dist.
Gentoo-Commit: fb870ae6f45993ea375d8d5381edb72ade271b06
There are a few quirks with Go to deal with when cross-compiling:
- Since DEPEND cannot distinguish cross-architecture dependencies the
current ebuild cannot keyword all architectures it supports. This
could be resolved in the future with a special use flag or other
clever trick to drop go-bootstrap from DEPEND for cross builds.
- GOHOST* and CC variables are CBUILD values.
- GO* and *_FOR_TARGET variables are CHOST values.
- Go can always be used as a cross-compiler so handling the
CHOST!=CTARGET case isn't strictly required. We could provide a
pre-built copy of the std library for CTARGET's architecture but I'm
not sure if that would be useful or not. For now the ebuild just
doesn't allow that case.
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=558216
Gentoo-Commit: 0f4f3b8d200e15982e5e75f52f3c472d152cc4c9
Run-time binaries must be provided by the SDK, dynamic libraries or the
entire architecture may be different under the target $ROOT.
I have no idea if selinux can be built cross-architecture though, if not
this may need to be revisited with qemu.