diff options
Diffstat (limited to 'lld/lib/ReaderWriter')
5 files changed, 7 insertions, 4 deletions
diff --git a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp index ee85f5c3331..b6f5c3f4fc2 100644 --- a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp +++ b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp @@ -142,9 +142,9 @@ MachOLinkingContext::MachOLinkingContext() : _outputMachOType(MH_EXECUTE), _outputMachOTypeStatic(false), _doNothing(false), _pie(false), _arch(arch_unknown), _os(OS::macOSX), _osMinVersion(0), _pageZeroSize(0), _pageSize(4096), _baseAddress(0), - _compatibilityVersion(0), _currentVersion(0), _deadStrippableDylib(false), - _printAtoms(false), _testingFileUsage(false), _keepPrivateExterns(false), - _demangle(false), _archHandler(nullptr), + _stackSize(0x800000), _compatibilityVersion(0), _currentVersion(0), + _deadStrippableDylib(false), _printAtoms(false), _testingFileUsage(false), + _keepPrivateExterns(false), _demangle(false), _archHandler(nullptr), _exportMode(ExportMode::globals), _debugInfoMode(DebugInfoMode::addDebugMap), _orderFileEntries(0) {} diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h b/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h index f423d811dc6..100ea9d6a91 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h @@ -235,6 +235,7 @@ struct NormalizedFile { bool hasUUID; std::vector<StringRef> rpaths; Hex64 entryAddress; + Hex64 stackSize; MachOLinkingContext::OS os; Hex64 sourceVersion; PackedVersion minOSverson; diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp index 5d851898fc5..820959fef96 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp @@ -829,7 +829,7 @@ std::error_code MachOFileLayout::writeLoadCommands() { ep->cmd = LC_MAIN; ep->cmdsize = sizeof(entry_point_command); ep->entryoff = _file.entryAddress - _seg1addr; - ep->stacksize = 0; + ep->stacksize = _file.stackSize; if (_swap) swapStruct(*ep); lc += sizeof(entry_point_command); diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp index d6efc67e627..7a746454534 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp @@ -1197,6 +1197,7 @@ normalizedFromAtoms(const lld::File &atomFile, normFile.arch = context.arch(); normFile.fileType = context.outputMachOType(); normFile.flags = util.fileFlags(); + normFile.stackSize = context.stackSize(); normFile.installName = context.installName(); normFile.currentVersion = context.currentVersion(); normFile.compatVersion = context.compatibilityVersion(); diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp index 83359115fbf..1cc5e013b66 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp @@ -688,6 +688,7 @@ struct MappingTraits<NormalizedFile> { io.mapOptional("has-UUID", file.hasUUID, true); io.mapOptional("rpaths", file.rpaths); io.mapOptional("entry-point", file.entryAddress, Hex64(0)); + io.mapOptional("stack-size", file.stackSize, Hex64(0x800000)); io.mapOptional("source-version", file.sourceVersion, Hex64(0)); io.mapOptional("OS", file.os); io.mapOptional("min-os-version", file.minOSverson, PackedVersion(0)); |

