On 01/15/14 07:31, Gary Ching-Pang Lin wrote:
> Hi,
>
> I recently started to build OVMF on my openSUSE 13.1 box and found the
> secure boot config menu went blank. After several tests, the root
> cause is identified:
>
> https://sourceware.org/git/?p=glibc.git;a=commit;h=2d48b41c8fa610067c4d664ac2339ae6ca43e78c
>
> This glibc commit is included in glibc 2.18 and introduces a faster
> memcpy which somehow breaks the sb config menu.
>
> The known affected system: openSUSE 13.1 and fedora 20

That glibc commit seems to be full of SSE code.

For reference, please see the following OVMF commit:

https://github.com/tianocore/edk2/commit/4a8266f5

Apparently the glibc code (or maybe a gcc intrinsic?) "leaks" into the
OVMF build. This should never happen.

We need to find the offending code in OVMF. I have no better idea than:

Please locate the EFI file corresponding to the secure boot config form
(I think it's called SecureBootConfigDxe.efi) in your Build directory.
Then please run "objdump -S" on it, and try to find any SSE instructions
(like movdqu) and cross-reference them with the C source.

I'm not 100% sure but for the last step you might need to build your
tree with the following patch in place first:

    diff --git a/BaseTools/Conf/tools_def.template 
b/BaseTools/Conf/tools_def.template
    index ec4eb97..129f043 100644
    --- a/BaseTools/Conf/tools_def.template
    +++ b/BaseTools/Conf/tools_def.template
    @@ -3129,7 +3129,7 @@ NOOPT_DDK3790xASL_IPF_DLINK_FLAGS    = /NOLOGO 
/NODEFAULTLIB /LTCG /DLL /OPT:REF
     *_*_*_OBJCOPY_FLAGS             = objcopy not needed for
     *_*_*_SYMRENAME_PATH            = echo
     *_*_*_SYMRENAME_FLAGS           = Symbol renaming not needed for
    -DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG     = 
--add-gnu-debuglink=$(DEBUG_DIR)\$(MODULE_NAME).debug
    +DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG     = 
--add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
     RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG   =

     DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar 
-fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c 
-include AutoGen.h

(If this proves indeed necessary, then you need to make sure that this
change takes effect in "Conf/tools_def.txt" too.)

Thanks,
Laszlo

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to