summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongxiao Xu <dongxiao.xu@intel.com>2011-01-18 16:18:42 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-01-25 12:25:46 +0000
commit7f41f1a8888a1f7f091101d19b9b0c4787f5a6fc (patch)
treeba2afa60ca17a84860545e0c871ffce34b57839a
parentb0df35f47fb79dc149504bd66d1186b3276f9510 (diff)
downloadpoky-7f41f1a8888a1f7f091101d19b9b0c4787f5a6fc.tar.gz
bitbake: machine specific sysroots implementation
This commit changes the sysroots path to be machine specific. Changes includes: 1) STAGING_DIR_TARGET and STRAGING_DIR_HOST points to machine specific paths. 2) task stamp files. Adding ${MACHINE} info into stamp files for do_populate_sysroots and do_package tasks. Add a BB_STAMPTASK_BLACKLIST to keep native, nativesdk, crosssdk, and cross-canadian stamp unchanged. 3) siteconfig path. Separate the site config path for different machines to avoid one machine adopting the cache file of another machine. 4) sstate. Add machine name to sstate manifest file. Change relocation code for sstate paths since sysroot is machine. Keep native, nativesdk, crosssdk, and cross-canadian unchanged. 5) toolchain scripts. Change the environment path to point to machine specific sysroots in toolchain scripts bbclass. 6) Relocate la files when populating to a different machine of the same architecture. 7) Exclude STAGING_DIR_TARGET and STAGING_DIR_HOST parameter from sstate siginfo since they contain ${MACHINE} information. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-rw-r--r--meta/classes/bootimg.bbclass4
-rw-r--r--meta/classes/cross-canadian.bbclass3
-rw-r--r--meta/classes/cross.bbclass5
-rw-r--r--meta/classes/crosssdk.bbclass2
-rw-r--r--meta/classes/native.bbclass2
-rw-r--r--meta/classes/nativesdk.bbclass5
-rw-r--r--meta/classes/package.bbclass1
-rw-r--r--meta/classes/siteconfig.bbclass6
-rw-r--r--meta/classes/sstate.bbclass52
-rw-r--r--meta/classes/staging.bbclass1
-rw-r--r--meta/classes/toolchain-scripts.bbclass4
-rw-r--r--meta/conf/bitbake.conf12
12 files changed, 73 insertions, 24 deletions
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass
index f4949f55bd..49ee85ea72 100644
--- a/meta/classes/bootimg.bbclass
+++ b/meta/classes/bootimg.bbclass
@@ -49,7 +49,7 @@ inherit syslinux
49 49
50build_boot_bin() { 50build_boot_bin() {
51 install -d ${HDDDIR} 51 install -d ${HDDDIR}
52 install -m 0644 ${STAGING_DIR}/${MACHINE}${HOST_VENDOR}-${HOST_OS}/kernel/bzImage \ 52 install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage \
53 ${HDDDIR}/vmlinuz 53 ${HDDDIR}/vmlinuz
54 54
55 if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then 55 if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
@@ -83,7 +83,7 @@ build_boot_bin() {
83 83
84 # Install the kernel 84 # Install the kernel
85 85
86 install -m 0644 ${STAGING_DIR}/${MACHINE}${HOST_VENDOR}-${HOST_OS}/kernel/bzImage \ 86 install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage \
87 ${ISODIR}/vmlinuz 87 ${ISODIR}/vmlinuz
88 88
89 # Install the configuration files 89 # Install the configuration files
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index 3f3a24dd57..993f831a54 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -30,7 +30,6 @@ MULTIMACH_TARGET_SYS = "${MULTIMACH_ARCH}${HOST_VENDOR}-${HOST_OS}"
30INHIBIT_DEFAULT_DEPS = "1" 30INHIBIT_DEFAULT_DEPS = "1"
31 31
32STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk" 32STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
33STAGING_DIR_TARGET = "${STAGING_DIR}/${OLD_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
34 33
35TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" 34TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}"
36 35
@@ -82,3 +81,5 @@ export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
82# Cross-canadian packages need to pull in nativesdk dynamic libs 81# Cross-canadian packages need to pull in nativesdk dynamic libs
83SHLIBSDIR = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${BUILD_OS}/shlibs" 82SHLIBSDIR = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${BUILD_OS}/shlibs"
84 83
84do_populate_sysroot[stamp-extra-info] = ""
85do_package[stamp-extra-info] = ""
diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass
index 6d7c7cd463..2564505d6a 100644
--- a/meta/classes/cross.bbclass
+++ b/meta/classes/cross.bbclass
@@ -20,6 +20,11 @@ HOST_OS = "${BUILD_OS}"
20HOST_PREFIX = "${BUILD_PREFIX}" 20HOST_PREFIX = "${BUILD_PREFIX}"
21HOST_CC_ARCH = "${BUILD_CC_ARCH}" 21HOST_CC_ARCH = "${BUILD_CC_ARCH}"
22 22
23STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
24
25export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
26export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
27
23CPPFLAGS = "${BUILD_CPPFLAGS}" 28CPPFLAGS = "${BUILD_CPPFLAGS}"
24CFLAGS = "${BUILD_CFLAGS}" 29CFLAGS = "${BUILD_CFLAGS}"
25CXXFLAGS = "${BUILD_CFLAGS}" 30CXXFLAGS = "${BUILD_CFLAGS}"
diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass
index 23db163ba6..08ba823767 100644
--- a/meta/classes/crosssdk.bbclass
+++ b/meta/classes/crosssdk.bbclass
@@ -18,3 +18,5 @@ target_base_libdir = "${SDKPATHNATIVE}${base_libdir_nativesdk}"
18target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" 18target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
19target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}" 19target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}"
20 20
21do_populate_sysroot[stamp-extra-info] = ""
22do_package[stamp-extra-info] = ""
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index aec7fe38a9..545a73eb8b 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -120,3 +120,5 @@ do_package_write_ipk[noexec] = "1"
120do_package_write_deb[noexec] = "1" 120do_package_write_deb[noexec] = "1"
121do_package_write_rpm[noexec] = "1" 121do_package_write_rpm[noexec] = "1"
122 122
123do_populate_sysroot[stamp-extra-info] = ""
124do_package[stamp-extra-info] = ""
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index 154bd827b6..587a907c44 100644
--- a/meta/classes/nativesdk.bbclass
+++ b/meta/classes/nativesdk.bbclass
@@ -19,6 +19,8 @@ python () {
19 19
20#STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk" 20#STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
21#STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}-nativesdk" 21#STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}-nativesdk"
22STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
23STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}"
22 24
23HOST_ARCH = "${SDK_ARCH}" 25HOST_ARCH = "${SDK_ARCH}"
24HOST_VENDOR = "${SDK_VENDOR}" 26HOST_VENDOR = "${SDK_VENDOR}"
@@ -79,4 +81,5 @@ python __anonymous () {
79 bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-nativesdk", d) 81 bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-nativesdk", d)
80} 82}
81 83
82 84do_populate_sysroot[stamp-extra-info] = ""
85do_package[stamp-extra-info] = ""
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 8e7fa26f72..1b950bb617 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1094,6 +1094,7 @@ do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
1094do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}" 1094do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
1095do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}" 1095do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
1096do_package[sstate-lockfile] = "${PACKAGELOCK}" 1096do_package[sstate-lockfile] = "${PACKAGELOCK}"
1097do_package[stamp-extra-info] = "${MACHINE}"
1097do_package_setscene[dirs] = "${STAGING_DIR}" 1098do_package_setscene[dirs] = "${STAGING_DIR}"
1098 1099
1099python do_package_setscene () { 1100python do_package_setscene () {
diff --git a/meta/classes/siteconfig.bbclass b/meta/classes/siteconfig.bbclass
index 5edc0d6a0b..0813c2543e 100644
--- a/meta/classes/siteconfig.bbclass
+++ b/meta/classes/siteconfig.bbclass
@@ -13,10 +13,10 @@ python siteconfig_do_siteconfig () {
13EXTRASITECONFIG ?= "" 13EXTRASITECONFIG ?= ""
14 14
15siteconfig_do_siteconfig_gencache () { 15siteconfig_do_siteconfig_gencache () {
16 mkdir -p ${WORKDIR}/site_config 16 mkdir -p ${WORKDIR}/site_config_${MACHINE}
17 gen-site-config ${FILE_DIRNAME}/site_config \ 17 gen-site-config ${FILE_DIRNAME}/site_config \
18 >${WORKDIR}/site_config/configure.ac 18 >${WORKDIR}/site_config_${MACHINE}/configure.ac
19 cd ${WORKDIR}/site_config 19 cd ${WORKDIR}/site_config_${MACHINE}
20 autoconf 20 autoconf
21 CONFIG_SITE="" ${EXTRASITECONFIG} ./configure ${CONFIGUREOPTS} --cache-file ${PN}_cache 21 CONFIG_SITE="" ${EXTRASITECONFIG} ./configure ${CONFIGUREOPTS} --cache-file ${PN}_cache
22 sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \ 22 sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 38f2bb99e6..807e8e39aa 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -1,7 +1,7 @@
1SSTATE_VERSION = "1" 1SSTATE_VERSION = "1"
2 2
3SSTATE_MANIFESTS = "${TMPDIR}/sstate-control" 3SSTATE_MANIFESTS = "${TMPDIR}/sstate-control"
4SSTATE_MANFILEBASE = "${SSTATE_MANIFESTS}/manifest-${SSTATE_PKGARCH}-" 4SSTATE_MANFILEBASE = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-"
5SSTATE_MANFILEPREFIX = "${SSTATE_MANFILEBASE}${PN}" 5SSTATE_MANFILEPREFIX = "${SSTATE_MANFILEBASE}${PN}"
6 6
7 7
@@ -14,15 +14,22 @@ SSTATE_SCAN_CMD ?= "find ${SSTATE_BUILDDIR} \( -name "*.la" -o -name "*-config"
14 14
15BB_HASHFILENAME = "${SSTATE_PKGNAME}" 15BB_HASHFILENAME = "${SSTATE_PKGNAME}"
16 16
17SSTATE_MANMACH ?= "${SSTATE_PKGARCH}"
18
17python () { 19python () {
18 if bb.data.inherits_class('native', d): 20 if bb.data.inherits_class('native', d):
19 bb.data.setVar('SSTATE_PKGARCH', bb.data.getVar('BUILD_ARCH', d), d) 21 bb.data.setVar('SSTATE_PKGARCH', bb.data.getVar('BUILD_ARCH', d), d)
20 elif bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d): 22 elif bb.data.inherits_class('cross', d):
23 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${BUILD_ARCH}_${BASE_PACKAGE_ARCH}", d), d)
24 bb.data.setVar('SSTATE_MANMACH', bb.data.expand("${BUILD_ARCH}_${MACHINE}", d), d)
25 elif bb.data.inherits_class('crosssdk', d):
21 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${BUILD_ARCH}_${BASE_PACKAGE_ARCH}", d), d) 26 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${BUILD_ARCH}_${BASE_PACKAGE_ARCH}", d), d)
22 elif bb.data.inherits_class('nativesdk', d): 27 elif bb.data.inherits_class('nativesdk', d):
23 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}", d), d) 28 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}", d), d)
24 elif bb.data.inherits_class('cross-canadian', d): 29 elif bb.data.inherits_class('cross-canadian', d):
25 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}_${BASE_PACKAGE_ARCH}", d), d) 30 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}_${BASE_PACKAGE_ARCH}", d), d)
31 else:
32 bb.data.setVar('SSTATE_MANMACH', bb.data.expand("${MACHINE}", d), d)
26 33
27 # These classes encode staging paths into their scripts data so can only be 34 # These classes encode staging paths into their scripts data so can only be
28 # reused if we manipulate the paths 35 # reused if we manipulate the paths
@@ -147,10 +154,14 @@ def sstate_installpkg(ss, d):
147 fixmefn = sstateinst + "fixmepath" 154 fixmefn = sstateinst + "fixmepath"
148 if os.path.isfile(fixmefn): 155 if os.path.isfile(fixmefn):
149 staging = bb.data.getVar('STAGING_DIR', d, True) 156 staging = bb.data.getVar('STAGING_DIR', d, True)
157 staging_target = bb.data.getVar('STAGING_DIR_TARGET', d, True)
158 staging_host = bb.data.getVar('STAGING_DIR_HOST', d, True)
150 fixmefd = open(fixmefn, "r") 159 fixmefd = open(fixmefn, "r")
151 fixmefiles = fixmefd.readlines() 160 fixmefiles = fixmefd.readlines()
152 fixmefd.close() 161 fixmefd.close()
153 for file in fixmefiles: 162 for file in fixmefiles:
163 os.system("sed -i -e s:FIXMESTAGINGDIRTARGET:%s:g %s" % (staging_target, sstateinst + file))
164 os.system("sed -i -e s:FIXMESTAGINGDIRHOST:%s:g %s" % (staging_host, sstateinst + file))
154 os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file)) 165 os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file))
155 166
156 for state in ss['dirs']: 167 for state in ss['dirs']:
@@ -248,6 +259,35 @@ python sstate_cleanall() {
248 sstate_clean(shared_state, d) 259 sstate_clean(shared_state, d)
249} 260}
250 261
262def sstate_hardcode_path(d):
263 # Need to remove hardcoded paths and fix these when we install the
264 # staging packages.
265 sstate_scan_cmd = bb.data.getVar('SSTATE_SCAN_CMD', d, True)
266 p = os.popen("%s" % sstate_scan_cmd)
267 file_list = p.read()
268
269 if file_list == "":
270 p.close()
271 return
272
273 staging = bb.data.getVar('STAGING_DIR', d, True)
274 staging_target = bb.data.getVar('STAGING_DIR_TARGET', d, True)
275 staging_host = bb.data.getVar('STAGING_DIR_HOST', d, True)
276 sstate_builddir = bb.data.getVar('SSTATE_BUILDDIR', d, True)
277
278 for i in file_list.split('\n'):
279 if bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('cross-canadian', d):
280 cmd = "sed -i -e s:%s:FIXMESTAGINGDIR:g %s" % (staging, i)
281 elif bb.data.inherits_class('cross', d):
282 cmd = "sed -i -e s:%s:FIXMESTAGINGDIRTARGET:g %s \
283 sed -i -e s:%s:FIXMESTAGINGDIR:g %s" % (staging_target, i, staging, i)
284 else:
285 cmd = "sed -i -e s:%s:FIXMESTAGINGDIRHOST:g %s" % (staging_host, i)
286
287 os.system(cmd)
288 os.system("echo %s | sed -e 's:%s::' >> %sfixmepath" % (i, sstate_builddir, sstate_builddir))
289 p.close()
290
251def sstate_package(ss, d): 291def sstate_package(ss, d):
252 import oe.path 292 import oe.path
253 293
@@ -273,6 +313,7 @@ def sstate_package(ss, d):
273 313
274 bb.data.setVar('SSTATE_BUILDDIR', sstatebuild, d) 314 bb.data.setVar('SSTATE_BUILDDIR', sstatebuild, d)
275 bb.data.setVar('SSTATE_PKG', sstatepkg, d) 315 bb.data.setVar('SSTATE_PKG', sstatepkg, d)
316 sstate_hardcode_path(d)
276 bb.build.exec_func('sstate_create_package', d) 317 bb.build.exec_func('sstate_create_package', d)
277 318
278 bb.siggen.dump_this_task(sstatepkg + ".siginfo", d) 319 bb.siggen.dump_this_task(sstatepkg + ".siginfo", d)
@@ -337,13 +378,6 @@ python sstate_task_postfunc () {
337# set as SSTATE_BUILDDIR 378# set as SSTATE_BUILDDIR
338# 379#
339sstate_create_package () { 380sstate_create_package () {
340 # Need to remove hardcoded paths and fix these when we install the
341 # staging packages.
342 for i in `${SSTATE_SCAN_CMD}` ; do \
343 sed -i -e s:${STAGING_DIR}:FIXMESTAGINGDIR:g $i
344 echo $i | sed -e 's:${SSTATE_BUILDDIR}::' >> ${SSTATE_BUILDDIR}fixmepath
345 done
346
347 cd ${SSTATE_BUILDDIR} 381 cd ${SSTATE_BUILDDIR}
348 tar -cvzf ${SSTATE_PKG} * 382 tar -cvzf ${SSTATE_PKG} *
349 383
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 72d77e2b54..2ef8f29b75 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -92,6 +92,7 @@ SSTATETASKS += "do_populate_sysroot"
92do_populate_sysroot[sstate-name] = "populate-sysroot" 92do_populate_sysroot[sstate-name] = "populate-sysroot"
93do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}" 93do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}"
94do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/" 94do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/"
95do_populate_sysroot[stamp-extra-info] = "${MACHINE}"
95 96
96python do_populate_sysroot_setscene () { 97python do_populate_sysroot_setscene () {
97 sstate_setscene(d) 98 sstate_setscene(d)
diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
index 5ec0e8a4a9..b2165bc275 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -49,8 +49,8 @@ toolchain_create_tree_env_script () {
49 echo 'export TARGET_PREFIX=${TARGET_PREFIX}' >> $script 49 echo 'export TARGET_PREFIX=${TARGET_PREFIX}' >> $script
50 echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${BUILD_SYS}"' >> $script 50 echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${BUILD_SYS}"' >> $script
51 if [ "${TARGET_OS}" = "darwin8" ]; then 51 if [ "${TARGET_OS}" = "darwin8" ]; then
52 echo 'export TARGET_CFLAGS="-I${STAGING_DIR}${TARGET_SYS}${includedir}"' >> $script 52 echo 'export TARGET_CFLAGS="-I${STAGING_DIR}${MACHINE}${includedir}"' >> $script
53 echo 'export TARGET_LDFLAGS="-L${STAGING_DIR}${TARGET_SYS}${libdir}"' >> $script 53 echo 'export TARGET_LDFLAGS="-L${STAGING_DIR}${MACHINE}${libdir}"' >> $script
54 # Workaround darwin toolchain sysroot path problems 54 # Workaround darwin toolchain sysroot path problems
55 cd ${SDK_OUTPUT}${SDKTARGETSYSROOT}/usr 55 cd ${SDK_OUTPUT}${SDKTARGETSYSROOT}/usr
56 ln -s /usr/local local 56 ln -s /usr/local local
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 1c6c7e5f12..db09c75191 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -280,7 +280,7 @@ STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
280 280
281# This should really be MULTIMACH_HOST_SYS but that breaks "all" and machine 281# This should really be MULTIMACH_HOST_SYS but that breaks "all" and machine
282# specific packages - hack around it for now. 282# specific packages - hack around it for now.
283STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}" 283STAGING_DIR_HOST = "${STAGING_DIR}/${MACHINE}"
284STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}" 284STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
285STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}" 285STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
286STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}" 286STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
@@ -292,7 +292,7 @@ STAGING_PYDIR = "${STAGING_DIR}/lib/python2.4"
292 292
293# This should really be MULTIMACH_TARGET_SYS but that breaks "all" and machine 293# This should really be MULTIMACH_TARGET_SYS but that breaks "all" and machine
294# specific packages - hack around it for now. 294# specific packages - hack around it for now.
295STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}" 295STAGING_DIR_TARGET = "${STAGING_DIR}/${MACHINE}"
296STAGING_DIR_TCBOOTSTRAP = "${STAGING_DIR_TARGET}-tcbootstrap" 296STAGING_DIR_TCBOOTSTRAP = "${STAGING_DIR_TARGET}-tcbootstrap"
297 297
298# Setting DEPLOY_DIR outside of TMPDIR is helpful, when you are using 298# Setting DEPLOY_DIR outside of TMPDIR is helpful, when you are using
@@ -316,7 +316,7 @@ SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
316################################################################## 316##################################################################
317 317
318OLDEST_KERNEL = "2.4.0" 318OLDEST_KERNEL = "2.4.0"
319STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/kernel" 319STAGING_KERNEL_DIR = "${STAGING_DIR_HOST}/kernel"
320 320
321################################################################## 321##################################################################
322# Specific image creation and rootfs population info. 322# Specific image creation and rootfs population info.
@@ -601,10 +601,10 @@ SLOT = "0"
601 601
602# Other 602# Other
603 603
604export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig" 604export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}/${libdir}/pkgconfig"
605export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" 605export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
606export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}" 606export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}"
607export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}" 607export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
608export PKG_CONFIG_DISABLE_UNINSTALLED = "yes" 608export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
609 609
610export QMAKE_MKSPEC_PATH = "${STAGING_DATADIR_NATIVE}/qmake" 610export QMAKE_MKSPEC_PATH = "${STAGING_DATADIR_NATIVE}/qmake"
@@ -735,5 +735,5 @@ TRANSLATED_TARGET_ARCH ??= ${TARGET_ARCH}
735# Setup our default hash policy 735# Setup our default hash policy
736BB_SIGNATURE_HANDLER ?= "basic" 736BB_SIGNATURE_HANDLER ?= "basic"
737BB_HASHTASK_WHITELIST ?= "(.*-cross$|.*-native$|.*-cross-initial$|.*-cross-intermediate$|^virtual:native:.*|^virtual:nativesdk:.*)" 737BB_HASHTASK_WHITELIST ?= "(.*-cross$|.*-native$|.*-cross-initial$|.*-cross-intermediate$|^virtual:native:.*|^virtual:nativesdk:.*)"
738BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH USERNAME" 738BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH USERNAME STAGING_DIR_HOST STAGING_DIR_TARGET"
739 739