mirror of
https://github.com/frida/releng.git
synced 2026-11-07 09:36:02 -10:00
a317d0bc26daeb7ae303c90bb9a87ccd005841c3
Rust signs no function pointer, so what is linked beside it was built not to either. That left Gum unable to speak the ABI at all: its trampolines returned to signed pointers as if they were plain, and NativePointer#sign did nothing. Sign, but leave out the type discrimination the kernel's own ABI uses: a union of differently typed function pointers is how QuickJS dispatches, and it cannot survive a discriminator per type. What crosses to the kernel is signed where it crosses, as before.
releng
Build system infrastructure to ensure fast and consistent builds across projects.
Intended to be used as a git submodule at /releng in projects.
Setting up a new project
- Set up the repo:
$ git init my-project
$ cd my-project
$ git submodule add https://github.com/frida/releng.git
$ cp releng/meson-scripts/* .
$ echo -e '/build/\n/deps/' > .gitignore
- Create
meson.buildcontaining:
project('my-project', 'vala', version: '1.0.0')
executable('hello', 'hello.vala', dependencies: dependency('glib-2.0'))
- Create
hello.valacontaining:
int main (string[] args) {
print ("Hello World from Vala!\n");
return 0;
}
- Build and run:
$ make
$ ./build/hello
Hello World from Vala!
$
Cross-compiling
iOS
$ ./configure --host=ios-arm64
$ make
Android
$ ./configure --host=android-arm64
$ make
Raspberry Pi
$ sudo apt-get install g++-arm-linux-gnueabihf
$ ./configure --host=arm-linux-gnueabihf
$ make
Languages
Python
87%
C
8.9%
JavaScript
1.7%
Shell
1.6%
Batchfile
0.5%
Other
0.3%