fix /SAFESEH linker option for VS >= 2010
In VS 2010 and newer the /SAFESEH linker option is not passed as additional option but is represented by the property ImageHasSafeExceptionHandlers. Task-number: QTBUG-34392 Change-Id: I3bd19078e695716050dd20736b6bc589bcb1cefd Reviewed-by: Andy Shaw <andy.shaw@digia.com>
This commit is contained in:
parent
2a704239ea
commit
175489f102
@ -147,6 +147,7 @@ const char _HeapReserveSize[] = "HeapReserveSize";
|
|||||||
const char _IgnoreAllDefaultLibraries[] = "IgnoreAllDefaultLibraries";
|
const char _IgnoreAllDefaultLibraries[] = "IgnoreAllDefaultLibraries";
|
||||||
const char _IgnoreEmbeddedIDL[] = "IgnoreEmbeddedIDL";
|
const char _IgnoreEmbeddedIDL[] = "IgnoreEmbeddedIDL";
|
||||||
const char _IgnoreImportLibrary[] = "IgnoreImportLibrary";
|
const char _IgnoreImportLibrary[] = "IgnoreImportLibrary";
|
||||||
|
const char _ImageHasSafeExceptionHandlers[] = "ImageHasSafeExceptionHandlers";
|
||||||
const char _IgnoreSpecificDefaultLibraries[] = "IgnoreSpecificDefaultLibraries";
|
const char _IgnoreSpecificDefaultLibraries[] = "IgnoreSpecificDefaultLibraries";
|
||||||
const char _IgnoreStandardIncludePath[] = "IgnoreStandardIncludePath";
|
const char _IgnoreStandardIncludePath[] = "IgnoreStandardIncludePath";
|
||||||
const char _ImportLibrary[] = "ImportLibrary";
|
const char _ImportLibrary[] = "ImportLibrary";
|
||||||
@ -1494,6 +1495,7 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCLinkerTool &tool)
|
|||||||
<< attrTagT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
|
<< attrTagT(_IgnoreAllDefaultLibraries, tool.IgnoreAllDefaultLibraries)
|
||||||
<< attrTagT(_IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL)
|
<< attrTagT(_IgnoreEmbeddedIDL, tool.IgnoreEmbeddedIDL)
|
||||||
<< attrTagT(_IgnoreImportLibrary, tool.IgnoreImportLibrary)
|
<< attrTagT(_IgnoreImportLibrary, tool.IgnoreImportLibrary)
|
||||||
|
<< attrTagT(_ImageHasSafeExceptionHandlers, tool.ImageHasSafeExceptionHandlers)
|
||||||
<< attrTagX(_IgnoreSpecificDefaultLibraries, tool.IgnoreDefaultLibraryNames, ";")
|
<< attrTagX(_IgnoreSpecificDefaultLibraries, tool.IgnoreDefaultLibraryNames, ";")
|
||||||
<< attrTagS(_ImportLibrary, tool.ImportLibrary)
|
<< attrTagS(_ImportLibrary, tool.ImportLibrary)
|
||||||
<< attrTagS(_KeyContainer, tool.KeyContainer)
|
<< attrTagS(_KeyContainer, tool.KeyContainer)
|
||||||
|
@ -1172,6 +1172,7 @@ VCLinkerTool::VCLinkerTool()
|
|||||||
IgnoreAllDefaultLibraries(unset),
|
IgnoreAllDefaultLibraries(unset),
|
||||||
IgnoreEmbeddedIDL(unset),
|
IgnoreEmbeddedIDL(unset),
|
||||||
IgnoreImportLibrary(_True),
|
IgnoreImportLibrary(_True),
|
||||||
|
ImageHasSafeExceptionHandlers(unset),
|
||||||
LargeAddressAware(addrAwareDefault),
|
LargeAddressAware(addrAwareDefault),
|
||||||
LinkDLL(unset),
|
LinkDLL(unset),
|
||||||
LinkIncremental(linkIncrementalDefault),
|
LinkIncremental(linkIncrementalDefault),
|
||||||
@ -1654,11 +1655,12 @@ bool VCLinkerTool::parseOption(const char* option)
|
|||||||
StackCommitSize = both[1].toLongLong();
|
StackCommitSize = both[1].toLongLong();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x75AA4D8: // /SAFESH:{NO}
|
case 0x75AA4D8: // /SAFESEH:{NO}
|
||||||
{
|
if (config->CompilerVersion >= NET2010)
|
||||||
|
ImageHasSafeExceptionHandlers = (option[8] == ':') ? _False : _True;
|
||||||
|
else
|
||||||
AdditionalOptions += option;
|
AdditionalOptions += option;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case 0x9B3C00D:
|
case 0x9B3C00D:
|
||||||
case 0x78dc00d: // /SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.minor]]
|
case 0x78dc00d: // /SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.minor]]
|
||||||
{
|
{
|
||||||
|
@ -615,6 +615,7 @@ public:
|
|||||||
QStringList IgnoreDefaultLibraryNames;
|
QStringList IgnoreDefaultLibraryNames;
|
||||||
triState IgnoreEmbeddedIDL;
|
triState IgnoreEmbeddedIDL;
|
||||||
triState IgnoreImportLibrary;
|
triState IgnoreImportLibrary;
|
||||||
|
triState ImageHasSafeExceptionHandlers;
|
||||||
QString ImportLibrary;
|
QString ImportLibrary;
|
||||||
addressAwarenessType LargeAddressAware;
|
addressAwarenessType LargeAddressAware;
|
||||||
triState LinkDLL;
|
triState LinkDLL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user