diff --git a/configure b/configure
index bccd797cbc0d2d855d21378e2d315d7171067c77..5860bdb77ba820b9583d8a98705caec143497bcc 100755
--- a/configure
+++ b/configure
@@ -6433,13 +6433,6 @@ for rom in seabios; do
     echo "RANLIB=$ranlib" >> $config_mak
 done
 
-# set up qemu-iotests in this build directory
-iotests_common_env="tests/qemu-iotests/common.env"
-
-echo "# Automatically generated by configure - do not modify" > "$iotests_common_env"
-echo >> "$iotests_common_env"
-echo "export PYTHON='$python'" >> "$iotests_common_env"
-
 if test "$skip_meson" = no; then
 cross="config-meson.cross.new"
 meson_quote() {
diff --git a/tests/qemu-iotests/common.env.in b/tests/qemu-iotests/common.env.in
new file mode 100644
index 0000000000000000000000000000000000000000..e565cdf40c4ae0abc7f7733a4be600569894c5d9
--- /dev/null
+++ b/tests/qemu-iotests/common.env.in
@@ -0,0 +1,3 @@
+# Automatically generated by configure - do not modify
+
+export PYTHON='@PYTHON@'
diff --git a/tests/qemu-iotests/meson.build b/tests/qemu-iotests/meson.build
index 67aed1e4927846a624a943c7ad974df1cb1b1850..26658ce25cea9829dc8ea78d0d3ffc462d25ee0c 100644
--- a/tests/qemu-iotests/meson.build
+++ b/tests/qemu-iotests/meson.build
@@ -3,3 +3,6 @@ if 'CONFIG_LINUX' in config_host
 else
     socket_scm_helper = []
 endif
+configure_file(output: 'common.env',
+               input: files('common.env.in'),
+               configuration: {'PYTHON': python.full_path()})