diff options
-rw-r--r-- | classes/insane.bbclass | 11 | ||||
-rw-r--r-- | classes/native.bbclass | 47 | ||||
-rw-r--r-- | classes/pkgconfig.bbclass | 30 | ||||
-rw-r--r-- | classes/sdk.bbclass | 12 | ||||
-rw-r--r-- | conf/bitbake.conf | 56 | ||||
-rw-r--r-- | conf/sanity.conf | 2 | ||||
-rw-r--r-- | packages/gcc/gcc3-build-cross.inc | 5 | ||||
-rw-r--r-- | packages/gcc/gcc3-build-sdk.inc | 2 | ||||
-rw-r--r-- | packages/gcc/gcc4-build-sdk.inc | 4 | ||||
-rw-r--r-- | packages/linux-libc-headers/linux-libc-headers.inc | 2 | ||||
-rw-r--r-- | packages/openssl/openssl.inc | 2 | ||||
-rw-r--r-- | packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb | 3 |
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" |