On 04/29/19 18:40, Kinney, Michael D wrote:
> Hi Laszlo,
> 
> I have entered 2 BZ for the STATIC -> static conversion.
> one for the EDK II C Coding Standard Specification and 
> one for the C code in EDK II.
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=1766
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=1767
> 
> Converting all CONST -> const will require additional 
> discussion because the UEFI Specification defines the 
> keyword 'CONST' in Section 2.3.1 - Data Types and is
> consistently used in APIs defined in the UEFI/PI 
> Specifications.

Good point, thanks!
Laszlo

> 
> Best regards,
> 
> Mike
> 
>> -----Original Message-----
>> From: Laszlo Ersek [mailto:ler...@redhat.com]
>> Sent: Friday, April 26, 2019 9:49 AM
>> To: Ard Biesheuvel <ard.biesheu...@linaro.org>; Kinney,
>> Michael D <michael.d.kin...@intel.com>
>> Cc: devel@edk2.groups.io; Gao, Zhichao
>> <zhichao....@intel.com>; Gao, Liming
>> <liming....@intel.com>; Bi, Dandan <dandan...@intel.com>
>> Subject: Re: [edk2-devel] [PATCH V2 3/8]
>> MdePkg/UefiDebugLibStdErr: Decrease the name collisions
>>
>> On 04/24/19 19:09, Ard Biesheuvel wrote:
>>> On Wed, 24 Apr 2019 at 18:59, Kinney, Michael D
>>> <michael.d.kin...@intel.com> wrote:
>>>>
>>>> Hi Ard,
>>>>
>>>> I see a mix of use of 'static' and 'STATIC' in the
>> sources.
>>>>
>>>> The reason to use STATIC is if it needs to be
>> replaced with
>>>> something other than 'static' for a specific compiler
>> or
>>>> debug scenario.
>>>>
>>>> Long ago, there were some source level debug issue
>> with
>>>> 'static' symbols, so using the macro STATIC was
>> preferred
>>>> so it could be mapped to nothing for a debug
>> scenario. That
>>>> issue no long exists.
>>>>
>>>> Do you know of a reason today to map 'STATIC' to
>> anything
>>>> Other than 'static'?
>>>>
>>>> I also looked at the EDK II C Coding Standard.  It is
>> also
>>>> inconsistent and had references to both 'static' and
>> 'STATIC'.
>>>> We should enter a few BZs to update that doc once we
>> have
>>>> clear guidance from this discussion.
>>>>
>>>
>>> I wasn't aware that lower case static is also in use,
>> so I was simply
>>> extrapolating from personal experience.
>>
>> +1
>>
>>> i think there should be no reason to use the
>> preprocessor to change
>>> 'static' into something else, and so I'm happy to
>> settle on lowercase
>>> static, as long as we are consistent.
>>
>> +1 (same for CONST / const)
>>
>>> But more importantly, now that
>>> this has come up, what I would like to do is make
>> 'static' mandatory
>>> unless the code requires otherwise: this results in
>> much better code
>>> generation (given that the compiler can infer
>> constness for non-const
>>> static variables but not for ones with external
>> linkage) and generally
>>> improves programmer hygiene when it comes to linking
>> to arbitrary
>>> symbols that are really internal to a library.
>>
>> I agree; for new code, giving internal linkage to as
>> many as possible
>> objects that have static storage duration is the way to
>> go. ("Make as
>> many globals 'static' as you can.")
>>
>> Thanks
>> Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#39833): https://edk2.groups.io/g/devel/message/39833
Mute This Topic: https://groups.io/mt/31318888/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to