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

Reply via email to