From mboxrd@z Thu Jan 1 00:00:00 1970 From: AKASHI Takahiro Date: Fri, 24 Apr 2020 12:50:07 +0900 Subject: [PATCH] lib/crypto, efi_loader: avoid multiple inclusions of header files In-Reply-To: <71d85bbd-9d66-7198-9417-c8c2a6c22255@gmx.de> References: <20200421003752.16009-1-takahiro.akashi@linaro.org> <2bddbbdf-e92c-d2bd-73f7-ab72e9f44e9b@gmx.de> <20200423002826.GD28438@laputa> <71d85bbd-9d66-7198-9417-c8c2a6c22255@gmx.de> Message-ID: <20200424035007.GB16277@laputa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Heinrich, On Thu, Apr 23, 2020 at 09:34:37AM +0200, Heinrich Schuchardt wrote: > On 23.04.20 02:28, AKASHI Takahiro wrote: > > Heinrich, > > > > On Tue, Apr 21, 2020 at 12:23:13PM +0200, Heinrich Schuchardt wrote: > >> On 4/21/20 2:37 AM, AKASHI Takahiro wrote: > >>> By adding extra symbols, we can now avoid including x509_parser and > >>> pkcs7_parser.h files multiple times. > >>> > >>> Signed-off-by: AKASHI Takahiro > >>> Suggested-by: Heinrich Schuchardt > >>> --- > >>> lib/crypto/pkcs7_parser.h | 4 ++++ > >>> lib/crypto/x509_parser.h | 4 ++++ > >>> lib/efi_loader/efi_image_loader.c | 1 + > >>> lib/efi_loader/efi_signature.c | 1 + > >>> 4 files changed, 10 insertions(+) > >>> > >>> diff --git a/lib/crypto/pkcs7_parser.h b/lib/crypto/pkcs7_parser.h > >>> index 6565fdc2d4ca..b8234da45a6a 100644 > >>> --- a/lib/crypto/pkcs7_parser.h > >>> +++ b/lib/crypto/pkcs7_parser.h > >>> @@ -5,6 +5,9 @@ > >>> * Written by David Howells (dhowells at redhat.com) > >>> */ > >>> > >>> +#ifndef _PKCS7_PARSER_H > >>> +#define _PKCS7_PARSER_H > >>> + > >>> #include > >>> #include > >>> #include "x509_parser.h" > >>> @@ -63,3 +66,4 @@ struct pkcs7_message { > >>> size_t data_hdrlen; /* Length of Data ASN.1 header */ > >>> const void *data; /* Content Data (or 0) */ > >>> }; > >>> +#endif /* _PKCS7_PARSER_H */ > >>> diff --git a/lib/crypto/x509_parser.h b/lib/crypto/x509_parser.h > >>> index c233f136fb35..4cbdc1d6612d 100644 > >>> --- a/lib/crypto/x509_parser.h > >>> +++ b/lib/crypto/x509_parser.h > >>> @@ -5,6 +5,9 @@ > >>> * Written by David Howells (dhowells at redhat.com) > >>> */ > >>> > >>> +#ifndef _X509_PARSER_H > >>> +#define _X509_PARSER_H > >>> + > >>> #include > >>> #include > >>> #include > >>> @@ -55,3 +58,4 @@ extern int x509_decode_time(time64_t *_t, size_t hdrlen, > >>> */ > >>> extern int x509_get_sig_params(struct x509_certificate *cert); > >>> extern int x509_check_for_self_signed(struct x509_certificate *cert); > >>> +#endif /* _X509_PARSER_H */ > >>> diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c > >>> index 6c270ce94f44..899adf8493d0 100644 > >>> --- a/lib/efi_loader/efi_image_loader.c > >>> +++ b/lib/efi_loader/efi_image_loader.c > >>> @@ -14,6 +14,7 @@ > >>> #include > >>> #include > >>> #include "../lib/crypto/pkcs7_parser.h" > >>> +#include "../lib/crypto/x509_parser.h" > >> > >> As pkcs7_parser.h includes x509_parser.h there is no reason to include > >> it again. > > > > No, I don't think so. > > > > My style of coding is that, if a symbol is used in a C file and it is > > defined in a header file, the header file should be *directly* included > > in the C file. > > I believe that it is the common way so that we can avoid any "implicit" > > dependencies among header files. > > We want U-Boot to build as fast as possible. So we should not include > anything twice. When looking through the rest of the U-Boot code you > will have noticed that we do not include malloc.h and stdio.h everywhere > because it is included via common.h. The same comment here. -Takahiro Akashi > As an example of a patch removing other unnecessary includes see for > instance: > > cmd: fat: remove unused includes > fd0e30b43b6b2401e68dc32c357869c617d4fdd1 > > Best regards > > Heinrich > > > > > Thanks, > > -Takahiro Akashi > > > > > >>> > >>> const efi_guid_t efi_global_variable_guid = EFI_GLOBAL_VARIABLE_GUID; > >>> const efi_guid_t efi_guid_device_path = EFI_DEVICE_PATH_PROTOCOL_GUID; > >>> diff --git a/lib/efi_loader/efi_signature.c b/lib/efi_loader/efi_signature.c > >>> index 658e3547da37..6ad09e4acbd7 100644 > >>> --- a/lib/efi_loader/efi_signature.c > >>> +++ b/lib/efi_loader/efi_signature.c > >>> @@ -15,6 +15,7 @@ > >>> #include > >>> #include > >>> #include "../lib/crypto/pkcs7_parser.h" > >>> +#include "../lib/crypto/x509_parser.h" > >> > >> Same here. > >> > >> The rest is correct and should be merged. > >> > >> Best regards > >> > >> Heinrich > >> > >>> > >>> const efi_guid_t efi_guid_image_security_database = > >>> EFI_IMAGE_SECURITY_DATABASE_GUID; > >>> > >> >