aboutsummaryrefslogtreecommitdiff
path: root/ffi/README.md
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-03-13 14:19:55 -0800
committeriximeow <me@iximeow.net>2021-03-13 14:54:47 -0800
commit93c53657c2289e979672ee6c4612af7e9eac109c (patch)
treea0acdc143595f64a796827bc849a122dd49cc4e3 /ffi/README.md
parent6232e8b1daf7067cb2e8065687530d5f88ecb46d (diff)
split ffi crate to support distinct 16, 32, and 64-bit builds
initial work to optionally discard any instruction printing support when using `-Z build-std` to fully remove .eh_frame, a stripped long_mode_no_fmt .so is 61kb!
Diffstat (limited to 'ffi/README.md')
-rw-r--r--ffi/README.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/ffi/README.md b/ffi/README.md
new file mode 100644
index 0000000..02a20e3
--- /dev/null
+++ b/ffi/README.md
@@ -0,0 +1,8 @@
+# building
+for maximum small, ffi crates' `rustflags` includes `-C link-args=-nostdlib`. to avoid conflicts with the native toolchain, this motivates cross-compiling for the native target with `--target x86_64-unknown-linux-gnu`.
+
+then, to remove extra `eh_frame` information from core, rebuild core with panic=abort by `-Z build-std` to cargo. in total, a build command for `yaxpeax_x86_ffi*` looks like:
+
+```
+cargo build -Z build-std --release --no-default-features --verbose --target x86_64-unknown-linux-gnu
+``