> On Mar 12, 2016, at 3:39 PM, Daryl McDaniel <edk2-li...@mc2research.org> 
> wrote:
> 
>> -----Original Message-----
>> From: Laszlo Ersek [mailto:ler...@redhat.com]
>> Sent: Thursday, February 25, 2016 2:01 AM
>> To: David Woodhouse <dw...@infradead.org>; edk2-devel-01 
>> <edk2-de...@ml01.01.org>
>> Cc: Eric Dong <eric.d...@intel.com>; Cecil Sheng <cecil.sh...@hpe.com>; Ting 
>> Ye
>> <ting...@intel.com>; Qiu Shumin <shumin....@intel.com>; Qin Long
>> <qin.l...@intel.com>; Liming Gao <liming....@intel.com>; Yao Jiewen
>> <jiewen....@intel.com>; Daryl McDaniel <edk2-li...@mc2research.org>; Jaben 
>> Carsey
>> <jaben.car...@intel.com>; Samer El-Haj-Mahmoud <el...@hpe.com>
>> Subject: Re: [edk2] [PATCH 0/4] free(NULL) and realloc(NULL, size) 
>> conformance
>> improvements
>> 
>> On 02/25/16 03:04, David Woodhouse wrote:
>>> On Wed, 2016-02-24 at 22:13 +0100, Laszlo Ersek wrote:
>>>> The free() wrapper in BaseCryptLib has a bug that has been triggered
>>>> by David's recent OpenSSL work. The series fixes the bug, plus
>>>> more instances of the same.
>>> 
>>> Should we not just fix the underlying FreePool() function to do the
>>> sane thing.
>> 
>> It crossed my mind, but FreePool() is extremely widely used, it has a
>> detailed interface contract, and its current behavior matches its
>> interface contract. I'm not up to auditing all uses of FreePool(), to
>> find the one that perversely enforces a failure return form
>> FreePool(NULL). :)
>> 
>>> Anyway, I've rebased my tree on top of yours,
>> 
>> Thanks -- I'll push the first three patches to edk2 master in a minute,
>> and I'll post a new version of the fourth.
>> 
>>> split up the patch
>>> changes into separate bisectable commits, and pushed my tree out again
>>> to http://git.infradead.org/users/dwmw2/edk2.git
>> 
>> I skimmed your fresh master -- the way the patch evolves looks
>> excellent. I guess it took a lot of effort.
>> 
>>> Both Cryptest.efi and the test boot of Fedora 22 are working correctly
>>> at all stages.
>> 
>> Perfect.
>> 
>>> Again, the final two commits aren't ready yet. But the rest probably
>>> are if they build OK on Windows.
>>> 
>>> I do still want to kill that -w. And why in $DEITY's name do we not
>>> already have -nostdinc in our CFLAGS for the whole EDK2 build?
> 
> The -nostdinc equivalent for Visual Studio breaks the NT32 build and there is 
> no way to negate the flag once it has been specified.
> 
> There would have to be a new target added just for NT32 builds.
> 

Would it be possible to fix the NT32 issue in a n INF file? It looks like the 
NT32 App is using == to override compiler flags?

https://github.com/tianocore/edk2/blob/master/Nt32Pkg/Sec/SecMain.inf

[BuildOptions]

  MSFT:*_*_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 
/pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG 
Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib

  MSFT:*_VS2015_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" 
/base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG 
Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib 
Winmm.lib Advapi32.lib

  MSFT:*_VS2015x86_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" 
/base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG 
Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib 
Winmm.lib Advapi32.lib

  MSFT:*_*_IA32_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h 
/EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D 
_CRT_SECURE_NO_DEPRECATE

  MSFT:*_*_IA32_PP_FLAGS == /nologo /E /TC /FIAutoGen.h

  MSFT:*_*_IA32_ASM_FLAGS == /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi

  MSFT:*_*_IA32_ASMLINK_FLAGS       == /link /nologo /tiny


  MSFT:*_*_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 
/pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib\AMD64" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib\AMD64" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG 
Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib

  MSFT:*_VS2015_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" 
/base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" 
/LIBPATH:"$(VCINSTALLDIR)\Lib\AMD64" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib\AMD64" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG 
Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib 
Winmm.lib Advapi32.lib

  MSFT:*_VS2015x86_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" 
/base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" 
/LIBPATH:"$(VCINSTALLDIR)\Lib\AMD64" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib\AMD64" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG 
Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib 
Winmm.lib Advapi32.lib

  MSFT:*_*_X64_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h 
/EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D 
_CRT_SECURE_NO_DEPRECATE

  MSFT:*_*_X64_PP_FLAGS == /nologo /E /TC /FIAutoGen.h

  MSFT:*_*_X64_ASM_FLAGS == /nologo /W3 /WX /c /Cx /Zd /W0 /Zi

  MSFT:*_*_X64_ASMLINK_FLAGS       == /link /nologo


  INTEL:*_*_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 
/pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"C:\Program 
Files\Intel\Compiler\C++\9.1\IA32\Lib" /LIBPATH:"$(VCINSTALLDIR)\Lib" 
/LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE 
/NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG 
Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib

  INTEL:*_*_IA32_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h 
/EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D 
_CRT_SECURE_NO_DEPRECATE

  INTEL:*_*_IA32_PP_FLAGS == /nologo /E /TC /FIAutoGen.h

  INTEL:*_*_IA32_ASM_FLAGS == /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi

  INTEL:*_*_IA32_ASMLINK_FLAGS       == /link /nologo /tiny

Thanks,

Andrew Fish

>> I propose to involve our BaseTools overlords here...
>> 
>> Thanks
>> Laszlo
> 
> Daryl McDaniel
> 
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to