Skip to contentSkip to conversation

build.py: Be determistic about a function's cwd

PATCH New Richard Purdie 1 participant 1 message Dec 1, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 build.py: Be determistic about a function's cwd

There is a subtle but nasty problem that a function's cwd can vary depending on whether ${B} (often ${S}) exists before the funciton is called or not. Most functions in the system can cope with this but its bad practise and I've just witnessed build failures resulting from this during image generation from bootimg.bbclass. I also suspect this could explain some odd fetcher behaviour witnessed in the past.

This change ensures we always call funcitons with a specific build directory making things deterministic.

---

bitbake/lib/bb/build.py +1 -2
index ae4a962..9ad1e50 100644
@@ -149,8 +149,7 @@ def exec_func(func, d, dirs = None):
         adir = dirs[-1]
     else:
         adir = data.getVar('B', d, 1)
-        if not os.path.exists(adir):
-            adir = None
+        bb.utils.mkdirhier(adir)
 
     ispython = flags.get('python')
     if flags.get('fakeroot') and not flags.get('task'):