From nobody Mon May 6 16:42:41 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+56481+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+56481+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=ispras.ru ARC-Seal: i=1; a=rsa-sha256; t=1585305986; cv=none; d=zohomail.com; s=zohoarc; b=KWz0DlKcKxOWT/t3dl92Z/Drpe1gXO3vKLnCBfzHjKw0dVa9ZuuU65i1YbiWyTa4ma4NEYU8oVRaIUVZpV3wk1njxjXdKUWFxX41h2EVpiO6e41+g0yzEs8UI17oEZVxzOn880tCR4RYYnSLpimH4AfiLQyeW4oB7o5xcVUGZTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585305986; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=Ptj5zSgR4tanhm4GGOs+sFY0834Pk7ieRodPDg/5T2s=; b=Epfs8WQsmctmd6oRwMTga8bOBYW1aPC282X+gDoDSxObyObnoW/Nu2BhUvdCyQjjLphjKzHTb54I/NmjAsU+IiOhe549q5p/8aSJ4yw0MUM2CEza6xxc1zU7zJG5AXkvm0ZJdzsfnfNpUgdsn0She5oz0PwI9/9Raq+LLw3CDRE= ARC-Authentication-Results: i=1; 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+56481+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 158530598653958.34290922516141; Fri, 27 Mar 2020 03:46:26 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ONbpYY1788612xXEPyXcxnon; Fri, 27 Mar 2020 03:46:26 -0700 X-Received: from mail.ispras.ru (mail.ispras.ru [83.149.199.45]) by mx.groups.io with SMTP id smtpd.web10.8755.1585305983777495137 for ; Fri, 27 Mar 2020 03:46:24 -0700 X-Received: from localhost.localdomain (unknown [77.232.9.83]) by mail.ispras.ru (Postfix) with ESMTPSA id 59EB6C0110; Fri, 27 Mar 2020 13:46:22 +0300 (MSK) From: "Vitaly Cheptsov" To: devel@edk2.groups.io Cc: Liming Gao , =?UTF-8?q?Marvin=20H=C3=A4user?= , Zhiguang Liu Subject: [edk2-devel] [PATCH 1/1] BaseTools: Use SEH exceptions in CLANGPDB for IA32 Date: Fri, 27 Mar 2020 13:45:59 +0300 Message-Id: <20200327104559.51216-2-cheptsov@ispras.ru> In-Reply-To: <20200327104559.51216-1-cheptsov@ispras.ru> References: <20200327104559.51216-1-cheptsov@ispras.ru> MIME-Version: 1.0 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,cheptsov@ispras.ru X-Gm-Message-State: FLXcMlDyntSl761Si7ucnmedx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1585305986; bh=iMrjGxUjzrhRVvYAeNGugbWF6aXX8jLZUTIGdvuzNTM=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=HFERWc/jozHhzQzlmHla9cCjk9+Nr0IvG3GIAniSOBzHI72F9mKD4m+NrBODLilSx4o nfpA4+HRuVVWRrXcEw0G+FUqMHI8jkv+abDJF3hWF8jVIAXiPJf0oMtbh1jtnptp40DYI JbysTZxSDBx/+woYXMqisLcySgb1YDrS2PI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Vitaly Cheptsov REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2628 This patch reduces the size of IA32 binaries by ensuring that no .debug_frame / .eh_frame sections are generated through forcing SEH exception model, which is already the default in clang for X64. EDK II does not support exceptions, and in future we should disable them instead of switching to some other variant. Currently this is not possible due to the following LLVM bugs: https://bugs.llvm.org/show_bug.cgi?id=3D45324 https://bugs.llvm.org/show_bug.cgi?id=3D45325 Upon applying this patch OvmfPkgIA32.dsc compilation in DEBUG mode gets the following size decrease with clang 9.0.1. Before: FV Space Information SECFV [11%Full] 212992 total, 24512 used, 188480 free PEIFV [22%Full] 917504 total, 203048 used, 714456 free DXEFV [36%Full] 11534336 total, 4215672 used, 7318664 free FVMAIN_COMPACT [37%Full] 3440640 total, 1287776 used, 2152864 free After: FV Space Information SECFV [10%Full] 212992 total, 22112 used, 190880 free PEIFV [19%Full] 917504 total, 176392 used, 741112 free DXEFV [31%Full] 11534336 total, 3657112 used, 7877224 free FVMAIN_COMPACT [33%Full] 3440640 total, 1153896 used, 2286744 free CC: Liming Gao CC: Marvin H=C3=A4user CC: Zhiguang Liu Signed-off-by: Vitaly Cheptsov Reviewed-by: Liming Gao Reviewed-by: Zhiguang Liu --- BaseTools/Conf/tools_def.template | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index 2b17d3b297..88d7ab8cab 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-gnu DEFINE CLANGPDB_X64_TARGET =3D -target x86_64-unknown-windows-gnu =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) -fno-stack-protector -funsigned-char -ftrap-function= =3Dundefined_behavior_has_been_optimized_away_by_clang -Wno-address -Wno-sh= ift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclara= tion -Wno-null-dereference -mno-implicit-float -mms-bitfields -mno-stack-ar= g-probe -nostdlib -nostdlibinc +DEFINE CLANGPDB_ALL_CC_FLAGS =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG= PDB_WARNING_OVERRIDES) -fno-stack-protector -funsigned-char -ftrap-function= =3Dundefined_behavior_has_been_optimized_away_by_clang -Wno-address -Wno-sh= ift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclara= tion -Wno-null-dereference -mno-implicit-float -mms-bitfields -mno-stack-ar= g-probe -nostdlib -nostdlibinc -fseh-exceptions =20 ########################### # CLANGPDB IA32 definitions @@ -2784,15 +2784,15 @@ DEFINE CLANGPDB_ALL_CC_FLAGS =3D DEF(GCC48_= ALL_CC_FLAGS) DEF(CLANGPDB_WARN *_CLANGPDB_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGPDB= _IA32_TARGET) =20 DEBUG_CLANGPDB_IA32_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -= Oz -flto -march=3Di586 DEF(CLANGPDB_IA32_TARGET) -gcodeview -DEBUG_CLANGPDB_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdata,D /SECTION= :.pdata,D /MACHINE:X86 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DEBUG:GHASH /lldmap +DEBUG_CLANGPDB_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdata,D /SECTION= :.pdata,D /MACHINE:X86 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DEBUG:GHASH /MLLVM:-exception-model=3D= wineh /lldmap DEBUG_CLANGPDB_IA32_DLINK2_FLAGS =3D =20 RELEASE_CLANGPDB_IA32_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -= Oz -flto -march=3Di586 DEF(CLANGPDB_IA32_TARGET) -RELEASE_CLANGPDB_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xda= ta,D /SECTION:.pdata,D /MACHINE:X86 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /MERGE:.rdata=3D.data /ll= dmap +RELEASE_CLANGPDB_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xda= ta,D /SECTION:.pdata,D /MACHINE:X86 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /MERGE:.rdata=3D.data /MLL= VM:-exception-model=3Dwineh /lldmap RELEASE_CLANGPDB_IA32_DLINK2_FLAGS =3D =20 NOOPT_CLANGPDB_IA32_CC_FLAGS =3D DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -= O0 -march=3Di586 DEF(CLANGPDB_IA32_TARGET) -gcodeview -NOOPT_CLANGPDB_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdata,D /SECTION= :.pdata,D /MACHINE:X86 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DEBUG:GHASH /lldmap +NOOPT_CLANGPDB_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /OPT:REF /OPT:ICF=3D10 /ALIGN:32 /FILEALIGN:32 /SECTION:.xdata,D /SECTION= :.pdata,D /MACHINE:X86 /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DEBUG:GHASH /MLLVM:-exception-model=3D= wineh /lldmap NOOPT_CLANGPDB_IA32_DLINK2_FLAGS =3D =20 ########################## @@ -2818,17 +2818,17 @@ NOOPT_CLANGPDB_IA32_DLINK2_FLAGS =3D *_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 -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_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 /MLLVM:-exception-model=3Dwineh /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) -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_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 /MLLV= M:-exception-model=3Dwineh /lldmap 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 -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_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 /MLLVM:-exception-model=3Dwineh /lldmap NOOPT_CLANGPDB_X64_DLINK2_FLAGS =3D NOOPT_CLANGPDB_X64_GENFW_FLAGS =3D --keepexceptiontable =20 --=20 2.24.1 (Apple Git-126) -=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 (#56481): https://edk2.groups.io/g/devel/message/56481 Mute This Topic: https://groups.io/mt/72584291/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-