public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Gao, Zhichao" <zhichao.gao@intel.com>,
	"Gao, Liming" <liming.gao@intel.com>,
	"Bi, Dandan" <dandan.bi@intel.com>
Subject: Re: [edk2-devel] [PATCH V2 3/8] MdePkg/UefiDebugLibStdErr: Decrease the name collisions
Date: Fri, 26 Apr 2019 18:49:13 +0200	[thread overview]
Message-ID: <47188ce9-c3dc-89e7-c65a-a5fa8eccc7db@redhat.com> (raw)
In-Reply-To: <CAKv+Gu_79Ywcu+n8DqySGSiD00Ph3_zcP4KMORm2Ya_XcEs=1g@mail.gmail.com>

On 04/24/19 19:09, Ard Biesheuvel wrote:
> On Wed, 24 Apr 2019 at 18:59, Kinney, Michael D
> <michael.d.kinney@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

  parent reply	other threads:[~2019-04-26 16:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  4:58 [PATCH V2 0/8] Decrease the name collisions Gao, Zhichao
2019-04-24  4:58 ` [PATCH V2 1/8] MdePkg/UefiDebugLibConOut: " Gao, Zhichao
2019-04-24  4:58 ` [PATCH V2 2/8] MdePkg/UefiDebugLibDebugPortProtocol: " Gao, Zhichao
2019-04-24  4:58 ` [PATCH V2 3/8] MdePkg/UefiDebugLibStdErr: " Gao, Zhichao
2019-04-24  8:07   ` [edk2-devel] " Ard Biesheuvel
2019-04-24 16:59     ` Michael D Kinney
2019-04-24 17:09       ` Ard Biesheuvel
2019-04-24 17:31         ` Michael D Kinney
2019-04-24 17:51           ` Ard Biesheuvel
2019-10-15 11:20           ` Leif Lindholm
2019-04-26 16:49         ` Laszlo Ersek [this message]
2019-04-29 16:40           ` Michael D Kinney
2019-04-30  9:43             ` Laszlo Ersek
2019-04-24  4:58 ` [PATCH V2 4/8] IntelFrameworkModulePkg: " Gao, Zhichao
2019-04-24  4:58 ` [PATCH V2 5/8] MdeModulePkg/FirmwarePerformanceDxe: " Gao, Zhichao
2019-04-24  4:58 ` [PATCH V2 6/8] IntelFsp2WrapperPkg/FspWrapperNotifyDxe: " Gao, Zhichao
2019-04-24  5:19   ` Chiu, Chasel
2019-04-24  5:27   ` Nate DeSimone
2019-04-24  4:58 ` [PATCH V2 7/8] IntelFrameworkModulePkg: " Gao, Zhichao
2019-04-24  4:58 ` [PATCH V2 8/8] MdeModulePkg/StatusCodeHandlerRuntimeDxe: " Gao, Zhichao
2019-04-24 11:16 ` [PATCH V2 0/8] " Laszlo Ersek
2019-04-25  7:00   ` Gao, Zhichao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47188ce9-c3dc-89e7-c65a-a5fa8eccc7db@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox