WorksButNotTested db1d38eeb6
LibAFL_QEMU/librasan: Add support for reading environment (#3241)
* Add support for reading environment

* Fix clippy

* Review fixes
2025-05-20 21:48:08 +02:00

119 lines
2.4 KiB
Makefile

import "../../../just/libafl-qemu.just"
import "../fuzzer_name.just"
ZASAN_SOURCE_DIR := source_directory()
[unix]
compile_zasan:
#!/bin/sh
. {{ DOTENV }}
cargo \
build \
--package zasan \
--target ${CROSS_TARGET} \
--profile {{ PROFILE }} \
--target-dir {{ TARGET_DIR }}
[unix]
fix_zasan:
#!/bin/sh
. {{ DOTENV }}
cargo \
fix \
--package zasan \
--target ${CROSS_TARGET} \
--profile {{ PROFILE }} \
--target-dir {{ TARGET_DIR }} \
--features test \
--allow-dirty
[unix]
rel_zasan: compile_zasan build_dummy
#!/bin/sh
. {{ DOTENV }}
${CROSS_CC} \
${LIBRASAN_CFLAGS} \
-r \
-nodefaultlibs \
-nostartfiles \
-nostdlib \
-g \
-u patch_aligned_alloc \
-u patch_atoi \
-u patch_atol \
-u patch_atoll \
-u patch_calloc \
-u patch_free \
-u patch_malloc \
-u patch_malloc_usable_size \
-u patch_memalign \
-u patch_memset \
-u patch_mmap \
-u patch_munmap \
-u patch_posix_memalign \
-u patch_pvalloc \
-u patch_read \
-u patch_realloc \
-u patch_reallocarray \
-u patch_valloc \
-u patch_write \
-o {{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libzasan.rel \
{{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libzasan.a
[unix]
rename_zasan: rel_zasan
#!/bin/sh
. {{ DOTENV }}
${CROSS_OBJCOPY} \
--redefine-syms={{ GASAN_SOURCE_DIR }}/rename_real.syms \
--redefine-syms={{ GASAN_SOURCE_DIR }}/rename_patch.syms \
{{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libzasan.rel \
{{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libzasan.renamed
[unix]
link_zasan: rename_zasan
#!/bin/sh
. {{ DOTENV }}
${CROSS_CC} \
-shared \
-nodefaultlibs \
-nostartfiles \
-nostdlib \
-g \
-u aligned_alloc \
-u atoi \
-u atol \
-u atoll \
-u calloc \
-u free \
-u malloc \
-u malloc_usable_size \
-u memalign \
-u memset \
-u mmap \
-u munmap \
-u posix_memalign \
-u pvalloc \
-u read \
-u realloc \
-u reallocarray \
-u valloc \
-u write \
-Wl,--version-script={{ ZASAN_SOURCE_DIR }}/zasan.map \
-Wl,--gc-sections \
-Wl,--no-undefined \
-o {{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/_libzasan.so \
{{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libzasan.renamed
[unix]
strip_zasan: link_zasan
#!/bin/sh
. {{ DOTENV }}
${CROSS_STRIP} \
--strip-unneeded \
-o {{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libzasan.so \
{{ TARGET_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/_libzasan.so
[unix]
build_zasan: strip_zasan