Apple M1: Build, Analytics, and Memory Management

Analytics:
- Incorporated fix to allow the full set of analytics that was recommended by
  spotlightishere

BuildMacOSUniversalBinary:
- The x86_64 slice for a universal binary is now built for 10.12
- The universal binary build script now can be configured though command line
  options instead of modifying the script itself.
- os.system calls were replaced with equivalent subprocess calls
- Formatting was reworked to be more PEP 8 compliant
- The script was refactored to make it more modular
- The com.apple.security.cs.disable-library-validation entitlement was removed

Memory Management:
- Changed the JITPageWrite*Execute*() functions to incorporate support for
  nesting

Other:
- Fixed several small lint errors
- Fixed doc and formatting mistakes
- Several small refactors to make things clearer
This commit is contained in:
Skyler Saleh
2021-01-16 20:31:48 -08:00
parent 4ecb3084b7
commit 948764d37b
12 changed files with 406 additions and 180 deletions

View File

@ -10,9 +10,9 @@
namespace Common
{
void* AllocateExecutableMemory(size_t size);
//Allows a thread to write to executable memory, but not execute the data.
// Allows a thread to write to executable memory, but not execute the data.
void JITPageWriteEnableExecuteDisable();
//Allows a thread to execute memory allocated for execution, but not write to it.
// Allows a thread to execute memory allocated for execution, but not write to it.
void JITPageWriteDisableExecuteEnable();
void* AllocateMemoryPages(size_t size);
void FreeMemoryPages(void* ptr, size_t size);