From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.120]) by mx.groups.io with SMTP id smtpd.web11.840.1591730917056466103 for ; Tue, 09 Jun 2020 12:28:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=G8XmNSls; spf=pass (domain: redhat.com, ip: 207.211.31.120, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591730916; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=foH75N0UW0Tb6WS/hruUdUHn1ko+Xx6+hjZcF6ssVgU=; b=G8XmNSls29cL9u+ka+gEM+2Y3JYxKNvsxatd3ZV/U7ZaTSt+MSlv1nd3xEGhTav6VKT19I 60QrXK8R+OpBNlNkpecjzqBdR5N/VYgGTWvA/i6JMxW8Tcl4UQ6DeoMRaD0M17oP015AwF 3MQGnr1e0G7zSpYzzeDhbcEUh7orqTc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-419-Q5rVDSILMO25ok4MAMtFXg-1; Tue, 09 Jun 2020 15:28:33 -0400 X-MC-Unique: Q5rVDSILMO25ok4MAMtFXg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C023864ACA; Tue, 9 Jun 2020 19:28:31 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-112-194.ams2.redhat.com [10.36.112.194]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1ECF7891CE; Tue, 9 Jun 2020 19:28:29 +0000 (UTC) Subject: Re: [edk2-devel] [edk2-InfSpecification PATCH] Clarify statement on package ordering From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Andrew Fish , Leif Lindholm , Michael Kinney , Pankaj Bansal , =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?= Reply-To: devel@edk2.groups.io, lersek@redhat.com References: <20200603180438.25361-1-lersek@redhat.com> Message-ID: <1984f826-20be-a16b-8fac-603410438b75@redhat.com> Date: Tue, 9 Jun 2020 21:28:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20200603180438.25361-1-lersek@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 06/03/20 20:04, Laszlo Ersek wrote: > The description of [Packages] sections states, > >> Packages must be listed in the order that may be required for specifying >> include path statements for a compiler. For example, the >> MdePkg/MdePkg.dec file must be listed before the >> MdeModulePkg/MdeModulePkg.dec file. > > Clarify that the listing order in [Packages] is only relevant for > resolving header file name collisions between packages. Mention that such > collisions are generally not expected. Remove the example about MdePkg and > MdeModulePkg, because both of those are in edk2, and we'd certainly > address a collision between those packages explicitly (e.g., by renaming > one of the subject header files). > > Cc: Andrew Fish > Cc: Leif Lindholm > Cc: Michael Kinney > Cc: Pankaj Bansal > Cc: Philippe Mathieu-Daudé > Suggested-by: Leif Lindholm > Signed-off-by: Laszlo Ersek > --- > > Notes: > (1) This is the one shot I'm willing to take. If it's not accepted, > someone else will have to work on this. (I only meant to provide > some wording ideas under Leif's patch; I don't have time for > multiple iterations on an actual INF spec patch.) > > (2) Repo: https://github.com/lersek/edk2-InfSpecification > Branch: pkgs_order > > (3) Rendered view: > > https://lersek.gitbook.io/laszlo-s-fork-of-the-edk-ii-module-information-inf/v/pkgs_order/3_edk_ii_inf_file_format/37_-packages-_sections#summary > > 3_edk_ii_inf_file_format/37_[packages]_sections.md | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/3_edk_ii_inf_file_format/37_[packages]_sections.md b/3_edk_ii_inf_file_format/37_[packages]_sections.md > index 17a8d91ec8aa..6f8b8b6dd250 100644 > --- a/3_edk_ii_inf_file_format/37_[packages]_sections.md > +++ b/3_edk_ii_inf_file_format/37_[packages]_sections.md > @@ -42,11 +42,16 @@ Defines the `[Packages]` section tag that is used in EDK II module INF files. > Each entry in this section contains a directory name, forward slash character > and the name of the DEC file contained in the directory name. > > -Packages must be listed in the order that may be required for specifying > -include path statements for a compiler. For example, the _MdePkg/MdePkg.dec_ > -file must be listed before the `MdeModulePkg/MdeModulePkg.dec` file. If there > -are PCDs listed in the generated "As Built" INF, the packages that declare any > -PCDs must be listed in this section. > +The order in which packages are listed may be relevant. Said order specifies in > +what order include path statements are generated for a compiler. This may help > +resolve header file name collisions between packages (although such collisions > +are normally not expected). For setting specific include path priorities, the > +packages may be listed in matching order in the INF file. Listing a package > +earlier will cause a compiler to consider include paths from that package > +earlier. > + > +If there are PCDs listed in the generated "As Built" INF, the packages that > +declare any PCDs must be listed in this section. > > Each package filename must be listed only once per section. Package filenames > listed in architectural sections are not permitted to be listed in the common > Pushed as commit 1e0698a2e33e. Thanks! Laszlo