generic-poky/meta/recipes-devtools/gcc/gcc-cross.inc
Richard Purdie 5ce6418c13 gcc-cross: Explicitly depend on linux-libc-headers
gcc-cross cannot build without linux-libc-headers but doesn't explicitly depend on
it relying on the implied dependency through libc. With cases where pieces
can be installed through sstate, we now need this explicit dependency to
ensure builds with partial sstate work.

(From OE-Core rev: 65e5670ef429bb6c348decb1804e425f1c4d7c61)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-24 15:12:28 +00:00

109 lines
3.9 KiB
PHP

inherit cross
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc ${EXTRADEPENDS} ${NATIVEDEPS}"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
require gcc-configure-cross.inc
require gcc-package-cross.inc
EXTRADEPENDS = ""
python () {
if d.getVar("TARGET_OS", True).startswith("linux"):
d.setVar("EXTRADEPENDS", "linux-libc-headers")
}
do_compile () {
oe_runmake all-host all-target-libgcc
# now generate script to drive testing
echo "#!/usr/bin/env sh" >${B}/${TARGET_PREFIX}testgcc
set >> ${B}/${TARGET_PREFIX}testgcc
# prune out the unneeded vars
sed -i -e "/^BASH/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^USER/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^OPT/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^DIRSTACK/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^EUID/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^FUNCNAME/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^GROUPS/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^HOST/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^HOME/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^IFS/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^LC_ALL/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^LOGNAME/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^MACHTYPE/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^OSTYPE/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^PIPE/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^SHELL/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^'/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^UID/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^TERM/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^PATCH_GET/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^PKG_/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^POSIXLY_/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^PPID/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^PS4/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^Q/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^SHLVL/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^STAGING/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^LD_LIBRARY_PATH/d" ${B}/${TARGET_PREFIX}testgcc
sed -i -e "/^PSEUDO/d" ${B}/${TARGET_PREFIX}testgcc
# append execution part of the script
cat >> ${B}/${TARGET_PREFIX}testgcc << STOP
target="\$1"
usage () {
echo "Usage:"
echo "\$0 user@target 'extra options to dejagnu'"
echo "\$0 target 'extra options to dejagnu'"
echo "\$0 target"
echo "e.g. \$0 192.168.7.2 ' dg.exp=visibility-d.c'"
echo "will only run visibility-d.c test case"
echo "e.g. \$0 192.168.7.2 '/-mthumb dg.exp=visibility-d.c'"
echo "will only run visibility-d.c test case in thumb mode"
echo "You need to have dejagnu autogen expect installed"
echo "on the build host"
}
if [ "x\$target" = "x" ]
then
echo "Please specify the target machine and remote user in form of user@target\n"
usage
exit 1;
fi
shift
echo "\$target" | grep "@" 2>&1 > /dev/null
if [ "x\$?" = "x0" ]
then
user=\$(echo \$target | cut -d '@' -f 1)
target=\$(echo \$target | cut -d '@' -f 2)
else
user=\$USER
fi
ssh \$user@\$target date 2>&1 > /dev/null
if [ "x\$?" != "x0" ]
then
echo "Failed connecting to \$user@\$target it could be because"
echo "you don't have passwordless ssh setup to access \$target"
echo "or sometimes host key has been changed"
echo "in such case do something like below on build host"
echo "ssh-keygen -f "~/.ssh/known_hosts" -R \$target"
echo "and then try ssh \$user@\$target"
usage
exit 1
fi
echo "lappend boards_dir [pwd]/../../.." > ${B}/site.exp
echo "load_generic_config \"unix\"" > ${B}/${PACKAGE_ARCH}.exp
echo "set_board_info username \$user" >> ${B}/${PACKAGE_ARCH}.exp
echo "set_board_info rsh_prog ssh" >> ${B}/${PACKAGE_ARCH}.exp
echo "set_board_info rcp_prog scp" >> ${B}/${PACKAGE_ARCH}.exp
echo "set_board_info hostname \$target" >> ${B}/${PACKAGE_ARCH}.exp
DEJAGNU=${B}/site.exp make -k check RUNTESTFLAGS="--target_board=${PACKAGE_ARCH}\$@"
STOP
chmod +x ${B}/${TARGET_PREFIX}testgcc
}