From: "gaoliming" <gaoliming@byosoft.com.cn>
To: "'Ard Biesheuvel'" <ardb@kernel.org>, <devel@edk2.groups.io>,
<rebecca@bsdio.com>, "'Feng, Bob C'" <bob.c.feng@intel.com>,
"'Yuwei Chen'" <yuwei.chen@intel.com>
Cc: "'Andrew Fish'" <afish@apple.com>,
"'Leif Lindholm'" <quic_llindhol@quicinc.com>,
"'Michael D Kinney'" <michael.d.kinney@intel.com>,
"'Jian J Wang'" <jian.j.wang@intel.com>
Subject: 回复: [edk2-devel] MdeModulePkg build fails for AARCH64 on Ubuntu 22.04
Date: Tue, 23 Aug 2022 09:54:57 +0800 [thread overview]
Message-ID: <000a01d8b693$58d87c60$0a897520$@byosoft.com.cn> (raw)
In-Reply-To: <CAMj1kXESBTGLmERo3zGQYyf5y3+EYghi8rfyvBt+euFyOPedaw@mail.gmail.com>
Yuwei:
The commit 039bdb4d3e96f9c9264abf135b8a0eef2e2b4860 (BaseTools: Fix DSC LibraryClass precedence rule) introduces this issue. I agree with Ard suggestion to revert this change first for this stable tag 202208. Then, we can discuss this change in the detail.
Thanks
Liming
> -----邮件原件-----
> 发件人: Ard Biesheuvel <ardb@kernel.org>
> 发送时间: 2022年8月22日 17:34
> 收件人: devel@edk2.groups.io; rebecca@bsdio.com; Feng, Bob C
> <bob.c.feng@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>
> 抄送: Andrew Fish <afish@apple.com>; Leif Lindholm
> <quic_llindhol@quicinc.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Jian J Wang <jian.j.wang@intel.com>
> 主题: Re: [edk2-devel] MdeModulePkg build fails for AARCH64 on Ubuntu
> 22.04
>
> On Mon, 22 Aug 2022 at 11:30, Ard Biesheuvel <ardb@kernel.org> wrote:
> >
> > On Mon, 22 Aug 2022 at 11:11, Ard Biesheuvel <ardb@kernel.org> wrote:
> > >
> > > (cc Bob)
> > >
> > > NOTE this affects the stable tag - please see below
> > >
> > >
> > > On Sun, 21 Aug 2022 at 06:34, Rebecca Cran <rebecca@bsdio.com>
> wrote:
> > > >
> > > > I noticed that MdeModulePkg fails to build on my Ubuntu 22.04 system
> > > > (and previously on the Ubuntu 20.04 installation). Is this a known bug?
> > > >
> > > > It shouldn't be relevant, but I'm using gcc version 11.2.0 (Ubuntu
> > > > 11.2.0-17ubuntu1). But perhaps more relevant, I'm using Python 3.10.4.
> > > >
> > > > I'm trying to build commit
> e2ac68a23b4954d5c0399913a1df3dd9fd90315d.
> > > >
> > > >
> > > > bcran@photon:~/src/tmp/edk2$ build -p
> MdeModulePkg/MdeModulePkg.dsc -a
> > > > AARCH64 -t GCC5 -b RELEASE
> > > > Build environment: Linux-5.15.0-46-generic-x86_64-with-glibc2.35
> > > > Build start time: 22:29:18, Aug.20 2022
> > > >
> > > > WORKSPACE = /home/bcran/src/tmp/edk2
> > > > EDK_TOOLS_PATH = /home/bcran/src/tmp/edk2/BaseTools
> > > > CONF_PATH = /home/bcran/src/tmp/edk2/Conf
> > > > PYTHON_COMMAND = /usr/bin/python3
> > > >
> > > >
> > > > Processing meta-data
> > > > .Architecture(s) = AARCH64
> > > > Build target = RELEASE
> > > > Toolchain = GCC5
> > > >
> > > > Active Platform =
> > > > /home/bcran/src/tmp/edk2/MdeModulePkg/MdeModulePkg.dsc
> > > >
> > > >
> > > > build.py...
> > > >
> /home/bcran/src/tmp/edk2/MdeModulePkg/Library/SmmLockBoxLib/SmmL
> ockBoxPeiLib.inf(42):
> > > > error 3000: PCD
> > > > [gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode] in
> > > >
> [/home/bcran/src/tmp/edk2/MdeModulePkg/Library/SmmLockBoxLib/SmmL
> ockBoxPeiLib.inf]
> > > > is not found in dependent packages:
> > > > /home/bcran/src/tmp/edk2/MdePkg/MdePkg.dec
> > > >
> /home/bcran/src/tmp/edk2/MdeModulePkg/MdeModulePkg.dec
> > > >
> > > >
> > >
> > > This looks like a BaseTools regression to me - afaik, these packages
> > > all used to build for AARCH64 in the past.
> > >
> > > The following LockBoxLib resolutions appear in MdeModulePkg.dsc (with
> > > line numbers)
> > >
> > > 115-[LibraryClasses.common.PEIM]
> > > 119:
> LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
> > >
> > > 178-[LibraryClasses.ARM, LibraryClasses.AARCH64]
> > > 181:
> LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
> > >
> > > No other [LlibraryClasses] references to SmmLockBoxPeiLib.inf exist in
> > > that file, and the [Components] reference does not apply to AARCH64.
> > >
> > > This means the DSC parser ends up using the earlier definition, which
> > > I think is a bug, or at least a change in behavior. Note that doing
> > > this silently could potentially break many platforms in subtle ways so
> > > I think this should be root caused and preferably fixed before
> > > creating the stable tag.
> >
> > Seems to be deliberate:
> >
> > commit 039bdb4d3e96f9c9264abf135b8a0eef2e2b4860
> > Author: Chen, Christine <Yuwei.Chen@intel.com>
> > Date: Thu Jun 30 17:04:05 2022 +0800
> >
> > BaseTools: Fix DSC LibraryClass precedence rule
> >
> > but I don't think the impact on other platforms and drivers has been
> > taken into account here. Also, the document [0] seems ambiguous to me:
> >
> > """
> > The first globally defined library instance, defined in a DSC file,
> > that satisfies a module's requirement for a Library Class, unless
> > specifically overridden by the module in the [Components] section,
> > will be used.
> > """
> >
> > This says that the first occurrence of a library instance definition
> > that satisfies a INF dependency will be selected. Then, there is
> >
> > """
> > The Library Instances will be selected using the following rules to
> > satisfy a library class for each module listed in the [Components]
> > section (in order of highest precedence):
> > """
> >
> > which says that not the *first* occurrence, but the occurrence *with
> > the highest precedence* will be selected.
> >
> > Then, the precedence list has these items:
> >
> > """
> > 2. [LibraryClasses.$(Arch).$(MODULE_TYPE),
> > LibraryClasses.$(Arch).$(MODULE_TYPE)]
> > 3. [LibraryClasses.$(Arch).$(MODULE_TYPE)]
> > """
> >
> > which seem to suggest that a definition that applies to multiple
> > arch/module_type combinations automatically takes precedence over one
> > that targets a single arch/module_type combination, which makes no
> > sense at all.
> >
> > So I strongly suggest we revert the patch, fix the document so it is
> > clear and ambiguous, and preferably, align it with how it used to
>
> *un*ambiguous ....
>
> sigh
next prev parent reply other threads:[~2022-08-23 1:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-21 4:34 MdeModulePkg build fails for AARCH64 on Ubuntu 22.04 Rebecca Cran
2022-08-22 9:11 ` [edk2-devel] " Ard Biesheuvel
2022-08-22 9:30 ` Ard Biesheuvel
2022-08-22 9:34 ` Ard Biesheuvel
2022-08-23 1:54 ` gaoliming [this message]
2022-08-23 7:40 ` Bob Feng
2022-08-24 7:16 ` 回复: " gaoliming
2022-08-24 17:17 ` Bob Feng
2022-08-25 8:48 ` Leif Lindholm
2022-08-25 15:43 ` Michael D Kinney
2022-08-26 0:28 ` Ni, Ray
2022-08-26 0:55 ` Bob Feng
2022-08-26 3:28 ` Long1 Huang
2022-08-26 10:12 ` Ard Biesheuvel
2022-08-24 7:49 ` Ard Biesheuvel
2022-08-24 10:14 ` Ard Biesheuvel
2022-08-25 2:04 ` 回复: [edk2-devel][edk2-stable202208] " 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='000a01d8b693$58d87c60$0a897520$@byosoft.com.cn' \
--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