public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Patrick Rudolph" <patrick.rudolph@9elements.com>
Cc: devel@edk2.groups.io, guo.dong@intel.com, gua.guo@intel.com,
	james.lu@intel.com, ray.ni@intel.com, mhaeuser@posteo.de,
	ardb@kernel.org
Subject: [PATCH 2/3] BaseTools/Conf/tools_def: Fix CLANGDWARF_IA32_X64
Date: Fri, 17 Mar 2023 15:06:27 +0100	[thread overview]
Message-ID: <20230317140627.1033739-2-patrick.rudolph@9elements.com> (raw)
In-Reply-To: <20230317140627.1033739-1-patrick.rudolph@9elements.com>

Drop the "-z max-page-size=0x40" option as it causes the ELF
header to overflow into the .text section, causing undefined
behaviour.

With high optimization level it corrupts essential code and
the binary would crash. It might work with low optimization
level though. As the default is to use Oz and LTO, it always
crashes.

Test:
The ELF generated by
'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' boots.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4357
---
 BaseTools/Conf/tools_def.template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 9b59bd75c3..0c584ab390 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -2866,7 +2866,7 @@ DEFINE CLANGDWARF_X64_PREFIX        = ENV(CLANG_BIN)
 
 # LLVM/CLANG doesn't support -n link option. So, it can't share the same IA32_X64_DLINK_COMMON flag.
 # LLVM/CLANG doesn't support common page size. So, it can't share the same GccBase.lds script.
-DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-q,--gc-sections -z max-page-size=0x40
+DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-q,--gc-sections
 DEFINE CLANGDWARF_DLINK2_FLAGS_COMMON     = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/ClangBase.lds
 DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
 DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS    = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
-- 
2.39.1


  reply	other threads:[~2023-03-17 14:06 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-17 14:06 [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32 Patrick Rudolph
2023-03-17 14:06 ` Patrick Rudolph [this message]
2023-03-26 19:39   ` [edk2-devel] [PATCH 2/3] BaseTools/Conf/tools_def: Fix CLANGDWARF_IA32_X64 Sheng Lean Tan
     [not found]   ` <17500F66A352AD33.14179@groups.io>
2023-03-26 19:42     ` Sheng Lean Tan
2023-03-28  5:38   ` 回复: " gaoliming
2023-03-28 11:25     ` Marvin Häuser
2023-03-31  4:53       ` 回复: " gaoliming
2023-03-31 10:57         ` Marvin Häuser
2023-04-03  0:52           ` 回复: " gaoliming
2023-04-03  5:53             ` Patrick Rudolph
2023-03-31 14:41   ` Ni, Ray
2023-03-31 14:58     ` Marvin Häuser
2023-03-17 17:30 ` [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32 Rebecca Cran
2023-03-17 17:44   ` Marvin Häuser
2023-03-17 20:35     ` Rebecca Cran
     [not found]     ` <174D4F37D4EEDF26.23349@groups.io>
2023-03-23 14:43       ` Rebecca Cran
2023-03-23 14:51         ` Sheng Lean Tan
2023-03-26 19:35           ` Sheng Lean Tan
2023-03-28  5:42 ` 回复: " gaoliming
2023-03-30  7:30   ` Sheng Lean Tan
2023-03-30  8:04     ` Marvin Häuser
2023-03-30  9:47       ` Patrick Rudolph
2023-04-04 12:46       ` Sheng Lean Tan
2023-04-05  8:27         ` Sheng Lean Tan
  -- strict thread matches above, loose matches on Subject: below --
2023-03-06  8:37 [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32_X64 Patrick Rudolph
2023-03-06  8:37 ` [PATCH 2/3] BaseTools/Conf/tools_def: Fix CLANGDWARF_IA32_X64 Patrick Rudolph
2023-03-06  8:39   ` Sean Rhodes

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=20230317140627.1033739-2-patrick.rudolph@9elements.com \
    --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