the gdb-cross package so for example you would run:
<programlisting>bitbake gdb-cross</programlisting>
Once built, the cross gdb binary can be found at
- <programlisting>tmp/cross/bin/<target-abi>-gdb </programlisting>
+ <programlisting>tmp/sysroots/<host-arch</usr/bin/<target-abi>-gdb </programlisting>
</para>
</section>
</para>
</section>
- <section id='structure-build-tmp-cross'>
- <title><filename class="directory">build/tmp/cross/</filename></title>
-
- <para>
- The cross compiler when generated is placed into this directory and those
- beneath it.
- </para>
- </section>
-
<section id='structure-build-tmp-deploy'>
<title><filename class="directory">build/tmp/deploy/</filename></title>
PR = "r2"
inherit openmoko2
-LDFLAGS_append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib"
SRC_URI += "file://webkit-update.patch;patch=1;minrev=3646;maxrev=4171"
STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}"
-PATH_append = ":${TMPDIR}/cross/${HOST_ARCH}/${bindir_cross}"
+PATH_append = ":${TMPDIR}/sysroots/${HOST_ARCH}/${bindir_cross}"
PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}"
PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/"
# Path mangling needed by the cross packaging
# Note that we use := here to ensure that libdir and includedir are
-# target paths, not CROSS_DIR paths.
+# target paths.
target_libdir := "${libdir}"
target_includedir := "${includedir}"
target_base_libdir := "${base_libdir}"
# Path mangling needed by the cross packaging
# Note that we use := here to ensure that libdir and includedir are
-# target paths, not CROSS_DIR paths.
+# target paths.
target_libdir := "${libdir}"
target_includedir := "${includedir}"
target_base_libdir := "${base_libdir}"
if ! [ -d "$module" ] ; then
${STRIP} -v -g $module
fi
- done
-# NM="${CROSS_DIR}/bin/${HOST_PREFIX}nm" OBJCOPY="${CROSS_DIR}/bin/${HOST_PREFIX}objcopy" strip_module $modules
+ done
+# NM="${STAGING_BINDIR_NATIVE}/${HOST_PREFIX}nm" OBJCOPY="${STAGING_BINDIR_NATIVE}/${HOST_PREFIX}objcopy" strip_module $modules
fi
fi
done
oe_runmake 'DESTDIR=${D}' install
# We don't really need these, so we'll remove them...
- rm -rf ${D}${CROSS_DIR}/lib/ldscripts
- rm -rf ${D}${CROSS_DIR}/share/info
- rm -rf ${D}${CROSS_DIR}/share/locale
- rm -rf ${D}${CROSS_DIR}/share/man
- rmdir ${D}${CROSS_DIR}/share || :
- rmdir ${D}${CROSS_DIR}/${libdir}/gcc-lib || :
- rmdir ${D}${CROSS_DIR}/${libdir}64/gcc-lib || :
- rmdir ${D}${CROSS_DIR}/${libdir} || :
- rmdir ${D}${CROSS_DIR}/${libdir}64 || :
- rmdir ${D}${CROSS_DIR}/${prefix} || :
+ rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/lib/ldscripts
+ rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/share/info
+ rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/share/locale
+ rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/share/man
+ rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/share || :
+ rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}/gcc-lib || :
+ rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}64/gcc-lib || :
+ rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir} || :
+ rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${libdir}64 || :
+ rmdir ${D}${STAGING_DIR_NATIVE}${prefix_native}/${prefix} || :
}
do_stage () {
EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${target_prefix} \
--with-gxx-include-dir=${prefix}/${TARGET_SYS}${target_includedir}/c++/${BINV}/ \
- --with-build-time-tools=${CROSS_DIR}/${TARGET_SYS}/bin \
+ --with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \
--with-sysroot=${prefix}/${TARGET_SYS} \
--with-build-sysroot=${STAGING_DIR_TARGET}"
# gcc-cross looks and finds these in ${exec_prefix} but we're not so lucky
# for the sdk. Hardcoding the paths ensures the build doesn't go canadian or worse.
#
-export AR_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/ar"
-export AS_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/as"
-export DLLTOOL_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/dlltool"
+export AR_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/ar"
+export AS_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/as"
+export DLLTOOL_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/dlltool"
export CC_FOR_TARGET = "${TARGET_SYS}-gcc"
export CXX_FOR_TARGET = "${TARGET_SYS}-g++"
export LD_FOR_TARGET = "${TARGET_SYS}-ld"
-export LIPO_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/lipo"
-export NM_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/nm"
-export OBJDUMP_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/objdump"
-export RANLIB_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/ranlib"
-export STRIP_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/strip"
-export WINDRES_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/windres"
+export LIPO_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/lipo"
+export NM_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/nm"
+export OBJDUMP_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/objdump"
+export RANLIB_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/ranlib"
+export STRIP_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/strip"
+export WINDRES_FOR_TARGET = "${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin/windres"
#
# We need to override this and make sure the compiler can find staging
# Hack till we fix *libc properly
do_install_append() {
- ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${D}${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+ ln -sf ${STAGING_DIR_NATIVE}${prefix_native}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${D}${STAGING_DIR_NATIVE}${prefix_native}/lib/gcc/${TARGET_SYS}/${BINV}/include/
}
# Hack till we fix *libc properly
do_install_append() {
- ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${D}${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+ ln -sf ${STAGING_DIR_NATIVE}${prefix_native}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${D}${STAGING_DIR_NATIVE}${prefix_native}/lib/gcc/${TARGET_SYS}/${BINV}/include/
}
do_install () {
cd gcc
oe_runmake 'DESTDIR=${D}' install-common install-headers install-libgcc
- install -m 0755 xgcc ${D}${CROSS_DIR}/bin/${TARGET_PREFIX}gcc-${PV}
+ install -m 0755 xgcc ${D}${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}gcc-${PV}
}
do_stage () {
# staging-linkage and cross-linkage recipes don't work anymore, so do it by hand for this backwards CSL toolchain
do_compile_prepend() {
- ln -sf ${STAGING_DIR_TARGET}${target_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
- ln -sf ${STAGING_DIR_TARGET}${target_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
- ln -sf ${STAGING_DIR_TARGET}/lib/libc* ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/crt*.o ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/ld-* ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}/lib/libc* ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/lib/
sed -i -e 's:gcc_no_link=yes:gcc_no_link=no:' ${S}/libstdc++-v3/configure
}
# Remove things we don't need but keep share/java
for d in info man share/doc share/locale share/man share/info; do
- rm -rf ${D}${CROSS_DIR}/$d
+ rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/$d
done
# gcc-runtime requires some headers, we stash them here
# We do this because the install program is called with -s which causes it to
# call "strip" and it then mangles cross compiled stuff..
-PATH_prepend="${CROSS_DIR}/${TARGET_SYS}/bin:"
+PATH_prepend="${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin:"
# Hack to get STAGING_LIBDIR into the linker path when building ffmpeg
CC = "${CCACHE} ${HOST_PREFIX}gcc -L${STAGING_LIBDIR}"
-e "s,${STAGING_LIBDIR},${libdir},g" \
-e "s,${STAGING_BINDIR},${bindir},g" \
-e "s,${STAGING_INCDIR},${includedir},g" \
- -e "s,${CROSS_DIR}${base_bindir}/,,g" \
+ -e "s,${STAGING_BINDIR_NATIVE}/,,g" \
${PKGD}${bindir}/h2xs \
${PKGD}${bindir}/h2ph \
${PKGD}${datadir}/perl/${PV}/pod/*.pod \
# Install initial headers into the cross dir
make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
install_headers
- #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ #ln -sf include ${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${D}${includedir}/bits/atomicity.h
if [ "x$ZIMAGE" = "x" ]; then
ZIMAGE=$BUILDDIR/tmp/deploy/images/zImage-$MACHINE.bin
fi
- CROSSPATH=$BUILDDIR/tmp/cross/arm-poky-linux-gnueabi/bin
+ CROSSPATH=$BUILDDIR/sysroots/$BUILD_SYS/arm-poky-linux-gnueabi/bin
fi
function findimage {
findimage $T qemux86 ext3 "moblin-image-sdk moblin-image-netbook poky-image-sdk poky-image-sato poky-image-minimal"
fi
fi
- CROSSPATH=$BUILDDIR/tmp/cross/i586-poky-linux/bin
+ CROSSPATH=$BUILDDIR/sysroots/$BUILD_SYS/i586-poky-linux/bin
fi
if [ ! -e $CROSSPATH/cc ]; then