public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Yuwei Chen" <yuwei.chen@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"pierre.gondois@arm.com" <pierre.gondois@arm.com>,
	"Feng, Bob C" <bob.c.feng@intel.com>,
	"gaoliming@byosoft.com.cn" <gaoliming@byosoft.com.cn>,
	"rebecca@nuviainc.com" <rebecca@nuviainc.com>,
	"sami.mujawar@arm.com" <sami.mujawar@arm.com>
Cc: "leif@nuviainc.com" <leif@nuviainc.com>
Subject: Re: [edk2-devel] [PATCH v2 1/1] BaseTools: Align include guards policy
Date: Thu, 18 Feb 2021 00:39:03 +0000	[thread overview]
Message-ID: <DM5PR11MB15947D85E7D3ADD2A1AEED3E96859@DM5PR11MB1594.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210216092907.27870-1-Pierre.Gondois@arm.com>

Hi Pierre,

There seems already have a Bugzilla link for this issue: https://bugzilla.tianocore.org/show_bug.cgi?id=3094
And a personally concern: Some of the current codes still use "_***_H_", such as " __PEI_APRIORI_FILE_NAME_H__ ". If the ECC check only support the coding standard you mentioned, will we need to change all these codes? Or should ECC check support the origin format too?

Regards,
Yuwei (Christine) 
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> PierreGondois
> Sent: Tuesday, February 16, 2021 5:29 PM
> To: devel@edk2.groups.io; Feng, Bob C <bob.c.feng@intel.com>;
> gaoliming@byosoft.com.cn; rebecca@nuviainc.com;
> sami.mujawar@arm.com
> Cc: leif@nuviainc.com
> Subject: [edk2-devel] [PATCH v2 1/1] BaseTools: Align include guards policy
> 
> From: Pierre Gondois <Pierre.Gondois@arm.com>
> 
> The EDK II C Coding Standards Specification states that:
> "Names starting with one or two underscores, such as
> _MACRO_GUARD_FILE_NAME_H_, must not be used. They are reserved for
> compiler implementation." [1]
> 
> The Ecc tool currently checks that the include guard end with a trailing
> underscore. Thus, the check and the error message should both be modified.
> 
> The new check forces having one sole trailing underscore character, as the
> example in the specification shows:
> "FILE_NAME_H_" [1]
> This would allow to have more consistency.
> 
> [1] Section 5.3.5 "All include file contents must be protected by a #include
> guard":
> https://edk2-docs.gitbook.io/
> edk-ii-c-coding-standards-specification/
> 5_source_files/53_include_files
> 
> Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
> Reviewed-by: Sami Mujawar <Sami.Mujawar@arm.com>
> ---
> The changes can be seen at:
> https://github.com/PierreARM/edk2/tree/1619_Ecc_BaseTools_include_gua
> rds_v2
> 
> Notes:
>     v2:
>      - Place new copyright on top of old ones [Rebecca]
> 
>  BaseTools/Source/Python/Ecc/Check.py        | 3 ++-
>  BaseTools/Source/Python/Ecc/EccToolError.py | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/Ecc/Check.py
> b/BaseTools/Source/Python/Ecc/Check.py
> index 6087abfa4d8d..7a012617fd35 100644
> --- a/BaseTools/Source/Python/Ecc/Check.py
> +++ b/BaseTools/Source/Python/Ecc/Check.py
> @@ -1,6 +1,7 @@
>  ## @file
>  # This file is used to define checkpoints used by ECC tool  #
> +# Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
>  # Copyright (c) 2008 - 2020, Intel Corporation. All rights reserved.<BR>  #
> SPDX-License-Identifier: BSD-2-Clause-Patent  # @@ -1438,7 +1439,7 @@
> class Check(object):
>              RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)
>              for Record in RecordSet:
>                  Name = Record[1].replace('#ifndef', '').strip()
> -                if Name[-1] != '_':
> +                if Name[0] == '_' or Name[-1] != '_' or Name[-2] == '_':
>                      if not
> EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHE
> CK_IFNDEF_STATEMENT, Name):
> 
> EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK
> _IFNDEF_STATEMENT, OtherMsg="The #ifndef name [%s] does not follow
> the rules" % (Name), BelongsToTable=FileTable, BelongsToItem=Record[0])
> 
> diff --git a/BaseTools/Source/Python/Ecc/EccToolError.py
> b/BaseTools/Source/Python/Ecc/EccToolError.py
> index 0ff3b42674d4..d97bf7948ce8 100644
> --- a/BaseTools/Source/Python/Ecc/EccToolError.py
> +++ b/BaseTools/Source/Python/Ecc/EccToolError.py
> @@ -1,6 +1,7 @@
>  ## @file
>  # Standardized Error Handling infrastructures.
>  #
> +# Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
>  # Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>  #
> SPDX-License-Identifier: BSD-2-Clause-Patent  # @@ -161,7 +162,7 @@
> gEccErrorMessage = {
>      ERROR_NAMING_CONVENTION_CHECK_ALL : "",
>      ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT : "Only
> capital letters are allowed to be used for #define declarations",
>      ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT : "Only
> capital letters are allowed to be used for typedef declarations",
> -    ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT : "The
> #ifndef at the start of an include file should use both prefix and postfix
> underscore characters, '_'",
> +    ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT : "The
> #ifndef at
> + the start of an include file should have one postfix underscore, and
> + no prefix underscore character '_'",
>      ERROR_NAMING_CONVENTION_CHECK_PATH_NAME : """Path name
> does not follow the rules: 1. First character should be upper case 2. Must
> contain lower case characters 3. No white space characters""",
>      ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME : """Variable
> name does not follow the rules: 1. First character should be upper case 2.
> Must contain lower case characters 3. No white space characters 4. Global
> variable name must start with a 'g'""",
>      ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME : """Function
> name does not follow the rules: 1. First character should be upper case 2.
> Must contain lower case characters 3. No white space characters""",
> --
> 2.17.1
> 
> 
> 
> 
> 


  parent reply	other threads:[~2021-02-18  0:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-16  9:29 [PATCH v2 1/1] BaseTools: Align include guards policy PierreGondois
2021-02-16  9:42 ` [edk2-devel] " PierreGondois
2021-02-18  0:39 ` Yuwei Chen [this message]
2021-02-18  5:36   ` 回复: " gaoliming
2021-02-18  5:38 ` gaoliming
     [not found] ` <1664C0F25AC013B0.21419@groups.io>
2021-02-26  5:15   ` gaoliming

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=DM5PR11MB15947D85E7D3ADD2A1AEED3E96859@DM5PR11MB1594.namprd11.prod.outlook.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