googleprojectzero / SkCodecFuzzer

Fuzzing harness for testing proprietary image codecs supported by Skia on Android
Apache License 2.0
330 stars 77 forks source link

make failed with capstone like #4 #8

Open william31212 opened 2 years ago

william31212 commented 2 years ago

I used the solution with https://github.com/googleprojectzero/SkCodecFuzzer/issues/1#issuecomment-673781665

However, I used capstone 4.0.1 and capstone 4.0.2 still got these error (below). image

william31212 commented 2 years ago

Besides, I refer this solution: https://github.com/googleprojectzero/SkCodecFuzzer/issues/4#issuecomment-644492382 but cannot found the clang image

ChongChengAC commented 1 year ago

Besides, I refer this solution: #4 (comment) but cannot found the clang image

I encountered this problem too. Here is my analysis and solution:

The issue is make cannot find "android-ndk-arm64-android-21/aarch64-linux-android/../../bin/clang", because there's no directory named aarch64-linux-android. clang do exists at android-ndk-arm64-android-21/bin/clang. So we need to view and correct makefile or make.sh

Makefile, from line 26:

CC = $(CROSS)/../../bin/clang
AR = $(CROSS)/ar
RANLIB = $(CROSS)/ranlib

And CROSS is defined in make.sh at Line 32:

CROSS=aarch64-linux-android

Line 50:

ANDROID=1 CROSS="${STANDALONE}/${CROSS}/bin" CFLAGS="--sysroot=${STANDALONE}/sysroot" ${MAKE} $*

Then we can figure out that CROSS="${STANDALONE}/${CROSS}/bin" is wrong because of earlier CROSS=aarch64-linux-android which doesn't exist as a directory.

Modified make.sh at Line 50:

ANDROID=1 CROSS="${STANDALONE}/bin" CFLAGS="--sysroot=${STANDALONE}/sysroot" ${MAKE} $*

Modified Makefile from line 26:

CC = $(CROSS)/clang
AR = $(CROSS)/llvm-ar
RANLIB = $(CROSS)/llvm-ranlib

AR and RANLIB are also modified because there's no ar and ranlib in my directory