From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.120; helo=mga04.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id ABFC2203B8593 for ; Tue, 8 May 2018 16:52:07 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 May 2018 16:52:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,379,1520924400"; d="scan'208";a="222730015" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 08 May 2018 16:52:06 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 8 May 2018 16:52:06 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 8 May 2018 16:52:05 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.79]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.6]) with mapi id 14.03.0319.002; Wed, 9 May 2018 07:52:03 +0800 From: "Yao, Jiewen" To: "Marvin.Haeuser@outlook.com" , "edk2-devel@lists.01.org" CC: "Gao, Liming" Thread-Topic: [PATCH] MdePkg/BaseLib: Globally include ChkStk.c Thread-Index: AdPnJWlK0BO4vdQ7tUOW3NfrcoDhygAAEJtQ Date: Tue, 8 May 2018 23:52:02 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AB98291@shsmsx102.ccr.corp.intel.com> References: In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmExMmNhNzAtYWFjYy00YTljLTkwNDItMmEzMDM5ZTYwZDQ4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJFZUcwcWhwVXNMbmUwUmREV2ViVWRsa1liZTFTY3hPQk40Y0xnbHNpMlJzSFwvQUM5eEx2OUduekVNdUlkcmREMiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdePkg/BaseLib: Globally include ChkStk.c X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 23:52:08 -0000 Content-Language: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable HI Marvin Would you mind to share the information on how you test this update? Per my experience, chkstk not only does the check but also does the real wo= rk to allocate more stack. /Gs can be used to indicate the size (/Gs[num] control stack checking calls= ) We use /Gs32768 by default, see tools_def.txt. Usually, we just increase this value to override the default one, if we hit= this issue. Thank you Yao Jiewen > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Marvin H?user > Sent: Tuesday, May 8, 2018 4:37 PM > To: edk2-devel@lists.01.org > Cc: Gao, Liming > Subject: Re: [edk2] [PATCH] MdePkg/BaseLib: Globally include ChkStk.c >=20 > Hey Liming, >=20 > According to the MSDN documentation, the call will be inserted for a stac= k usage > past a defined threshold - 4 KB for IA32, 8 KB for X64 (source: > https://msdn.microsoft.com/en-us/library/ms648426(v=3Dvs.85).aspx). >=20 > Thanks, > Marvin >=20 > > -----Urspr=FCngliche Nachricht----- > > Von: Gao, Liming > > Gesendet: Montag, 7. Mai 2018 14:16 > > An: Marvin.Haeuser@outlook.com; edk2-devel@lists.01.org > > Cc: Kinney, Michael D > > Betreff: RE: [PATCH] MdePkg/BaseLib: Globally include ChkStk.c > > > > Marvin: > > In VS compiler, what case will trig this intrinsic function? > > > > Thanks > > Liming > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf O= f > > > Marvin H?user > > > Sent: Saturday, May 5, 2018 10:25 PM > > > To: edk2-devel@lists.01.org > > > Cc: Kinney, Michael D ; Gao, Liming > > > > > > Subject: [edk2] [PATCH] MdePkg/BaseLib: Globally include ChkStk.c > > > > > > Initially added for GCC build support, this patch includes the > > > function for all compilers and all architectures. This is done as hug= e > > > variables on the stack may cause the generation of calls to this > > > intrinsic function for Microsoft compilers, even for the IA32 > > > architecture, too. > > > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > > Signed-off-by: Marvin Haeuser > > > --- > > > MdePkg/Library/BaseLib/{ChkStkGcc.c =3D> ChkStk.c} | 48 ++++++++++--= ---- > > ---- > > > MdePkg/Library/BaseLib/BaseLib.inf | 4 +- > > > 2 files changed, 26 insertions(+), 26 deletions(-) > > > > > > diff --git a/MdePkg/Library/BaseLib/ChkStkGcc.c > > > b/MdePkg/Library/BaseLib/ChkStk.c similarity index 74% rename from > > > MdePkg/Library/BaseLib/ChkStkGcc.c > > > rename to MdePkg/Library/BaseLib/ChkStk.c index > > > ecba3853b159..59e6d73f9331 100644 > > > --- a/MdePkg/Library/BaseLib/ChkStkGcc.c > > > +++ b/MdePkg/Library/BaseLib/ChkStk.c > > > @@ -1,24 +1,24 @@ > > > -/** @file > > > - Provides hack function for passng GCC build. > > > - > > > - Copyright (c) 2006 - 2008, Intel Corporation. All rights > > > reserved.
> > > - This program and the accompanying materials > > > - are licensed and made available under the terms and conditions of > > > the BSD License > > > - which accompanies this distribution. The full text of the license > > > may be found at > > > - http://opensource.org/licenses/bsd-license.php. > > > - > > > - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > > > BASIS, > > > - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > > EXPRESS OR IMPLIED. > > > - > > > -**/ > > > - > > > -#include "BaseLibInternals.h" > > > - > > > -/** > > > - Hack function for passing GCC build. > > > -**/ > > > -VOID > > > -__chkstk() > > > -{ > > > -} > > > - > > > +/** @file > > > + Provides hack function for passing build. > > > + > > > + Copyright (c) 2006 - 2018, Intel Corporation. All rights > > > + reserved.
This program and the accompanying materials are > > > + licensed and made available under the terms and conditions of the > > > + BSD License which accompanies this distribution. The full text of > > > + the license may be found at http://opensource.org/licenses/bsd- > > license.php. > > > + > > > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > > > + BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, > > EITHER EXPRESS OR IMPLIED. > > > + > > > +**/ > > > + > > > +#include "BaseLibInternals.h" > > > + > > > +/** > > > + Hack function for passing build. > > > +**/ > > > +VOID > > > +__chkstk() > > > +{ > > > +} > > > + > > > diff --git a/MdePkg/Library/BaseLib/BaseLib.inf > > > b/MdePkg/Library/BaseLib/BaseLib.inf > > > index 5fbbd02a94b6..d23a6db2581a 100644 > > > --- a/MdePkg/Library/BaseLib/BaseLib.inf > > > +++ b/MdePkg/Library/BaseLib/BaseLib.inf > > > @@ -1,7 +1,7 @@ > > > ## @file > > > # Base Library implementation. > > > # > > > -# Copyright (c) 2007 - 2016, Intel Corporation. All rights > > > reserved.
> > > +# Copyright (c) 2007 - 2018, Intel Corporation. All rights > > > +reserved.
> > > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights > > > reserved.
# Portions copyright (c) 2011 - 2013, ARM Ltd. All > > > rights reserved.
# @@ -64,6 +64,7 @@ [Sources] > > > SafeString.c > > > String.c > > > FilePaths.c > > > + ChkStk.c > > > BaseLibInternals.h > > > > > > [Sources.Ia32] > > > @@ -781,7 +782,6 @@ [Sources.X64] > > > X64/DisableCache.S | GCC > > > X64/RdRand.nasm| GCC > > > X64/RdRand.S | GCC > > > - ChkStkGcc.c | GCC > > > > > > [Sources.IPF] > > > Ipf/AccessGp.s > > > -- > > > 2.17.0.windows.1 > > > > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel