summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/cross-canadian.bbclass3
-rw-r--r--meta/classes/native.bbclass1
-rw-r--r--meta/classes/package.bbclass25
3 files changed, 18 insertions, 11 deletions
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index 47fb0abb21..7dc20c65b1 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -90,7 +90,8 @@ export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
# Cross-canadian packages need to pull in nativesdk dynamic libs
-SHLIBSDIR = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${BUILD_OS}/shlibs"
+SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/"
+SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/"
do_populate_sysroot[stamp-extra-info] = ""
do_package[stamp-extra-info] = ""
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index eb30b5a3c7..93f96f5dad 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -88,7 +88,6 @@ do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_NATIVE}"
# Since we actually install these into situ there is no staging prefix
STAGING_DIR_HOST = ""
STAGING_DIR_TARGET = ""
-SHLIBSDIR = "${STAGING_DIR_NATIVE}/shlibs"
PKG_CONFIG_DIR = "${libdir}/pkgconfig"
EXTRA_NATIVE_PKGCONFIG_PATH ?= ""
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 03002772f6..76979bd3df 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1292,8 +1292,16 @@ python package_do_filedeps() {
d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files))
}
-SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs"
-SHLIBSWORKDIR = "${WORKDIR}/shlibs"
+def getshlibsdirs(d):
+ dirs = []
+ triplets = (d.getVar("PKGTRIPLETS") or "").split()
+ for t in triplets:
+ dirs.append("${TMPDIR}/pkgdata/" + t + "/shlibs/")
+ return " ".join(dirs)
+
+SHLIBSDIRS = "${@getshlibsdirs(d)}"
+SHLIBSDIR = "${TMPDIR}/pkgdata/${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/shlibs"
+SHLIBSWORKDIR = "${PKGDESTWORK}/shlibs"
python package_do_shlibs() {
import re, pipes
@@ -1318,7 +1326,7 @@ python package_do_shlibs() {
pkgdest = d.getVar('PKGDEST', True)
- shlibs_dir = d.getVar('SHLIBSDIR', True)
+ shlibs_dirs = d.getVar('SHLIBSDIRS', True).split()
shlibswork_dir = d.getVar('SHLIBSWORKDIR', True)
# Take shared lock since we're only reading, not writing
@@ -1472,7 +1480,7 @@ python package_do_shlibs() {
d.setVar('pkg_postinst_%s' % pkg, postinst)
list_re = re.compile('^(.*)\.list$')
- for dir in [shlibs_dir]:
+ for dir in shlibs_dirs:
if not os.path.exists(dir):
continue
for file in os.listdir(dir):
@@ -1543,7 +1551,7 @@ python package_do_pkgconfig () {
workdir = d.getVar('WORKDIR', True)
pkgdest = d.getVar('PKGDEST', True)
- shlibs_dir = d.getVar('SHLIBSDIR', True)
+ shlibs_dirs = d.getVar('SHLIBSDIRS', True).split()
shlibswork_dir = d.getVar('SHLIBSWORKDIR', True)
pc_re = re.compile('(.*)\.pc$')
@@ -1594,7 +1602,7 @@ python package_do_pkgconfig () {
f.write('%s\n' % p)
f.close()
- for dir in [shlibs_dir]:
+ for dir in shlibs_dirs:
if not os.path.exists(dir):
continue
for file in os.listdir(dir):
@@ -1853,10 +1861,9 @@ SSTATETASKS += "do_package"
do_package[sstate-name] = "package"
do_package[cleandirs] = "${PKGDESTWORK}"
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
-do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
-do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
+do_package[sstate-inputdirs] = "${PKGDESTWORK}"
+do_package[sstate-outputdirs] = "${PKGDATA_DIR}"
do_package[sstate-lockfile-shared] = "${PACKAGELOCK}"
-do_package[stamp-extra-info] = "${MACHINE}"
do_package_setscene[dirs] = "${STAGING_DIR}"
python do_package_setscene () {