Michael:
  I try VS compiler. When I add NORETURN as the first attribute of the function 
declaration. It can pass build. On VS compiler, NORETURN is required to be 
placed ahead of EFIAPI.

VOID
EFIAPI
NORETURN
LongJump (
  IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,
  IN      UINTN                     Value
  );

==>

NORETURN
VOID
EFIAPI
LongJump (
  IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,
  IN      UINTN                     Value
  );

Thanks
Liming
From: Michael Zimmermann [mailto:sigmaepsilo...@gmail.com]
Sent: Wednesday, December 27, 2017 4:01 AM
To: Gao, Liming <liming....@intel.com>
Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>; edk2-devel@lists.01.org; 
Kinney, Michael D <michael.d.kin...@intel.com>
Subject: Re: [edk2] [PATCH 1/3] MdePkg: add RETURNS_TWICE attribute

Liming:
I've never used VS to compile edk2 but to me it looks like it doesn't like what 
NORETURN is expanding to ('__declspec(noreturn)').

If that is the case it's a generic bug because this patch set did not add the 
NORETURN macro.


On Tue, Dec 26, 2017 at 5:51 PM, Gao, Liming 
<liming....@intel.com<mailto:liming....@intel.com>> wrote:
Michael:
  I suggest to add comments for each definition although there is redundant.

  Besides, after I apply these three patches, and build MdePkg.dsc with 
VS2015x86. It will report below error. Could you help look it?

        "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\cl.exe" 
/Foc:\r9tips\allpkg\edk2\Build\Mde\DEBUG_VS2015x86\IA32\MdePkg\Library\BaseCacheMaintenanceLib\BaseCacheMaintenanceLib\OUTPUT\.\X86Cache.obj
 /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h 
/EHs-c- /GR- /GF /Gy /Zi /Gm /Gw -D DISABLE_NEW_DEPRECATED_INTERFACES 
/Ic:\r9tips\allpkg\edk2\MdePkg\Library\BaseCacheMaintenanceLib  
/Ic:\r9tips\allpkg\edk2\Build\Mde\DEBUG_VS2015x86\IA32\MdePkg\Library\BaseCacheMaintenanceLib\BaseCacheMaintenanceLib\DEBUG
  /Ic:\r9tips\allpkg\edk2\MdePkg  /Ic:\r9tips\allpkg\edk2\MdePkg\Include  
/Ic:\r9tips\allpkg\edk2\MdePkg\Include\Ia32 
c:\r9tips\allpkg\edk2\MdePkg\Library\BaseCacheMaintenanceLib\X86Cache.c
X86Cache.c
c:\r9tips\allpkg\edk2\MdePkg\Include\Library/BaseLib.h(4933): error C2059: 
syntax error: 'type'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 
14.0\Vc\bin\cl.exe"' : return code '0x2'
Stop.

Thanks
Liming
From: Michael Zimmermann 
[mailto:sigmaepsilo...@gmail.com<mailto:sigmaepsilo...@gmail.com>]
Sent: Monday, December 25, 2017 11:50 PM
To: Gao, Liming <liming....@intel.com<mailto:liming....@intel.com>>
Cc: Ard Biesheuvel 
<ard.biesheu...@linaro.org<mailto:ard.biesheu...@linaro.org>>; 
edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>; Kinney, Michael D 
<michael.d.kin...@intel.com<mailto:michael.d.kin...@intel.com>>

Subject: Re: [edk2] [PATCH 1/3] MdePkg: add RETURNS_TWICE attribute

Liming:
The other macros have comments both before the compiler directives and before 
each define for each compiler.
To me it looks like these are slightly differently formulated only and kinda 
redundant too.
Is there a rule or do you have suggestions for writing comments for this kind 
of macro?

On Mon, Dec 25, 2017 at 4:11 AM, Gao, Liming 
<liming....@intel.com<mailto:liming....@intel.com>> wrote:
Micha:
   Could you add comments for new macro RETURNS_TWICE like others, such as 
ANALYZER_NORETURN?

>-----Original Message-----
>From: Ard Biesheuvel 
>[mailto:ard.biesheu...@linaro.org<mailto:ard.biesheu...@linaro.org>]
>Sent: Friday, December 22, 2017 11:24 PM
>To: M1cha <sigmaepsilo...@gmail.com<mailto:sigmaepsilo...@gmail.com>>
>Cc: edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>; Kinney, Michael D
><michael.d.kin...@intel.com<mailto:michael.d.kin...@intel.com>>; Gao, Liming 
><liming....@intel.com<mailto:liming....@intel.com>>
>Subject: Re: [edk2] [PATCH 1/3] MdePkg: add RETURNS_TWICE attribute
>
>On 22 December 2017 at 07:23, M1cha 
><sigmaepsilo...@gmail.com<mailto:sigmaepsilo...@gmail.com>> wrote:
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Michael Zimmermann 
>> <sigmaepsilo...@gmail.com<mailto:sigmaepsilo...@gmail.com>>
>> ---
>>  MdePkg/Include/Base.h | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
>>
>> diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h
>> index 22ab5d3715fb..c863de407418 100644
>> --- a/MdePkg/Include/Base.h
>> +++ b/MdePkg/Include/Base.h
>> @@ -218,6 +218,16 @@ VERIFY_SIZE_OF (__VERIFY_UINT32_ENUM_SIZE,
>4);
>>    #endif
>>  #endif
>>
>> +#ifndef RETURNS_TWICE
>> +  #if defined (__GNUC__) || defined (__clang__)
>> +    #define RETURNS_TWICE  __attribute__((returns_twice))
>> +  #elif defined(_MSC_EXTENSIONS) && !defined(MDE_CPU_EBC)
>> +    #define RETURNS_TWICE
>> +  #else
>> +    #define RETURNS_TWICE
>
>What is the point of having two versions that are #defined to nothing?
>
>> +  #endif
>> +#endif
>> +
>>  //
>>  // For symbol name in assembly code, an extra "_" is sometimes necessary
>>  //
>> --
>> 2.15.1
>>


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

Reply via email to