119 lines
2.4 KiB
Makefile
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
|