## @file
#  Null library instance for StackCheckLib which can be included
#  when a build needs to include stack check functions but does
#  not want to generate stack check failures. This instance is used
#  for HOST_APPLICATIONS specifically, as MSVC host applications link
#  to the C runtime lib that contains the stack cookie definitions, so
#  must link to a completely null version of this lib, whereas GCC host
#  host applications do not link to a C runtime lib that contains the stack
#  cookie definitions, so we must link against our version.
#
#  Copyright (c) Microsoft Corporation.
#  SPDX-License-Identifier: BSD-2-Clause-Patent
##

[Defines]
  INF_VERSION                    = 1.29
  BASE_NAME                      = StackCheckLibNullHostApplication
  FILE_GUID                      = 7EBE7BD1-0D92-4609-89AA-6EA3815CB844
  MODULE_TYPE                    = HOST_APPLICATION
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = StackCheckLib|HOST_APPLICATION

[Sources]
  StackCheckLibHostApplicationMsvc.c | MSFT
  StackCheckLibNullGcc.c             | GCC

[Packages]
  MdePkg/MdePkg.dec

[BuildOptions]
  # We cannot build the GCC version with LTO (link time optimization) because we run into linker errors where
  # the stack cookie variable has been optimized away, as it looks to GCC like the variable is not used, because
  # the compiler inserts the usage. We do not worry about the MSVC version here as it is a no-op.
  GCC:*_*_*_CC_FLAGS = -fno-lto
