summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBastian Krause <bst@pengutronix.de>2022-06-15 15:58:39 +0200
committerBastian Krause <bst@pengutronix.de>2022-06-15 16:07:32 +0200
commitedf7f74835e653367da797f58228cc2a3033d479 (patch)
treeb08f3fd53bef46d93d9f0b968ac579c4a220699d
parentbe82e54f396d50f97607b678e8ff3d3cda24d098 (diff)
downloadgenimage-edf7f74835e653367da797f58228cc2a3033d479.tar.gz
genimage-edf7f74835e653367da797f58228cc2a3033d479.tar.xz
genimage: set image environment inside image_generate()
The image environment is specific to the image being generated. image_generate() calls itself recursively to resolve dependencies. Because setenv_image() is called before image_generate(), the set image environment is wrong as soon as image_generate() calls itself. Fix that by setting the image environment inside image_generate() after the point it might call itself for dependency resolution. This way the image environment is always correct. Signed-off-by: Bastian Krause <bst@pengutronix.de>
-rw-r--r--genimage.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/genimage.c b/genimage.c
index 1125b90..7ce89e1 100644
--- a/genimage.c
+++ b/genimage.c
@@ -301,6 +301,10 @@ static int image_generate(struct image *image)
}
}
+ ret = setenv_image(image);
+ if (ret)
+ return ret;
+
if (image->exec_pre) {
ret = systemp(image, "%s", image->exec_pre);
if (ret)
@@ -853,10 +857,6 @@ int main(int argc, char *argv[])
goto cleanup;
list_for_each_entry(image, &images, list) {
- ret = setenv_image(image);
- if (ret)
- goto cleanup;
-
ret = image_generate(image);
if (ret) {
image_error(image, "failed to generate %s\n", image->file);