• Brendan Shanks's avatar
    loader: On 64-bit macOS, reserve the low 8GB using a zerofill section. · cfa0dd9d
    Brendan Shanks authored
    A zerofill section is the only way to reserve address space and prevent
    system frameworks from using it, including preventing allocations
    before any preloader code runs:
    - starting with Ventura, dyld allocates private memory from 0x1000-0x81000.
      This breaks EXEs that have an image base of 0x10000.
    - Rosetta allocates memory starting at 0x100000000, which breaks EXEs based there.
    - starting with Monterey, for proper 10.7 binaries (which include a __program_vars section),
      libSystem initializes itself before the preloader runs. This fragments the <4GB
      address space which is needed for Wow64.
    
    This will need to be adjusted if any EXEs based at 0x200000000 or higher
    are found.
    cfa0dd9d
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...