[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xen/link: Move .data.rel.ro sections into .rodata for final link
On Wed, 2017-08-02 at 03:17 -0600, Jan Beulich wrote: > > >... but then again, if the whole function is really doing nothing at > >all when invoked with delta==0 then perhaps it would just be easier to > >remove the first pass altogether. I feel sure I'm missing something, > > The reason is even visible in context above: We can't call blexit() after > having called ExitBootServices(). Hence we need a "dry run" done early, > to be certain we won't encounter unhandlable relocations later on. Ah, thanks. I'd glossed over that as a "can never happen" condition. And the 'default:' case really is that — the build system is broken if we ever see that. But the DIR64 / in_page_tables() one is less provably impossible. > >Either way, this is still broken before my patch though, right? > > As long as there are .rodata entries needing relocation (which I > understand you've found example of), yes. And more to the point, .init.text entries needing relocation (since UEFI isn't marking read-only *data* sections read-only yet for some reason; only R+X sections). But still that basically means that new versions of UEFI are going to stop booting all existing EFI Xen images, doesn't it? Perhaps we should look for a mitigation on the UEFI side. Jeff, Jiewen, has this actually been shipped in an EDK2 release yet? I confess I haven't actually built a current OVMF and *tested* the hypothesis that it breaks; it just seems "obvious" :) Adding Mark. Background: we think https://github.com/tianocore/edk2/commit/d0e92aad46 will break existing Xen EFI binaries because they write to a read-only code section (.init.te) before calling ExitBootServices(). Attachment:
smime.p7s _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |