On Apple Silicon, when Hardened Runtime is in force and the
application lacks the "Allow Unsigned Executable Memory Entitlement",
mmap and mprotect return EACCES when an attempt is made to create or
modify memory so that it is simultaneously writable and executable.
This commit handles these cases by retrying the operation without the
PROT_EXEC flag, and setting global variables so that future operations
omit the flag.
Publish minor changes to readme and configure files in main directory.
Main directory and code directory licence texts are now fully updated.
Copied from Perforce
Change: 196994
* CONFIG_POLL_NONE (because the user-visible consequence is that polling is no longer supported; was CONFIG_PROTECTION_NONE).
* DISABLE_LOCKS (was THREAD_SINGLE).
* DISABLE_SHIELD (was THREAD_SINGLE && PROTECTION_NONE)
* DISABLE_REMEMBERED_SET (was PROTECTION_NONE)
When the shield is disabled, ArenaLeave asserts that there are no busy traces, and ArenaPoll is a no-op.
By having functions implemented using the corresponding macro, we can avoid duplicated code, and avoid testing DISABLE_SHIELD in global.c.
Remove all remaining references to MPS_PROD_EPCORE.
Copied from Perforce
Change: 185176
ServerID: perforce.ravenbrook.com
LII3EG Linux on i386 with EGCS
LIPPGC Linux on POWER with GCC
S7PPMW Mac System 7 on PowerPC with Metrowerks Codewarrior
SOS8CX Solaris on SPARC 8 with cxref
SOS8GC Solaris on SPARC 8 with GCC
SOS8GP Solaris on SPARC 8 with GCC and gprof
SOS9SC Solaris on SPARC 9 with SunPro C
XCPPGC Mac OS X on PowerPC with GCC
Copied from Perforce
Change: 178908
ServerID: perforce.ravenbrook.com