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. 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 (#39791): https://edk2.groups.io/g/devel/message/39791 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] -=-=-=-=-=-=-=-=-=-=-=-