diff --git a/meta-oe/recipes-support/genimage/genimage_20.bb b/meta-oe/recipes-support/genimage/genimage_20.bb
index 8e7f59e9f1..4ef402a305 100644
--- a/meta-oe/recipes-support/genimage/genimage_20.bb
+++ b/meta-oe/recipes-support/genimage/genimage_20.bb
@@ -12,10 +12,15 @@ DEPENDS = "libconfuse"
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/genimage-${PV}.tar.xz"
 SRC_URI[sha256sum] = "397545be2fa52d482c5fba9a11897c61324bfc559ea0efb700b9edba7a807b55"
 
-EXTRA_OECONF = "--enable-largefile"
+# When cross compiling, configure cannot probe for a shell that supports
+# "set -o pipefail", so it must be specified explicitly. genimage uses this
+# shell at runtime to run command pipelines, so point it at bash.
+EXTRA_OECONF = "--enable-largefile --with-shell=/bin/bash"
 
 inherit pkgconfig autotools gettext github-releases
 
+RDEPENDS:${PN}:append:class-target = " bash"
+
 GITHUB_BASE_URI = "https://github.com/pengutronix/genimage/releases"
 UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)*)"
 
