mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 15:32:12 +02:00
Attempting to install ptest for valgrind fails with this error: error: Can't install valgrind-ptest-3.11.0-r0.1@ppce500mc: no package provides /this/is/a/bogus/interpreter/name This is because one of the tests contains a bogus interpreter path on purpose It is not enough to skip the QA warning about the missing dependency but the dependency have to be completely removed. Since this package contains oly tests it is safe to disable per file dependencies and rely on the ones per package. (From OE-Core rev: 916650b91656fac4effde6d260006ba15f8ba23a) Signed-off-by: Tudor Florea <tudor.florea@enea.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
119 lines
4.3 KiB
BlitzBasic
119 lines
4.3 KiB
BlitzBasic
SUMMARY = "Valgrind memory debugger and instrumentation framework"
|
|
HOMEPAGE = "http://valgrind.org/"
|
|
BUGTRACKER = "http://valgrind.org/support/bug_reports.html"
|
|
LICENSE = "GPLv2 & GPLv2+ & BSD"
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
|
file://include/pub_tool_basics.h;beginline=1;endline=29;md5=ebb8e640ef633f940c425686c873f9fa \
|
|
file://include/valgrind.h;beginline=1;endline=56;md5=4b5e24908e53016ea561c45f4234a327 \
|
|
file://COPYING.DOCS;md5=24ea4c7092233849b4394699333b5c56"
|
|
|
|
X11DEPENDS = "virtual/libx11"
|
|
DEPENDS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
|
|
${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} \
|
|
"
|
|
|
|
SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
|
|
file://fixed-perl-path.patch \
|
|
file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
|
|
file://run-ptest \
|
|
file://11_mips-link-tool.patch \
|
|
file://0002-remove-rpath.patch \
|
|
file://0004-Fix-out-of-tree-builds.patch \
|
|
file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \
|
|
file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
|
|
file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \
|
|
file://avoid-neon-for-targets-which-don-t-support-it.patch \
|
|
"
|
|
SRC_URI_append_libc-musl = "\
|
|
file://0001-fix-build-for-musl-targets.patch \
|
|
"
|
|
SRC_URI[md5sum] = "4ea62074da73ae82e0162d6550d3f129"
|
|
SRC_URI[sha256sum] = "6c396271a8c1ddd5a6fb9abe714ea1e8a86fce85b30ab26b4266aeb4c2413b42"
|
|
|
|
COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'
|
|
|
|
# valgrind supports armv7 and above
|
|
COMPATIBLE_HOST_armv4 = 'null'
|
|
COMPATIBLE_HOST_armv5 = 'null'
|
|
COMPATIBLE_HOST_armv6 = 'null'
|
|
|
|
inherit autotools ptest
|
|
|
|
EXTRA_OECONF = "--enable-tls --without-mpicc"
|
|
EXTRA_OECONF += "${@['--enable-only32bit','--enable-only64bit'][d.getVar('SITEINFO_BITS', True) != '32']}"
|
|
|
|
# valgrind checks host_cpu "armv7*)", so we need to over-ride the autotools.bbclass default --host option
|
|
EXTRA_OECONF_append_arm = " --host=armv7${HOST_VENDOR}-${HOST_OS}"
|
|
|
|
EXTRA_OEMAKE = "-w"
|
|
|
|
# valgrind likes to control its own optimisation flags. It generally defaults
|
|
# to -O2 but uses -O0 for some specific test apps etc. Passing our own flags
|
|
# (via CFLAGS) means we interfere with that. Only pass DEBUG_FLAGS to it
|
|
# which fixes build path issue in DWARF.
|
|
SELECTED_OPTIMIZATION = "${DEBUG_FLAGS}"
|
|
|
|
CFLAGS_append_libc-uclibc = " -D__UCLIBC__ "
|
|
|
|
do_install_append () {
|
|
install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/
|
|
}
|
|
|
|
RDEPENDS_${PN} += "perl"
|
|
|
|
# valgrind needs debug information for ld.so at runtime in order to
|
|
# redirect functions like strlen.
|
|
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
|
|
|
|
RDEPENDS_${PN}-ptest += " sed perl perl-module-file-glob"
|
|
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
|
|
|
|
# One of the tests contains a bogus interpreter path on purpose.
|
|
# Skip file dependency check
|
|
SKIP_FILEDEPS_${PN}-ptest = '1'
|
|
|
|
do_compile_ptest() {
|
|
oe_runmake check
|
|
}
|
|
|
|
do_install_ptest() {
|
|
chmod +x ${B}/tests/vg_regtest
|
|
|
|
# The test application binaries are not automatically installed.
|
|
# Grab them from the build directory.
|
|
#
|
|
# The regression tests require scripts and data files that are not
|
|
# copied to the build directory. They must be copied from the
|
|
# source directory.
|
|
saved_dir=$PWD
|
|
for parent_dir in ${S} ${B} ; do
|
|
cd $parent_dir
|
|
|
|
# exclude shell or the package won't install
|
|
rm -rf none/tests/shell* 2>/dev/null
|
|
|
|
subdirs="tests cachegrind/tests callgrind/tests drd/tests helgrind/tests massif/tests memcheck/tests none/tests"
|
|
|
|
# Get the vg test scripts, filters, and expected files
|
|
for dir in $subdirs ; do
|
|
find $dir | cpio -pvdu ${D}${PTEST_PATH}
|
|
done
|
|
cd $saved_dir
|
|
done
|
|
|
|
# clean out build artifacts before building the rpm
|
|
find ${D}${PTEST_PATH} \
|
|
\( -name "Makefile*" \
|
|
-o -name "*.o" \
|
|
-o -name "*.c" \
|
|
-o -name "*.S" \
|
|
-o -name "*.h" \) \
|
|
-exec rm {} \;
|
|
|
|
# needed by massif tests
|
|
cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
|
|
|
|
# handle multilib
|
|
sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
|
|
}
|