| ## @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 |