sys-boot/grub-lakitu: Add ebuild for Fedora GRUB2

- Use fedora-34 branch as a base for the ebuid

- Most of the patches from cobble has been merged into RedHat's fork
  only 4 Google-specific patches were carried from old repo.

- Additional patches were required to make code buildable on ARM64
  with clang.  The major problem is types of rellocations generated by clang
  for loading addresses to registers. By default clang emits mov/movk
  instructions and respective R_AARCH64_MOVW_UABS_Gx/R_AARCH64_MOVW_UABS_Gx_NC
  relocations. They are not translatable to PE relocations so
  current patchset relies on the side-effects of -mcmodel small switch
  to work around this problem. If clang backend logic changes in the
  future we'll have either find another workaround, patch clang, or
  add recent version of gcc for aarch64 cross-compilation (4.9 is too
  old for RedHat's fork).

BUG=b/163169002
TEST=QEMU-x86 legacy, QEMU-x86 EFI, QEMU-x86 Secure EFI, QEMU-ARM64 EFI
RELEASE_NOTE=None

Change-Id: I6436231b0554c925ff41b5eb56243e13618341a5
Reviewed-on: https://cos-review.googlesource.com/c/cos/overlays/board-overlays/+/13951
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
Reviewed-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Reviewed-by: Roy Yang <royyang@google.com>
13 files changed