I have a crash but it was caused by bad GDT loaded by AsmPrepareThunk16. This is for X64 arch.
And the reason is that _BackFromUserCode.Base has a wrong symbol address. Thus all calculations related to are wrong too. I messed up with NASM and my environments a bit. I was still using NASM 2.09 while I though it should be 2.07. Finally I found a first bad commit into NASM tree broke this thing. Actually this won't work in a range 2.09.04 - 2.10rc1. Such minor issue but unfortunately all my environments are NASM 2.09.XX... Could you recheck this? Thank you for your attention. On Mon, 2014-09-01 at 16:29 -0700, Jordan Justen wrote: > On Mon, Sep 1, 2014 at 1:36 PM, Mike Maslenkin <[email protected]> wrote: > > Jordan, will this work with NASM 2.07? > > > > As I noticed on [patch 7/8]MdePkg/BaseLib NASM Thunk16: Use bits 16 for > > 16-bit code > > NASM produces bad object file for construction > > > > push ss > > push cs > > o32 call dword .Base ; push eip > > .Base: > > push dword 0 > > > > I've contacted with one on NASM maintainers (Cyrill Gorcunov) and he > > confirmed a problem. > > Actually I've been waiting for hpa@ response on this. > > > > This issue was fixed indirectly between 2.09.10 and 2.10 versions. > > So, looks like NASM 2.07 will not work, as I reported... > > > > Let's remove o32 prefix there. > > I can't reproduce the issue with ovmf, kvm and nasm 2.07 on either IA32 or > X64. > > You don't see a build error, but a runtime crash, right? IA32, X64 or both? > > I think removing the o32 worked for me as well. > > -Jordan > > > On Mon, 2014-09-01 at 10:41 -0700, Jordan Justen wrote: > >> For now, Visual Studio, WINDDK and ICC don't have this new dependency. > >> > >> NASM 2.07 or newer should most likely be available for your OS. (Check > >> your package manager.) > >> > >> For OS X, it looks like binaries can be downloaded: > >> http://www.nasm.us/pub/nasm/releasebuilds/2.11.05/macosx/ > >> > >> If you want to use a specific NASM for your EDK II builds, then you > >> can set the NASM_PREFIX environment variable. > >> > >> -Jordan > >> > >> ------------------------------------------------------------------------------ > >> Slashdot TV. > >> Video for Nerds. Stuff that matters. > >> http://tv.slashdot.org/ > >> _______________________________________________ > >> edk2-devel mailing list > >> [email protected] > >> https://lists.sourceforge.net/lists/listinfo/edk2-devel > > > > > > > > ------------------------------------------------------------------------------ > > Slashdot TV. > > Video for Nerds. Stuff that matters. > > http://tv.slashdot.org/ > > _______________________________________________ > > edk2-devel mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/edk2-devel > > ------------------------------------------------------------------------------ > Slashdot TV. > Video for Nerds. Stuff that matters. > http://tv.slashdot.org/ > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
