- This will make maintenance for multiple platforms a lot easier (i.e. just preflight)
- Will be easy to get callstack and debug since it will be compiled on the machine it is debugged on
- Easier to try out modifications on mimalloc itself
- Fix mimalloc compilation under Clang 10
- Fix mimalloc inconsistent usage of MI_ENCODE_FREELIST define
- Fix mimalloc inconsistent usage of _WIN32 define
- Implement MacOS and Unix -mimalloc command-line switch
- Some MacOS changes were contributed by Will.Damon
#rb Brandon.Schaefer, Will.Damon
#preflight 60b4ea613c6c4e000158233e
#rnx
[CL 16512512 by danny couture in ue5-main branch]
For Linux add a command line option to disable exclusive locks on files opened. This is due to a dotnet implemention
https://github.com/dotnet/runtime/issues/34126
#jira UE-110258
[REVIEW] [at]Jonathan.Adamczewski, [at]Michael.Sartain
#lockdown Cristina.Riveron
#ROBOMERGE-SOURCE: CL 15982440 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)
[CL 15989649 by brandon schaefer in ue5-main branch]
#ROBOMERGE-SOURCE: CL 15622789 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)
[CL 15622803 by axel riffard in ue5-main branch]
On Windows this checks for the kernel's various memory sanitizers (Set by gflags).
#rb stefan.boberg, martin.ridgers, patrick.laflamme
#jira none
#preflight /job/6036c60db738e90001178f50
#ROBOMERGE-SOURCE: CL 15522505 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15522524 by geoff evans in ue5-main branch]
- Reset the global variable 'CachedAbsoluteFilenamein child process to force reinitialization of the logger.
- Added a callback to the OutputDeviceFile invoked every time the output file is opened for writing successfully to update the CachedAbsoluteFilename value in case the actual opened filename differ from CachedAbsoluteFilename generated before the file was opened to ensure CrashReporter picks the right log file in case of a crash/ensure.
- Updated places where GetAbsoluteLogFilename() was called and the value cached to read the latest value instead.
#jira FORT-347771 - Forked child processes on the server have incorrect log file names
#jira UE-92329 - CrashReportClient/CrashReportClientEditor may upload the wrong log file
#rb LouisPhilippe.Seguin
[CL 15417346 by Patrick Laflamme in ue5-main branch]
- When CRC runs out of process, instead of reading the current thread context of the crashed thread, read and use the crash context that was reported during the crash (which is different).
- Added an optional context parameter to FGenericPlatformStackWalk::CaptureThreadStackBackTrace(), implemented it across all platforms, but only used on Windows.
On Windows, fixed InitStackWalking() and InitStackWalkingForProcess() to reset the process that needs to be walked.
- CRC, running out of process may run its own process or the Editor process and which ever was walking first ruled out the other.
#jira UE-105006 - [CrashReporter] VCRUNTIME140!7fffce010000 + e390
#rb Johan.Berg
#preflight 15217159
[CL 15319737 by Patrick Laflamme in ue5-main branch]
Unix-related files are in the changelist because FUnixPlatformStackWalk overrides StackWalkAndDump[Ex]. The compiler won't pick up the overload in FGenericPlatformStackWalk, hence the need to forward for Unix. Coincidentally, the old versions use the context to condition backtraces by program counter. That we can skip out on for these new overloads.
#rb jb
#rnx
[CL 14912279 by Martin Ridgers in ue5-main branch]