## @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. # # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: BSD-2-Clause-Patent ## [Defines] INF_VERSION = 1.29 BASE_NAME = StackCheckLibNull FILE_GUID = f6ef2763-ca3b-4c6f-a931-2a48de3ce352 MODULE_TYPE = BASE VERSION_STRING = 1.0 LIBRARY_CLASS = StackCheckLib [Sources] StackCheckLibNullGcc.c | GCC StackCheckLibNullMsvc.c | MSFT [Sources.IA32] IA32/StackCheckFunctionsMsvc.nasm | MSFT [Sources.X64] X64/StackCheckFunctionsMsvc.nasm | MSFT [Packages] MdePkg/MdePkg.dec [BuildOptions] # We cannot build the MSVC version with /GL (whole program optimization) because we run into linker error # LNK1237, which is a failure to link against a symbol from a library compiled with /GL. The whole program # optimization tries to do away with references to this symbol. The solution is to not compile the stack # check libs with /GL MSFT:*_*_*_CC_FLAGS = /GL- # 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. GCC:*_*_*_CC_FLAGS = -fno-lto