mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-04-13 21:11:31 -06:00
On Apple ARM64, memory_reserve unconditionally applies MAP_JIT to all reservations. However, regions marked as is_memory_mapping are later replaced by file-backed MAP_FIXED mappings via shm::map/map_critical. Overlaying a file-backed MAP_FIXED mapping onto a MAP_JIT region causes the resulting pages to be inaccessible, leading to a segfault when the SPRX Loader attempts to write module data into PS3 memory (g_sudo_addr). Fix: Only apply MAP_JIT for non-mapping regions. Memory mapping regions don't need JIT capability since they use shared memory for the PS3 address space, not executable JIT code. Tested on Apple M3 Max, macOS 26.3.1. The SPRX Loader now successfully loads all modules and emulation proceeds past the loading stage. |
||
|---|---|---|
| .. | ||
| asm.hpp | ||
| atomic.cpp | ||
| atomic.hpp | ||
| auto_typemap.hpp | ||
| bless.hpp | ||
| console.cpp | ||
| console.h | ||
| coro.hpp | ||
| cpu_stats.cpp | ||
| cpu_stats.hpp | ||
| dyn_lib.cpp | ||
| dyn_lib.hpp | ||
| emu_utils.cpp | ||
| endian.hpp | ||
| fence.hpp | ||
| fifo_mutex.hpp | ||
| fixed_typemap.hpp | ||
| fnv_hash.hpp | ||
| init_mutex.hpp | ||
| logs.cpp | ||
| logs.hpp | ||
| media_utils.cpp | ||
| media_utils.h | ||
| pair.hpp | ||
| serialization_ext.cpp | ||
| serialization_ext.hpp | ||
| serialization.hpp | ||
| shared_ptr.hpp | ||
| simd.hpp | ||
| slow_mutex.hpp | ||
| sysinfo.cpp | ||
| sysinfo.hpp | ||
| to_endian.hpp | ||
| tsc.hpp | ||
| tuple.hpp | ||
| typeindices.hpp | ||
| types.hpp | ||
| v128.hpp | ||
| video_provider.cpp | ||
| video_provider.h | ||
| video_sink.h | ||
| video_source.h | ||
| vm_native.cpp | ||
| vm.hpp | ||
| yaml.cpp | ||
| yaml.hpp | ||