On 02.12.2013 11:53, Leif Lindholm wrote: > On Sun, Dec 01, 2013 at 07:06:32AM +0100, Vladimir 'φ-coder/phcoder' > Serbinenko wrote: >> Current ARM relocation doesn't handle the cases when the relocation cant >> be satisfied directly (like thumb call over 1M of distance or jump24 to >> thumb mode. Attached patch adds missing tampoline and missing relocation >> handling to EFI code (it didn't allow to use ARM (no-Thumb) binary with >> EFI). >> I couldn't test it on either arm-efi or ARM64 > > Amusingly, I wrote the attached Nothing is attached to your mail. Right now could you pause work on */dl.c: I'm reorganising them to declare more of it as platform independent and unify handling (ARM dl.c is unnecessarily different from other versions and forget some of ELF handling) > on Saturday, based on a bug report > from Jon Masters @ Red Hat. Although an unlikely corner case, it does > probably need the addition of grub_arch_dl_get_tramp_got_size() from > your implementation in order to ensure the "veneers"[1] don't end up > in a heap region different to and too far away from the one the module > is loaded into. > > I'll have a look and a poke on both 32- and 64-bit stuff and respond.. > > I would say the modifications to grub-mkimage for arm64 are probably > unnessecary: AArch64 relative branch range is +-128MB, and I don't > think we'll see grub kernel images that big. There are no changes of this kind to mkimage. I only added missing ARM handling and the functions which now became mkimage-specific were moved to it. > > / > Leif > > [1] > ARM terminology - "trampolines" for ARM refers to something generated > on the stack, which we don't see anymore since the nested functions were > removed. > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel