mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-08-23 23:33:45 +02:00
![]() The copy constructors are causing problems when the `fiber.stack` vector gets reallocated when its capacity is full, since when vectors are reallocated, the elements are moved (or copied if there's no usable move constructor) to the reallocated memory and then the original elements are destroyed. This premature calling of destructors leads to double-free and use-after-free errors. I fixed it by deleting the copy constructors and explicitly defining move constructors. |
||
---|---|---|
.. | ||
.gitignore | ||
core.info | ||
link.T | ||
Makefile | ||
README.md | ||
ruby-bindings.h | ||
ruby-compat.patch | ||
sandbox-bindgen.rb |
The build process for the libretro core is divided into two stages.
Stage 1
All the files produced by this stage are platform-agnostic, so you can run this build stage on any computer, regardless of which operating system or CPU architecture the libretro core is for.
Required software:
- C and C++ compilers
- GNU Make
- GNU Autotools
- GNU Bison
- Git
- curl
- Info-ZIP's Zip (the
zip
package found in many package managers) - WASI SDK (currently you need WASI SDK version 21; later versions don't work yet)
- Binaryen
- WABT
- Either Universal Ctags or Exuberant Ctags
Go to the directory that this README.md is in and run this command, filling in the paths to WASI SDK, wasm-opt
from Binaryen, wasm2c
from WABT and ctags
from Universal Ctags or Exuberant Ctags accordingly:
make WASI_SDK=/path/to/wasi-sdk WASM_OPT=/path/to/binaryen/bin/wasm-opt WASM2C=/path/to/wabt/bin/wasm2c CTAGS=/path/to/ctags
This will produce the directory "libretro/build/libretro-stage1".
Stage 2
This stage produces the actual core file.
Required software:
No software libraries are required other than the system libraries.
Go to the root directory of this repository and run:
meson setup build -Dlibretro=true
cd build
ninja