Estou tentando compilar um projeto go (syzkaller) para direcionar um Pi Zero para que ele possa emular dispositivos USB. O problema é que não consegui encontrar informações sobre como especificar o sinalizador de ponto flutuante adequado para garantir a compatibilidade com o Pi Zero. Tudo o que tentei resultou na VMOV
instrução assembly no arquivo binário e lançando uma instrução ilegal. Minha máquina host está em x86_64
execução go1.21.4
e o pi zero está em arm6l
execução go1.21.4
. Ao compilar cruzadamente estou usando GOOS=linux GOARCH=arm GOARM=5
. O makefile que estou usando pode ser encontrado aqui: https://github.com/google/syzkaller/blob/master/Makefile (estou compilando o binário execprog). Pela minha pesquisa, GOARM=5
deveria estar forçando operações de ponto flutuante de software, mas as fontes de informação estão muito desatualizadas. Também tentei compilar para armv5 sem sucesso. Eu também posso estar usando o sinalizador incorretamente, pois não estou muito familiarizado com o GO. Abaixo estão os argumentos de compilação exatos para o binário. Qualquer conselho é apreciado, obrigado.
Must remake target 'execprog'.
GOOS=linux GOARCH=arm go build "-ldflags=-s -w -X github.com/google/syzkaller/prog.\
GitRevision=121701b62358a454bbfdccfadfcce9bb843602d6+ -X 'github.com/google/syzkaller\
/prog.gitRevisionDate=20240605-134717'" "-tags=syz_target syz_os_linux syz_arch_armv6\
GOARM=5" -o ./bin/linux_arm/syz-execprog github.com/google/syzkaller/tools/syz-execprog
GOARM
é esperado no ambiente; oMakefile
não tem provisão para isso, masantes da construção deve resolver o problema.
Se isso falhar, corra
diretamente.