回复: [edk2-devel] [PATCH 1/1] BaseTools GenFw: Fix regression issue to convert the image to ACPI data


gaoliming
 

Leif and Bob:
Thanks for your test and review. I create PR
https://github.com/tianocore/edk2/pull/1690 for this patch.

Thanks
Liming
-----邮件原件-----
发件人: Leif Lindholm <leif@...>
发送时间: 2021年6月6日 2:53
收件人: devel@edk2.groups.io; gaoliming@...
抄送: Ray Ni <ray.ni@...>; Bob Feng <bob.c.feng@...>
主题: Re: [edk2-devel] [PATCH 1/1] BaseTools GenFw: Fix regression issue
to
convert the image to ACPI data

Hi Liming,

On Sat, Jun 05, 2021 at 09:18:54 +0800, gaoliming wrote:
With GCC49 tool chain, aslc file is compiled into elf image.
But, its text section has no CODE attribute. So, it can't be detected
by new GenFw tool.For this type file. its text section is not required.
Its data section will be converted to acpi table.

This fix is to remove assert check when the generated image is ACPI
data.

Note - this does not only affect GCC49: it also affects at least
GCC5 and CLANG38. This patch resolves the issue.

Tested-by: Leif Lindholm <leif@...> (GCC49, GCC5, CLANG38)

Thanks!

/
Leif

Signed-off-by: Liming Gao <gaoliming@...>
Cc: Ray Ni <ray.ni@...>
Cc: Leif Lindholm <leif@...>
Cc: Bob Feng <bob.c.feng@...>
---
This patch has been verified on GCC49 for AARCH64 platform.

BaseTools/Source/C/GenFw/Elf32Convert.c | 2 +-
BaseTools/Source/C/GenFw/Elf64Convert.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c
b/BaseTools/Source/C/GenFw/Elf32Convert.c
index 7c8a065678ac..314f8233234d 100644
--- a/BaseTools/Source/C/GenFw/Elf32Convert.c
+++ b/BaseTools/Source/C/GenFw/Elf32Convert.c
@@ -435,7 +435,7 @@ ScanSections32 (
}
}

- if (!FoundSection) {
+ if (!FoundSection && mOutImageType != FW_ACPI_IMAGE) {
Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.
");
assert (FALSE);
}
diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c
b/BaseTools/Source/C/GenFw/Elf64Convert.c
index 8fe672e98448..8b09db7b690b 100644
--- a/BaseTools/Source/C/GenFw/Elf64Convert.c
+++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
@@ -714,7 +714,7 @@ ScanSections64 (
}
}

- if (!FoundSection) {
+ if (!FoundSection && mOutImageType != FW_ACPI_IMAGE) {
Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.
");
assert (FALSE);
}
--
2.27.0.windows.1






Join devel@edk2.groups.io to automatically receive all group messages.