diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml index bb5a7f861b..10b588352b 100644 --- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml +++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml @@ -294,17 +294,20 @@ rather than when the variable is actually used: T = "123" - A := "${B} ${A} test ${T}" + A := "test ${T}" T = "456" - B = "${T} bval" + B := "${T} ${C}" C = "cval" C := "${C}append" In this example, A contains - "test 123" because ${B} and - ${A} at the time of parsing are undefined, - which leaves "test 123". - And, the variable C + "test 123", even though the final value of T + is "456". + The variable B will end up containing "456 cvalappend". + This is because references to undefined variables are preserved as is + during (immediate)expansion. This is in contrast to GNU Make, where undefined + variables expand to nothing. + The variable C contains "cvalappend" since ${C} immediately expands to "cval".