public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "gaoliming" <gaoliming@byosoft.com.cn>
To: "'Ard Biesheuvel'" <ardb@kernel.org>,
	"'Gerd Hoffmann'" <kraxel@redhat.com>
Cc: devel@edk2.groups.io, "'Marvin Häuser'" <mhaeuser@posteo.de>,
	"'Pawel Polawski'" <ppolawsk@redhat.com>,
	"'Dongyan Qian'" <qiandongyan@loongson.cn>,
	"'Sunil V L'" <sunilvl@ventanamicro.com>,
	"'Baoqi Zhang'" <zhangbaoqi@loongson.cn>,
	"'Chao Li'" <lichao@loongson.cn>,
	"'Rebecca Cran'" <rebecca@bsdio.com>,
	"'Ard Biesheuvel'" <ardb+tianocore@kernel.org>,
	"'Zhiguang Liu'" <zhiguang.liu@intel.com>,
	"'Yuwei Chen'" <yuwei.chen@intel.com>,
	"'Leif Lindholm'" <quic_llindhol@quicinc.com>,
	"'Michael D Kinney'" <michael.d.kinney@intel.com>,
	"'Daniel Schaefer'" <git@danielschaefer.me>,
	"'Bob Feng'" <bob.c.feng@intel.com>,
	"'Oliver Steffen'" <osteffen@redhat.com>
Subject: 回复: [edk2-devel] [PATCH v4 01/10] BaseTools: add BASETOOLS define
Date: Fri, 21 Apr 2023 11:26:40 +0800	[thread overview]
Message-ID: <014901d97401$16ac7310$44055930$@byosoft.com.cn> (raw)
In-Reply-To: <CAMj1kXE0VjJgb_YLOAwVYJd9=vMte4QUN1xHd1pSYs0ivjS=Ng@mail.gmail.com>

Gerd, Ard, Marvin:
  I think we all agree that this patch set is valuable to reduce the duplication header files. 

  The current concern is that BASETOOLS macro name. This name matches Edk2 BaseTools directory. If no better name, I would suggest to keep it. 

  And, the second request is to remove #pragma GCC visibility push (hidden) in MdePkg\Include\X64\ProcessorBind.h. It may be not resolved in short time. I don't want this request blocks this patch set. I suggest to separate them, then we can first merge this patch set if no other functional issue. 

Thanks
Liming
> -----邮件原件-----
> 发件人: Ard Biesheuvel <ardb@kernel.org>
> 发送时间: 2023年4月18日 23:50
> 收件人: Gerd Hoffmann <kraxel@redhat.com>
> 抄送: devel@edk2.groups.io; Marvin Häuser <mhaeuser@posteo.de>; Pawel
> Polawski <ppolawsk@redhat.com>; Dongyan Qian
> <qiandongyan@loongson.cn>; Sunil V L <sunilvl@ventanamicro.com>; Baoqi
> Zhang <zhangbaoqi@loongson.cn>; Chao Li <lichao@loongson.cn>; Rebecca
> Cran <rebecca@bsdio.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>;
> Zhiguang Liu <zhiguang.liu@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Yuwei Chen <yuwei.chen@intel.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Daniel Schaefer <git@danielschaefer.me>;
> Bob Feng <bob.c.feng@intel.com>; Oliver Steffen <osteffen@redhat.com>
> 主题: Re: [edk2-devel] [PATCH v4 01/10] BaseTools: add BASETOOLS define
> 
> On Tue, 18 Apr 2023 at 15:20, Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> > On Tue, Apr 18, 2023 at 01:59:43PM +0200, Ard Biesheuvel wrote:
> > > On Tue, 18 Apr 2023 at 13:52, Gerd Hoffmann <kraxel@redhat.com>
> wrote:
> > > >
> > > > Seems to work fine on fedora 37, even without adding --relax, maybe
> this
> > > > is enabled by default (there is a --no-relax switch after all).  I'll go
> > > > try older distros / compilers / binutils too.
> > > >
> > > > What would be the failure mode?  Errors on ELF -> PE conversion
> because
> > > > a GOT is present?  Or will things break at runtime?
> > > >
> > >
> > > The problem here is that we rely on --emit-relocs to get at the
> > > relocations in the binary, in order to convert the absolute ones into
> > > PE/COFF relocations.
> > >
> > > However, --emit-relocs did not use to cover the GOT, as those are
> > > added at the end by the linker and not by the compiler. So if the GOT
> > > is non-empty, the resulting PE executable will be corrupt.
> >
> > So no build error.  And at runtime probably random effects, depending on
> > whenever the execution path happens to hit a bad relocation or not.  So
> > compile + boot testing doesn't cut it.  Lovely.
> >
> > So, what can I do instead?  Check **/DEBUG/*.debug and see whenever a
> > .got section is present?
> >
> 
> We should probably add an ASSERT() to the linker script, just like I
> did for Linux:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id
> =e544ea57ac0734bc
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id
> =262b5cae67a67240
> 
> > > Of course, the answer here is to dump GenFw altogether for ELF to PE
> > > conversion, and implement something that consumes the dynamic
> > > relocations generated when linking in PIE mode.
> >
> > Marvin's ImageTool is exactly that I think ...
> >
> > take care,
> >   Gerd
> >



  reply	other threads:[~2023-04-21  3:26 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-14  8:02 [PATCH v4 00/10] BaseTools: remove duplicate includes Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 01/10] BaseTools: add BASETOOLS define Gerd Hoffmann
2023-04-14 12:29   ` Marvin Häuser
2023-04-14 14:37     ` Gerd Hoffmann
2023-04-14 14:51       ` Marvin Häuser
2023-04-14 14:57       ` [edk2-devel] " Ard Biesheuvel
2023-04-14 15:10         ` Marvin Häuser
2023-04-18 11:52         ` Gerd Hoffmann
2023-04-18 11:59           ` Ard Biesheuvel
2023-04-18 13:20             ` Gerd Hoffmann
2023-04-18 13:41               ` Marvin Häuser
2023-04-18 15:50               ` Ard Biesheuvel
2023-04-21  3:26                 ` gaoliming [this message]
2023-05-22 12:27         ` Gerd Hoffmann
2023-05-22 12:55           ` Ard Biesheuvel
2023-05-22 13:38             ` Gerd Hoffmann
2023-05-22 14:31               ` Gerd Hoffmann
2023-05-23  7:07                 ` Ard Biesheuvel
2023-05-23  8:49                   ` Gerd Hoffmann
2023-05-23  8:54                     ` Ard Biesheuvel
2023-04-14  8:02 ` [PATCH v4 02/10] MdePkg: don't set visibility to hidden for BaseTools Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 03/10] BaseTools: remove WinNtInclude.h Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 04/10] BaseTools: remove duplicate includes: <arch>/ProcessorBind.h Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 05/10] BaseTools: remove duplicate includes: IndustryStandard/Acpi*.h Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 06/10] MdePkg/PeImage.h: add bits from BaseTools version Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 07/10] BaseTools: drop IMAGE_FILE_MACHINE_ARM hacks Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 08/10] BaseTools: switch from EFI_IMAGE_MACHINE_* to IMAGE_FILE_MACHINE_* Gerd Hoffmann
2023-04-14 12:16   ` [edk2-devel] " Rebecca Cran
2023-04-14 14:39     ` Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 09/10] BaseTools: remove duplicate includes: IndustryStandard/PeImage.h Gerd Hoffmann
2023-04-14  8:02 ` [PATCH v4 10/10] BaseTools: remove duplicate includes: IndustryStandard/*.h Gerd Hoffmann
2023-04-14 12:18 ` [edk2-devel] [PATCH v4 00/10] BaseTools: remove duplicate includes Rebecca Cran

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='014901d97401$16ac7310$44055930$@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