Hello! This may be a rather silly question, but I'm struggling to cross-compile syzkaller for i386 (trying to mimic the *-386 managers). I've followed as much documentation as I can find and tried to build syzkaller like this:
make TARGETVMARCH=amd64 TARGETARCH=386
But I get the following error when make reaches syz-executor:
mkdir -p ./bin/linux_386
x86_64-linux-gnu-gcc -o ./bin/linux_386/syz-executor executor/executor.cc \
-m32 -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -static-pie -DGOOS_linux=1 -DGOARCH_386=1 \
-DHOSTGOOS_linux=1 -DGIT_REVISION=\"0230ba3e7ee638765ace8e2c3b436e703017b46c\"
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib32/libc.a(memset_chk-nonshared.o): unsupported non-PIC call to IFUNC `memset'
collect2: error: ld returned 1 exit status
make: *** [Makefile:131: executor] Error 1
You may note that my syzkaller version is very old, but I have confirmed that it is broken on all recent versions as well. This also makes me very certain that the error is on my end. Have you seen this error before and do you have any suggestions on how I can fix it?
I'm building on Ubuntu 20.04 x86_64
Thank you!
Joey Bursey