summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/insane.bbclass11
-rw-r--r--classes/native.bbclass47
-rw-r--r--classes/pkgconfig.bbclass30
-rw-r--r--classes/sdk.bbclass12
-rw-r--r--conf/bitbake.conf56
-rw-r--r--conf/sanity.conf2
-rw-r--r--packages/gcc/gcc3-build-cross.inc5
-rw-r--r--packages/gcc/gcc3-build-sdk.inc2
-rw-r--r--packages/gcc/gcc4-build-sdk.inc4
-rw-r--r--packages/linux-libc-headers/linux-libc-headers.inc2
-rw-r--r--packages/openssl/openssl.inc2
-rw-r--r--packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb3
12 files changed, 69 insertions, 107 deletions
diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 97cf036dd9..5ff49cd65e 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -333,12 +333,15 @@ def package_qa_check_staged(path,d):
import os, bb
sane = True
- workdir = os.path.join(bb.data.getVar('TMPDIR', d, True), "work")
+ tmpdir = bb.data.getVar('TMPDIR', d, True)
+ workdir = os.path.join(tmpdir, "work")
- if bb.data.inherits_class("native", d):
+ if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d):
installed = "installed=no"
+ pkgconfigcheck = workdir
else:
installed = "installed=yes"
+ pkgconfigcheck = tmpdir
# find all .la and .pc files
# read the content
@@ -356,8 +359,8 @@ def package_qa_check_staged(path,d):
sane = package_qa_handle_error(8, error_msg, "staging", path, d)
elif file[-2:] == "pc":
file_content = open(path).read()
- if workdir in file_content:
- error_msg = "%s failed sanity test (workdir) in path %s" % (file,root)
+ if pkgconfigcheck in file_content:
+ error_msg = "%s failed sanity test (tmpdir) in path %s" % (file,root)
sane = package_qa_handle_error(6, error_msg, "staging", path, d)
return sane
diff --git a/classes/native.bbclass b/classes/native.bbclass
index 934303cc0c..8f2b6f3fec 100644
--- a/classes/native.bbclass
+++ b/classes/native.bbclass
@@ -47,39 +47,33 @@ export AS = "${HOST_PREFIX}as"
export RANLIB = "${HOST_PREFIX}ranlib"
export STRIP = "${HOST_PREFIX}strip"
-
# Path prefixes
-base_prefix = "${STAGING_DIR}/${BUILD_ARCH}-${BUILD_OS}"
-prefix = "${base_prefix}"
-exec_prefix = "${base_prefix}"
+export base_prefix = "${STAGING_DIR_NATIVE}"
+export prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
+export exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
# Base paths
-base_bindir = "${base_prefix}/bin"
-base_sbindir = "${base_prefix}/bin"
-base_libdir = "${base_prefix}/lib"
+export base_bindir = "${STAGING_DIR_NATIVE}${layout_base_bindir}"
+export base_sbindir = "${STAGING_DIR_NATIVE}${layout_base_sbindir}"
+export base_libdir = "${STAGING_DIR_NATIVE}${layout_base_libdir}"
# Architecture independent paths
-sysconfdir = "${prefix}/etc"
-sharedstatedir = "${prefix}/com"
-localstatedir = "${prefix}/var"
-infodir = "${datadir}/info"
-mandir = "${datadir}/man"
-docdir = "${datadir}/doc"
-servicedir = "${prefix}/srv"
+export datadir = "${STAGING_DIR_NATIVE}${layout_datadir}"
+export sysconfdir = "${STAGING_DIR_NATIVE}${layout_sysconfdir}"
+export sharedstatedir = "${STAGING_DIR_NATIVE}${layout_sharedstatedir}"
+export localstatedir = "${STAGING_DIR_NATIVE}${layout_localstatedir}"
+export infodir = "${STAGING_DIR_NATIVE}${layout_infodir}"
+export mandir = "${STAGING_DIR_NATIVE}${layout_mandir}"
+export docdir = "${STAGING_DIR_NATIVE}${layout_docdir}"
+export servicedir = "${STAGING_DIR_NATIVE}${layout_servicedir}"
# Architecture dependent paths
-bindir = "${exec_prefix}/bin"
-sbindir = "${exec_prefix}/bin"
-libexecdir = "${exec_prefix}/libexec"
-libdir = "${exec_prefix}/lib"
-includedir = "${exec_prefix}/include"
-oldincludedir = "${exec_prefix}/include"
-
-# Datadir is made arch dependent here, primarily
-# for autoconf macros, and other things that
-# may be manipulated to handle crosscompilation
-# issues.
-datadir = "${exec_prefix}/share"
+export bindir = "${STAGING_DIR_NATIVE}${layout_bindir}"
+export sbindir = "${STAGING_DIR_NATIVE}${layout_sbindir}"
+export libexecdir = "${STAGING_DIR_NATIVE}${layout_libexecdir}"
+export libdir = "${STAGING_DIR_NATIVE}${layout_libdir}"
+export includedir = "${STAGING_DIR_NATIVE}${layout_includedir}"
+export oldincludedir = "${STAGING_DIR_NATIVE}${layout_includedir}"
do_stage () {
if [ "${INHIBIT_NATIVE_STAGE_INSTALL}" != "1" ]
@@ -93,3 +87,4 @@ do_install () {
}
PKG_CONFIG_PATH .= "${EXTRA_NATIVE_PKGCONFIG_PATH}"
+PKG_CONFIG_SYSROOT_DIR = ""
diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass
index d2176d8b39..d65f8a6253 100644
--- a/classes/pkgconfig.bbclass
+++ b/classes/pkgconfig.bbclass
@@ -2,36 +2,10 @@ inherit base
DEPENDS_prepend = "pkgconfig-native "
-# The namespaces can clash here hence the two step replace
-def get_pkgconfig_mangle(d):
- import bb.data
- s = "-e ''"
- if not bb.data.inherits_class('native', d):
- s += " -e 's:=${libdir}:=OELIBDIR:;'"
- s += " -e 's:=${includedir}:=OEINCDIR:;'"
- s += " -e 's:=${datadir}:=OEDATADIR:'"
- s += " -e 's:=${prefix}:=OEPREFIX:'"
- s += " -e 's:=${exec_prefix}:=OEEXECPREFIX:'"
- s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'"
- s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'"
- s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'"
- s += " -e 's:OEPREFIX:${STAGING_DIR_HOST}${layout_prefix}:'"
- s += " -e 's:OEEXECPREFIX:${STAGING_DIR_HOST}${layout_exec_prefix}:'"
- s += " -e 's:-L${WORKDIR}\S*: :g'"
- s += " -e 's:-I${WORKDIR}\S*: :g'"
-
- return s
-
-do_install_append () {
- for pc in `find ${D} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do
- sed -i ${@get_pkgconfig_mangle(d)} -e 's:${D}::g' -e 's:${STAGING_LIBDIR}:${libdir}:g' -e 's:${STAGING_INCDIR}:${includedir}:g' -e 's:${STAGING_DIR_TARGET}:${prefix}:g' ${pc}
- done
-}
-
do_stage_append () {
+ install -d ${PKG_CONFIG_DIR}
for pc in `find ${S} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do
pcname=`basename $pc`
- install -d ${PKG_CONFIG_DIR}
- cat $pc | sed ${@get_pkgconfig_mangle(d)} -e 's:${D}${libdir}\S*:${STAGING_LIBDIR}:g' -e 's:${D}${prefix}/include\S*:${STAGING_INCDIR}:g' > ${PKG_CONFIG_DIR}/$pcname
+ cat $pc > ${PKG_CONFIG_DIR}/$pcname
done
}
diff --git a/classes/sdk.bbclass b/classes/sdk.bbclass
index 63f12117eb..71c65a1629 100644
--- a/classes/sdk.bbclass
+++ b/classes/sdk.bbclass
@@ -6,15 +6,16 @@ OLD_PACKAGE_ARCH := ${PACKAGE_ARCH}
PACKAGE_ARCH = "${BUILD_ARCH}-${OLD_PACKAGE_ARCH}-sdk"
HOST_ARCH = "${BUILD_ARCH}"
-HOST_VENDOR = "${BUILD_VENDOR}"
+# This isn't BUILD_VENDOR since we don't want to clash with native staging
+HOST_VENDOR = "${TARGET_VENDOR}"
HOST_OS = "${BUILD_OS}"
HOST_PREFIX = "${BUILD_PREFIX}"
HOST_CC_ARCH = "${BUILD_CC_ARCH}"
-CPPFLAGS = "${BUILD_CPPFLAGS}"
-CFLAGS = "${BUILD_CFLAGS}"
-CXXFLAGS = "${BUILD_CFLAGS}"
-LDFLAGS = "${BUILD_LDFLAGS}"
+CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
+CFLAGS = "${BUILDSDK_CFLAGS}"
+CXXFLAGS = "${BUILDSDK_CFLAGS}"
+LDFLAGS = "${BUILDSDK_LDFLAGS}"
# Path prefixes
prefix = "${SDK_PREFIX}"
@@ -49,3 +50,4 @@ FILES_${PN}-dbg += "${prefix}/.debug \
${prefix}/bin/.debug \
"
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${HOST_SYS}"
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index de526f0e56..4fe5c21e02 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -2,23 +2,20 @@
# Standard target filesystem layout.
##################################################################
-# Note these currently match the existing staging layout but this
-# is planned to change, see the oe-dev mailing list
-
# Path prefixes
-layout_prefix = ""
-layout_exec_prefix = ""
+layout_prefix = "/usr"
+layout_exec_prefix = "/usr"
layout_base_prefix = ""
# Base paths
layout_base_bindir = "${layout_base_prefix}/bin"
-layout_base_sbindir = "${layout_base_prefix}/bin"
+layout_base_sbindir = "${layout_base_prefix}/sbin"
layout_base_libdir = "${layout_base_prefix}/lib"
# Architecture independent paths
-layout_sysconfdir = "/etc"
-layout_localstatedir = "/var"
-layout_servicedir = "/srv"
+layout_sysconfdir = "${layout_base_prefix}/etc"
+layout_localstatedir = "${layout_base_prefix}/var"
+layout_servicedir = "${layout_base_prefix}/srv"
layout_sharedstatedir = "${layout_prefix}/com"
layout_datadir = "${layout_prefix}/share"
layout_infodir = "${layout_datadir}/info"
@@ -27,7 +24,7 @@ layout_docdir = "${layout_datadir}/doc"
# Architecture dependent paths
layout_bindir = "${layout_exec_prefix}/bin"
-layout_sbindir = "${layout_exec_prefix}/bin"
+layout_sbindir = "${layout_exec_prefix}/sbin"
layout_libdir = "${layout_exec_prefix}/lib"
layout_includedir = "${layout_exec_prefix}/include"
layout_libexecdir = "${layout_exec_prefix}/libexec"
@@ -38,31 +35,31 @@ layout_libexecdir = "${layout_exec_prefix}/libexec"
# Path prefixes
export base_prefix = ""
-export prefix = "/usr"
-export exec_prefix = "${prefix}"
+export prefix = "${layout_prefix}"
+export exec_prefix = "${layout_exec_prefix}"
# Base paths
-export base_bindir = "${base_prefix}/bin"
-export base_sbindir = "${base_prefix}/sbin"
-export base_libdir = "${base_prefix}/lib"
+export base_bindir = "${layout_base_bindir}"
+export base_sbindir = "${layout_base_sbindir}"
+export base_libdir = "${layout_base_libdir}"
# Architecture independent paths
-export datadir = "${prefix}/share"
-export sysconfdir = "/etc"
-export sharedstatedir = "${prefix}/com"
-export localstatedir = "/var"
-export infodir = "${datadir}/info"
-export mandir = "${datadir}/man"
-export docdir = "${datadir}/doc"
-export servicedir = "/srv"
+export datadir = "${layout_datadir}"
+export sysconfdir = "${layout_sysconfdir}"
+export sharedstatedir = "${layout_sharedstatedir}"
+export localstatedir = "${layout_localstatedir}"
+export infodir = "${layout_infodir}"
+export mandir = "${layout_mandir}"
+export docdir = "${layout_docdir}"
+export servicedir = "${layout_servicedir}"
# Architecture dependent paths
-export bindir = "${exec_prefix}/bin"
-export sbindir = "${exec_prefix}/sbin"
-export libexecdir = "${exec_prefix}/libexec"
-export libdir = "${exec_prefix}/lib"
-export includedir = "${exec_prefix}/include"
-export oldincludedir = "${exec_prefix}/include"
+export bindir = "${layout_bindir}"
+export sbindir = "${layout_sbindir}"
+export libexecdir = "${layout_libexecdir}"
+export libdir = "${layout_libdir}"
+export includedir = "${layout_includedir}"
+export oldincludedir = "${layout_includedir}"
##################################################################
# Architecture-dependent build variables.
@@ -511,6 +508,7 @@ SLOT = "0"
export PKG_CONFIG_DIR = "${STAGING_LIBDIR}/pkgconfig"
export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}"
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${TARGET_SYS}"
export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
export QMAKE_MKSPEC_PATH = "${STAGING_DATADIR_NATIVE}/qmake"
diff --git a/conf/sanity.conf b/conf/sanity.conf
index 4af4454e2e..35d9d32de1 100644
--- a/conf/sanity.conf
+++ b/conf/sanity.conf
@@ -11,7 +11,7 @@ BB_MIN_VERSION = "1.8.10"
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
-SANITY_ABI = "0"
+SANITY_ABI = "1"
SANITY_ABIFILE = "${TMPDIR}/abi_version"
INHERIT += "sanity"
diff --git a/packages/gcc/gcc3-build-cross.inc b/packages/gcc/gcc3-build-cross.inc
index 1d744c1eae..33429e18ef 100644
--- a/packages/gcc/gcc3-build-cross.inc
+++ b/packages/gcc/gcc3-build-cross.inc
@@ -23,11 +23,6 @@ do_stage_append () {
rm -rf ${CROSS_DIR}/$d
done
- # Hack to be removed when staging layout matches the target layout
- if [ ! -e ${STAGING_DIR_TARGET}/usr ]; then
- ln -s ${STAGING_DIR_TARGET} ${STAGING_DIR_TARGET}/usr
- fi
-
# Fix a few include links so cross builds are happier
if [ ! -e ${STAGING_INCDIR}/c++ ]; then
mkdir -p ${STAGING_INCDIR}
diff --git a/packages/gcc/gcc3-build-sdk.inc b/packages/gcc/gcc3-build-sdk.inc
index aa540212c4..5bc187b745 100644
--- a/packages/gcc/gcc3-build-sdk.inc
+++ b/packages/gcc/gcc3-build-sdk.inc
@@ -5,6 +5,8 @@ SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1'
STAGING_TARGET_INCDIR = "${STAGING_DIR_TARGET}${layout_includedir}"
STAGING_TARGET_LIBDIR = "${STAGING_DIR_TARGET}${layout_libdir}"
+EXTRA_OECONF += "--with-sysroot=${prefix}/${TARGET_SYS} --with-build-sysroot=${STAGING_DIR_TARGET}"
+
do_configure () {
(cd ${S} && gnu-configize) || die "failure running gnu-configize"
(cd ${S}/libstdc++-v3 && autoreconf)
diff --git a/packages/gcc/gcc4-build-sdk.inc b/packages/gcc/gcc4-build-sdk.inc
index 10526454c3..d6af5fe933 100644
--- a/packages/gcc/gcc4-build-sdk.inc
+++ b/packages/gcc/gcc4-build-sdk.inc
@@ -4,10 +4,6 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d
EXTRA_OECONF += "--with-sysroot=${prefix}/${TARGET_SYS} --with-build-sysroot=${STAGING_DIR_TARGET}"
do_configure () {
- # Hack to be removed when staging layout matches the target layout
- if [ ! -e ${STAGING_DIR_TARGET}/usr ]; then
- ln -s ${STAGING_DIR_TARGET} ${STAGING_DIR_TARGET}/usr
- fi
(cd ${S} && gnu-configize) || die "failure running gnu-configize"
(cd ${S}/libstdc++-v3 && autoreconf)
oe_runconf
diff --git a/packages/linux-libc-headers/linux-libc-headers.inc b/packages/linux-libc-headers/linux-libc-headers.inc
index 43f0958863..d9f4d687ee 100644
--- a/packages/linux-libc-headers/linux-libc-headers.inc
+++ b/packages/linux-libc-headers/linux-libc-headers.inc
@@ -1,5 +1,3 @@
DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
SECTION = "devel"
LICENSE = "GPL"
-
-DEPENDS = "cross-linkage" \ No newline at end of file
diff --git a/packages/openssl/openssl.inc b/packages/openssl/openssl.inc
index 8e3f33a96e..9fb8b343b6 100644
--- a/packages/openssl/openssl.inc
+++ b/packages/openssl/openssl.inc
@@ -14,7 +14,7 @@ export CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}"
export CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}"
export DIRS = "crypto ssl apps"
-export EX_LIBS = "-lgcc -ldl ${TARGET_LDFLAGS}"
+export EX_LIBS = "-lgcc -ldl"
export AS = "${CC} -c"
PACKAGES =+ "libcrypto libssl"
diff --git a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
index 051279e33f..e52ab34392 100644
--- a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
+++ b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
@@ -2,14 +2,13 @@ DESCRIPTION = "Precompiled SharpROM toolchain glue package"
LICENSE = "GPL"
SECTION = "base"
# see bug 2199 for the reason the following line is in here
-DEPENDS = "virtual/linux-libc-headers"
+DEPENDS = "linux-libc-headers cross-linkage staging-linkage"
PROVIDES_sharprom-compatible = "\
virtual/arm-linux-gcc-2.95 \
virtual/arm-linux-libc-for-gcc \
virtual/arm-linux-binutils \
virtual/libc \
virtual/arm-linux-gcc \
- virtual/linux-libc-headers \
virtual/arm-linux-gcc-initial "
PR = "r1"