diff --git a/meta-oe/recipes-benchmark/wrk/wrk_4.2.0.bb b/meta-oe/recipes-benchmark/wrk/wrk_4.2.0.bb
index 47ca9ada01..1eaf97a382 100644
--- a/meta-oe/recipes-benchmark/wrk/wrk_4.2.0.bb
+++ b/meta-oe/recipes-benchmark/wrk/wrk_4.2.0.bb
@@ -23,6 +23,10 @@ EXTRA_OEMAKE = "\
     CFLAGS='${CFLAGS} -I${RECIPE_SYSROOT}/usr/include/luajit-2.1' \
 "
 
+# wrk's Makefile is in-tree only (relative obj/, src/) and its obj/bytecode.c
+# rule doesn't depend on obj/, so create it before make runs in ${S}.
+do_compile[dirs] = "${S}/obj ${S}"
+
 do_compile() {
     export LUA_PATH="${RECIPE_SYSROOT_NATIVE}/usr/share/luajit-2.1/?.lua;;"
     oe_runmake
