xref: /aosp_15_r20/external/AFLplusplus/utils/qbdi_mode/build.sh (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1*08b48e0bSAndroid Build Coastguard Worker
2*08b48e0bSAndroid Build Coastguard Workerif [ -z ${STANDALONE_TOOLCHAIN_PATH} ]; then
3*08b48e0bSAndroid Build Coastguard Worker    echo "please set the android-standalone-toolchain path in STANDALONE_TOOLCHAIN_PATH environmental variable"
4*08b48e0bSAndroid Build Coastguard Worker    echo "for example: "
5*08b48e0bSAndroid Build Coastguard Worker    echo "    export STANDALONE_TOOLCHAIN_PATH=/home/android-standalone-toolchain-21/"
6*08b48e0bSAndroid Build Coastguard Worker    exit
7*08b48e0bSAndroid Build Coastguard Workerfi
8*08b48e0bSAndroid Build Coastguard Worker
9*08b48e0bSAndroid Build Coastguard Workerif [ -z ${QBDI_SDK_PATH} ]; then
10*08b48e0bSAndroid Build Coastguard Worker    echo "please set the qbdi sdk path in QBDI_SDK_PATH environmental variable"
11*08b48e0bSAndroid Build Coastguard Worker    echo "for example: "
12*08b48e0bSAndroid Build Coastguard Worker    echo "    export QBDI_SDK_PATH=/home/QBDI-Android/"
13*08b48e0bSAndroid Build Coastguard Worker    exit
14*08b48e0bSAndroid Build Coastguard Workerfi
15*08b48e0bSAndroid Build Coastguard Worker
16*08b48e0bSAndroid Build Coastguard Worker
17*08b48e0bSAndroid Build Coastguard Worker
18*08b48e0bSAndroid Build Coastguard Workerif [ "$1" = "x86" ]; then
19*08b48e0bSAndroid Build Coastguard Worker  echo "build x86 qbdi"
20*08b48e0bSAndroid Build Coastguard Worker  compiler_prefix="${STANDALONE_TOOLCHAIN_PATH}/bin/"
21*08b48e0bSAndroid Build Coastguard Worker  if [ -z ${CC} ]; then
22*08b48e0bSAndroid Build Coastguard Worker      export CC=i686-linux-android-gcc
23*08b48e0bSAndroid Build Coastguard Worker  fi
24*08b48e0bSAndroid Build Coastguard Worker  if [ -z ${CXX} ]; then
25*08b48e0bSAndroid Build Coastguard Worker      export CXX=i686-linux-android-g++
26*08b48e0bSAndroid Build Coastguard Worker  fi
27*08b48e0bSAndroid Build Coastguard Workerelif [ "$1" = "x86_64" ]; then
28*08b48e0bSAndroid Build Coastguard Worker    echo "build x86_64 qbdi"
29*08b48e0bSAndroid Build Coastguard Worker    compiler_prefix="${STANDALONE_TOOLCHAIN_PATH}/bin/"
30*08b48e0bSAndroid Build Coastguard Worker    if [ -z ${CC} ]; then
31*08b48e0bSAndroid Build Coastguard Worker        export CC=x86_64-linux-android-gcc
32*08b48e0bSAndroid Build Coastguard Worker    fi
33*08b48e0bSAndroid Build Coastguard Worker    if [ -z ${CXX} ]; then
34*08b48e0bSAndroid Build Coastguard Worker        export CXX=x86_64-linux-android-g++
35*08b48e0bSAndroid Build Coastguard Worker    fi
36*08b48e0bSAndroid Build Coastguard Workerelse
37*08b48e0bSAndroid Build Coastguard Worker    echo "usage: ./build.sh arch[x86, x86_64]"
38*08b48e0bSAndroid Build Coastguard Worker    exit
39*08b48e0bSAndroid Build Coastguard Workerfi
40*08b48e0bSAndroid Build Coastguard Worker
41*08b48e0bSAndroid Build Coastguard Worker
42*08b48e0bSAndroid Build Coastguard WorkerCFLAGS="-I${QBDI_SDK_PATH}/usr/local/include/ -L${QBDI_SDK_PATH}/usr/local/lib/"
43*08b48e0bSAndroid Build Coastguard Worker
44*08b48e0bSAndroid Build Coastguard Workerecho "[+] Building the QBDI template"
45*08b48e0bSAndroid Build Coastguard Worker# build the qbdi template
46*08b48e0bSAndroid Build Coastguard Worker${compiler_prefix}${CXX} -o loader template.cpp -lQBDI -ldl -w  -g ${CFLAGS}
47*08b48e0bSAndroid Build Coastguard Worker
48*08b48e0bSAndroid Build Coastguard Workerecho "[+] Building the demo library"
49*08b48e0bSAndroid Build Coastguard Worker# build the demo share library
50*08b48e0bSAndroid Build Coastguard Worker${compiler_prefix}${CC} -shared -o libdemo.so demo-so.c -w -g
51*08b48e0bSAndroid Build Coastguard Worker
52*08b48e0bSAndroid Build Coastguard Workerecho "[+] Building afl-fuzz for Android"
53*08b48e0bSAndroid Build Coastguard Worker# build afl-fuzz
54*08b48e0bSAndroid Build Coastguard Workercd ../..
55*08b48e0bSAndroid Build Coastguard Worker${compiler_prefix}${CC} -O3 -funroll-loops -Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign -I include/ -DAFL_PATH=\"/usr/local/lib/afl\" -DBIN_PATH=\"/usr/local/bin\" -DDOC_PATH=\"/usr/local/share/doc/afl\" -Wno-unused-function src/afl-fuzz*.c src/afl-common.c src/afl-sharedmem.c src/afl-forkserver.c src/afl-performance.c -o utils/qbdi_mode/afl-fuzz -ldl -lm -w
56*08b48e0bSAndroid Build Coastguard Worker
57*08b48e0bSAndroid Build Coastguard Workerecho "[+] All done. Enjoy!"
58