syzkaller_git.bb 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. DESCRIPTION = "syzkaller is an unsupervised coverage-guided kernel fuzzer"
  2. LICENSE = "Apache-2.0"
  3. LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=5335066555b14d832335aa4660d6c376"
  4. inherit go-mod
  5. GO_IMPORT = "github.com/google/syzkaller"
  6. SRC_URI = "git://${GO_IMPORT};protocol=https;destsuffix=${BPN}-${PV}/src/${GO_IMPORT};branch=master \
  7. file://0001-sys-targets-targets.go-allow-users-to-override-hardc.patch;patchdir=src/${GO_IMPORT} \
  8. "
  9. SRCREV = "67cb024cd1a3c95e311263a5c95e957f9abfd8ca"
  10. COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux"
  11. B = "${S}/src/${GO_IMPORT}/bin"
  12. GO_EXTRA_LDFLAGS += ' -X ${GO_IMPORT}/prog.GitRevision=${SRCREV}'
  13. export GOHOSTFLAGS="${GO_LINKSHARED} ${GOBUILDFLAGS}"
  14. export GOTARGETFLAGS="${GO_LINKSHARED} ${GOBUILDFLAGS}"
  15. export TARGETOS = '${GOOS}'
  16. export TARGETARCH = '${GOARCH}'
  17. export TARGETVMARCH = '${GOARCH}'
  18. CGO_ENABLED = "0"
  19. DEPENDS:class-native += "qemu-system-native"
  20. do_compile:class-native() {
  21. export HOSTOS="${GOHOSTOS}"
  22. export HOSTARCH="${GOHOSTARCH}"
  23. oe_runmake HOSTGO="${GO}" host
  24. }
  25. do_compile:class-target() {
  26. export HOSTOS="${GOOS}"
  27. export HOSTARCH="${GOARCH}"
  28. export SYZ_CC_${TARGETOS}_${TARGETARCH}="${CC}"
  29. # Unset GOOS and GOARCH so that the correct syz-sysgen binary can be
  30. # generated. Fixes:
  31. # go install: cannot install cross-compiled binaries when GOBIN is set
  32. unset GOOS
  33. unset GOARCH
  34. oe_runmake GO="${GO}" CC="${CXX}" CFLAGS="${CXXFLAGS} ${LDFLAGS}" REV=${SRCREV} target
  35. }
  36. do_install:class-native() {
  37. SYZ_BINS_NATIVE="syz-manager syz-runtest syz-repro syz-mutate syz-prog2c \
  38. syz-db syz-upgrade"
  39. install -d ${D}${bindir}
  40. for i in ${SYZ_BINS_NATIVE}; do
  41. install -m 0755 ${B}/${i} ${D}${bindir}
  42. done
  43. }
  44. do_install:class-target() {
  45. SYZ_TARGET_DIR="${TARGETOS}_${TARGETARCH}"
  46. SYZ_BINS_TARGET="syz-fuzzer syz-execprog syz-stress syz-executor"
  47. install -d ${D}${bindir}/${SYZ_TARGET_DIR}
  48. for i in ${SYZ_BINS_TARGET}; do
  49. install -m 0755 ${B}/${SYZ_TARGET_DIR}/${i} ${D}${bindir}/${SYZ_TARGET_DIR}
  50. done
  51. }
  52. BBCLASSEXTEND += "native"