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 work 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:[email protected]] On Behalf Of > Marvin H?user > Sent: Tuesday, May 8, 2018 4:37 PM > To: [email protected] > Cc: Gao, Liming <[email protected]> > Subject: Re: [edk2] [PATCH] MdePkg/BaseLib: Globally include ChkStk.c > > Hey Liming, > > According to the MSDN documentation, the call will be inserted for a stack > usage > past a defined threshold - 4 KB for IA32, 8 KB for X64 (source: > https://msdn.microsoft.com/en-us/library/ms648426(v=vs.85).aspx). > > Thanks, > Marvin > > > -----Ursprüngliche Nachricht----- > > Von: Gao, Liming <[email protected]> > > Gesendet: Montag, 7. Mai 2018 14:16 > > An: [email protected]; [email protected] > > Cc: Kinney, Michael D <[email protected]> > > 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:[email protected]] On Behalf Of > > > Marvin H?user > > > Sent: Saturday, May 5, 2018 10:25 PM > > > To: [email protected] > > > Cc: Kinney, Michael D <[email protected]>; Gao, Liming > > > <[email protected]> > > > 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 huge > > > 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 <[email protected]> > > > --- > > > MdePkg/Library/BaseLib/{ChkStkGcc.c => 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.<BR> > > > - 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.<BR> 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.<BR> > > > +# Copyright (c) 2007 - 2018, Intel Corporation. All rights > > > +reserved.<BR> > > > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights > > > reserved.<BR> # Portions copyright (c) 2011 - 2013, ARM Ltd. All > > > rights reserved.<BR> # @@ -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 > > > [email protected] > > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

