[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH, RFC, RFT] ARM relocation fixes
From: |
Leif Lindholm |
Subject: |
Re: [PATCH, RFC, RFT] ARM relocation fixes |
Date: |
Mon, 2 Dec 2013 15:33:06 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Dec 02, 2013 at 03:14:50PM +0100, Leif Lindholm wrote:
> On Mon, Dec 02, 2013 at 02:30:51PM +0100, Leif Lindholm wrote:
> > > >>> 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)
> > > >
> > > > Ok, I'll hold off.
> > > >
> > > I've uploaded current work to phcoder/reloc
> >
> > Ok, so I've tested this on arm64, and it works on the commercial FVP
> > Base model (which does not trigger veneer generation due to its runtime
> > memory map), but crashes on the Foundation model (which does).
> > So the generic dl refactoring seems correct, but somehing about the
> > veneers is fishy.
>
> Well, this one seems to be because mod->trampptr is never initilised
> (which should be a problem also on the other archs?).
>
> With
> diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
> index 33ccc98..92027e0 100644
> --- a/grub-core/kern/dl.c
> +++ b/grub-core/kern/dl.c
> @@ -317,6 +317,7 @@ grub_dl_load_segments (grub_dl_t mod, const Elf_Ehdr *e)
> #if !defined (__i386__) && !defined (__x86_64__) && !defined (__sparc__)
> ptr = (char *) ALIGN_UP ((grub_addr_t) ptr, GRUB_ARCH_DL_TRAMP_ALIGN);
> mod->tramp = ptr;
> + mod->trampptr = (ptr + tramp);
> ptr += tramp;
> ptr = (char *) ALIGN_UP ((grub_addr_t) ptr, GRUB_ARCH_DL_GOT_ALIGN);
> mod->got = ptr;
>
> This runs successfully on my foundation model.
Umm, that's obviously not correct. But it did work :)
What is needed is to store the size of the module before adding
trampoline and got sizes.
/
Leif
- [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/01
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes,
Leif Lindholm <=
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/02
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/03
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Leif Lindholm, 2013/12/03
- Re: [PATCH, RFC, RFT] ARM relocation fixes, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/12/03