From nobody Sat Apr 20 10:17:56 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+53994+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+53994+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1581048206413773.1535816380006; Thu, 6 Feb 2020 20:03:26 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id Jli7YY1788612xFOn2ZckooW; Thu, 06 Feb 2020 20:03:26 -0800 X-Received: from mga17.intel.com (mga17.intel.com []) by mx.groups.io with SMTP id smtpd.web09.8.1581048162429412693 for ; Thu, 06 Feb 2020 20:02:43 -0800 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Feb 2020 20:02:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,411,1574150400"; d="scan'208";a="311912930" X-Received: from jshi19-mobl.ccr.corp.intel.com ([10.254.212.69]) by orsmga001.jf.intel.com with ESMTP; 06 Feb 2020 20:02:41 -0800 From: "Steven Shi" To: devel@edk2.groups.io Cc: liming.gao@intel.com, bob.c.feng@intel.com, Steven Subject: [edk2-devel] [PATCH v2 1/1] BaseTools: Enhance call stack unwindability for CLANGPDB x64 binary Date: Fri, 7 Feb 2020 12:02:19 +0800 Message-Id: <20200207040219.25456-2-steven.shi@intel.com> In-Reply-To: <20200207040219.25456-1-steven.shi@intel.com> References: <20200207040219.25456-1-steven.shi@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,steven.shi@intel.com X-Gm-Message-State: m901OOgBcVTe0eF3SFk82Q2Gx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1581048206; bh=I3vwuekv77EZn0KGUOEZTZngmPqYKsa5jTIr22Hejuk=; h=Cc:Date:From:Reply-To:Subject:To; b=wqxcG16lIZ/ARVaHJlFBNm3a3vdf9pvAfFO826+siiPXgq0dXW0nKw1CY0aPX/bJ3Lr misS0t0j7fzDkLsD0ITji0B1FGbn6JGYJvulMSNPpNBxK+sdWcRxa6fPr4jCB5RROYjNG y4HGO7d85dVkir/c0QslQjO6T4JBY653MeY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Steven BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2487 The call stack unwindability of the COFF X64 binary requires the binary to remain the pdata and xdata sections. Details see the MSVC X64 calling convertion doc in below link: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention Current build options discard or zero the data in pdata and xdata sections which cause the debugger cannot correctly unwind the X64 binary call stack in the runtime. Enhance the build options to force emit the unwind tables and keep the data of pdata and xdata sections correct in the binary. Signed-off-by: Steven Shi Cc: Liming Gao Cc: Bob Feng Reviewed-by: Liming Gao --- BaseTools/Conf/tools_def.template | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index 4504f87e38..6330b87392 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -2759,7 +2759,7 @@ DEFINE CLANGPDB_IA32_TARGET =3D -target i686= -unknown-windows DEFINE CLANGPDB_X64_TARGET =3D -target x86_64-unknown-windows =20 DEFINE CLANGPDB_WARNING_OVERRIDES =3D -Wno-parentheses-equality -Wno-ta= utological-compare -Wno-tautological-constant-out-of-range-compare -Wno-emp= ty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option= -Wno-microsoft-enum-forward-reference -DEFINE CLANGPDB_ALL_CC_FLAGS =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG= PDB_WARNING_OVERRIDES) -DNO_MSABI_VA_FUNCS -fno-stack-protector -mms-bitfie= lds -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incomp= atible-library-redeclaration -fno-asynchronous-unwind-tables -mno-implicit-= float -ftrap-function=3Dundefined_behavior_has_been_optimized_away_by_clan= g -funsigned-char -fno-ms-extensions -Wno-null-dereference -fms-compatibili= ty -mno-stack-arg-probe +DEFINE CLANGPDB_ALL_CC_FLAGS =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG= PDB_WARNING_OVERRIDES) -DNO_MSABI_VA_FUNCS -fno-stack-protector -mms-bitfie= lds -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incomp= atible-library-redeclaration -mno-implicit-float -ftrap-function=3Dundefin= ed_behavior_has_been_optimized_away_by_clang -funsigned-char -fno-ms-extens= ions -Wno-null-dereference -fms-compatibility -mno-stack-arg-probe =20 ########################### # CLANGPDB IA32 definitions @@ -2817,18 +2817,20 @@ NOOPT_CLANGPDB_IA32_DLINK2_FLAGS =3D *_CLANGPDB_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGPDB_= X64_TARGET) *_CLANGPDB_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGPDB_= X64_TARGET) =20 -DEBUG_CLANGPDB_X64_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -Oz -flto= DEF(CLANGPDB_X64_TARGET) -gcodeview -DEBUG_CLANGPDB_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001= /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdata,D /SECTION:= .pdata,D /Machine:X64 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_= SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DEBUG:GHASH /lldmap +DEBUG_CLANGPDB_X64_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -Oz -flto= DEF(CLANGPDB_X64_TARGET) -gcodeview -funwind-tables +DEBUG_CLANGPDB_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001= /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /Machine:X64 /DLL /ENTRY:$(= IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /= DEBUG:GHASH /lldmap DEBUG_CLANGPDB_X64_DLINK2_FLAGS =3D +DEBUG_CLANGPDB_X64_GENFW_FLAGS =3D --keepexceptiontable =20 -RELEASE_CLANGPDB_X64_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -Oz -flto= DEF(CLANGPDB_X64_TARGET) +RELEASE_CLANGPDB_X64_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -Oz -flto= DEF(CLANGPDB_X64_TARGET) -fno-unwind-tables RELEASE_CLANGPDB_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001= /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdat= a,D /SECTION:.pdata,D /Machine:X64 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /MERGE:.rdata=3D.data /lld= map RELEASE_CLANGPDB_X64_DLINK2_FLAGS =3D +RELEASE_CLANGPDB_X64_GENFW_FLAGS =3D =20 -NOOPT_CLANGPDB_X64_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -O0 DEF(C= LANGPDB_X64_TARGET) -gcodeview -NOOPT_CLANGPDB_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001= /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdata,D /SECTION:= .pdata,D /Machine:X64 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_= SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DEBUG:GHASH /lldmap +NOOPT_CLANGPDB_X64_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -O0 DEF(C= LANGPDB_X64_TARGET) -gcodeview -funwind-tables +NOOPT_CLANGPDB_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001= /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /Machine:X64 /DLL /ENTRY:$(= IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /= DEBUG:GHASH /lldmap NOOPT_CLANGPDB_X64_DLINK2_FLAGS =3D - +NOOPT_CLANGPDB_X64_GENFW_FLAGS =3D --keepexceptiontable =20 # # --=20 2.16.1.windows.4 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#53994): https://edk2.groups.io/g/devel/message/53994 Mute This Topic: https://groups.io/mt/71043297/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-