[oe-commits] [openembedded-core] 06/06: elfutils: fix ptest failures

git at git.openembedded.org git at git.openembedded.org
Fri May 31 21:24:32 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master
in repository openembedded-core.

commit 174690b1745eadc6981d83b7c6869712e835b5d0
Author: Mingli Yu <Mingli.Yu at windriver.com>
AuthorDate: Fri May 31 17:44:32 2019 +0800

    elfutils: fix ptest failures
    
    * Add missing files which needed by ptest test
      to fix the ptest failures such as:
      | sh: ../src/elflint: No such file or directory
      | FAIL: asm-tst4
    
    * Rework 0001-skip-the-test-when-gcc-not-deployed.patch
      to skip the tests which depend on gcc
    
    * Define INHIBIT_PACKAGE_STRIP_FILES for elfutils to
      avoid stripping some generated binaries otherwise
      some of the tests such as test-nlist, run-strip-reloc.sh,
      run-strip-strmerge.sh and so on will fail
    
    * Set EXCLUDE_PACKAGES_FROM_SHLIBS = "${PN}-ptest"
      to avoid ${PN}-ptest be the shlibs provider to
      fix below error:
      Problem 1: package rpm-1:4.14.2.1-r0.core2_32 requires elfutils-ptest >= 0.176, but none of the providers can be installed
      - conflicting requests
      - nothing provides elfutils-binutils needed by elfutils-ptest-0.176-r0.core2_32
      Problem 2: package dnf-4.2.2-r0.core2_32 requires python3-rpm, but none of the providers can be installed
      - package python3-rpm-1:4.14.2.1-r0.core2_32 requires elfutils-ptest >= 0.176, but none of the providers can be installed
      - conflicting requests
      - nothing provides elfutils-binutils needed by elfutils-ptest-0.176-r0.core2_32
      Problem 3: package ltp-20190115-r0.core2_32 requires iproute2, but none of the providers can be installed
      - package packagegroup-core-tools-testapps-1.0-r2.qemux86 requires ltp, but none of the providers can be installed
      - package iproute2-5.1.0-r0.core2_32 requires elfutils-ptest >= 0.176, but none of the providers can be installed
      - conflicting requests
      - nothing provides elfutils-binutils needed by elfutils-ptest-0.176-r0.core2_32
    
    Before:
    --------------------------------------------
    Recipe   | Passed    | Failed   | Skipped
    --------------------------------------------
    elfutils | 176       | 23       | 4
    --------------------------------------------
    
    After:
    --------------------------------------------
    Recipe   | Passed    | Failed   | Skipped
    --------------------------------------------
    elfutils | 199       | 0       | 4
    --------------------------------------------
    
    Signed-off-by: Mingli Yu <Mingli.Yu at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/recipes-devtools/elfutils/elfutils_0.176.bb   | 35 ++++++++++++++++++++
 .../0001-skip-the-test-when-gcc-not-deployed.patch | 38 +++++++++++++++++++---
 2 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-devtools/elfutils/elfutils_0.176.bb b/meta/recipes-devtools/elfutils/elfutils_0.176.bb
index 157551e..1a5c70b 100644
--- a/meta/recipes-devtools/elfutils/elfutils_0.176.bb
+++ b/meta/recipes-devtools/elfutils/elfutils_0.176.bb
@@ -61,6 +61,18 @@ do_compile_ptest() {
 
 do_install_ptest() {
 	if [ ${PTEST_ENABLED} = "1" ]; then
+		# copy the files which needed by the cases
+		TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint"
+		install -d -m 755                       ${D}${PTEST_PATH}/src
+		install -d -m 755                       ${D}${PTEST_PATH}/libelf
+		install -d -m 755                       ${D}${PTEST_PATH}/libdw
+		for test_file in ${TEST_FILES}; do
+			if [ -f ${B}/src/${test_file} ]; then
+				cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src
+			fi
+		done
+		cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so
+		cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so
 		cp -r ${S}/tests/                       ${D}${PTEST_PATH}
 		cp -r ${B}/tests/*                      ${D}${PTEST_PATH}/tests
 		cp -r ${B}/config.h                     ${D}${PTEST_PATH}
@@ -109,3 +121,26 @@ FILES_libdw  = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils
 
 # The package contains symlinks that trip up insane
 INSANE_SKIP_${MLPREFIX}libdw = "dev-so"
+
+# avoid stripping some generated binaries otherwise some of the tests such as test-nlist,
+# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
+INHIBIT_PACKAGE_STRIP_FILES = "\
+    ${PKGD}${PTEST_PATH}/tests/test-nlist \
+    ${PKGD}${PTEST_PATH}/tests/elfstrmerge \
+    ${PKGD}${PTEST_PATH}/tests/backtrace-child \
+    ${PKGD}${PTEST_PATH}/tests/backtrace-data \
+    ${PKGD}${PTEST_PATH}/tests/deleted \
+    ${PKGD}${PTEST_PATH}/src/strip \
+    ${PKGD}${PTEST_PATH}/src/addr2line \
+    ${PKGD}${PTEST_PATH}/src/elfcmp \
+    ${PKGD}${PTEST_PATH}/src/objdump \
+    ${PKGD}${PTEST_PATH}/src/readelf \
+    ${PKGD}${PTEST_PATH}/src/nm \
+    ${PKGD}${PTEST_PATH}/src/elflint \
+    ${PKGD}${PTEST_PATH}/libelf/libelf.so \
+    ${PKGD}${PTEST_PATH}/libdw/libdw.so \
+    ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \
+    ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \
+"
+
+EXCLUDE_PACKAGES_FROM_SHLIBS = "${PN}-ptest"
diff --git a/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch b/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
index 67ca0e4..de8c05f 100644
--- a/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
+++ b/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
@@ -1,19 +1,47 @@
-From 61939d2e552e7645ecd671fa01cf1c7a72caa82a Mon Sep 17 00:00:00 2001
+From e82a055f85e398cb03a4eaf5faf351a3a1f19344 Mon Sep 17 00:00:00 2001
 From: Mingli Yu <Mingli.Yu at windriver.com>
-Date: Fri, 12 Apr 2019 16:29:58 +0800
-Subject: [PATCH] skip the test when gcc not deployed
+Date: Tue, 21 May 2019 15:20:34 +0800
+Subject: [PATCH v2] skip the test when gcc not deployed
 
 Skip the tests which depend on gcc when
 gcc not deployed.
 
-Upstream-Status: Inappropriate [oe specific]
+Upstream-Status: Submitted[https://sourceware.org/ml/elfutils-devel/2019-q2/msg00091.html]
 
 Signed-off-by: Mingli Yu <Mingli.Yu at windriver.com>
 ---
+ tests/run-disasm-x86-64.sh | 2 ++
+ tests/run-disasm-x86.sh    | 2 ++
  tests/run-strip-g.sh       | 2 ++
  tests/run-strip-nothing.sh | 2 ++
- 2 files changed, 4 insertions(+)
+ 4 files changed, 8 insertions(+)
 
+diff --git a/tests/run-disasm-x86-64.sh b/tests/run-disasm-x86-64.sh
+index a6be62b..c3ef238 100755
+--- a/tests/run-disasm-x86-64.sh
++++ b/tests/run-disasm-x86-64.sh
+@@ -22,6 +22,8 @@ case "`uname -m`" in
+   x86_64)
+     tempfiles testfile45.o
+     testfiles testfile45.S testfile45.expect
++    # skip the case if no gcc deployed
++    which gcc || exit 77
+     gcc -m64 -c -o testfile45.o testfile45.S
+     testrun_compare ${abs_top_builddir}/src/objdump -d testfile45.o < testfile45.expect
+     ;;
+diff --git a/tests/run-disasm-x86.sh b/tests/run-disasm-x86.sh
+index 28a3df7..544fc28 100755
+--- a/tests/run-disasm-x86.sh
++++ b/tests/run-disasm-x86.sh
+@@ -22,6 +22,8 @@ case "`uname -m`" in
+   x86_64 | i?86 )
+     tempfiles testfile44.o
+     testfiles testfile44.S testfile44.expect
++    # skip the case if no gcc deployed
++    which gcc || exit 77
+     gcc -m32 -c -o testfile44.o testfile44.S
+     testrun_compare ${abs_top_builddir}/src/objdump -d testfile44.o < testfile44.expect
+     ;;
 diff --git a/tests/run-strip-g.sh b/tests/run-strip-g.sh
 index 1303819..a943dec 100755
 --- a/tests/run-strip-g.sh

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list