From 597e7f2fd4441e7041442520eafb55b6909ed5910258e4fd4d8a4bc4443ca5ca Mon Sep 17 00:00:00 2001 From: Olaf Hering Date: Mon, 20 Jun 2022 15:06:40 +0000 Subject: [PATCH] - fix objdump parsing for non-executable sections (#53) OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/build-compare?expand=0&rev=294 --- build-compare.changes | 5 +++++ build-compare.spec | 2 +- pkg-diff.sh | 17 ++++++----------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/build-compare.changes b/build-compare.changes index 396d667..40f0e32 100644 --- a/build-compare.changes +++ b/build-compare.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jun 20 12:34:56 UTC 2022 - olaf@aepfle.de + +- fix objdump parsing for non-executable sections (#53) + ------------------------------------------------------------------- Mon Jun 13 13:13:13 UTC 2022 - olaf@aepfle.de diff --git a/build-compare.spec b/build-compare.spec index 3008db3..92dc7b2 100644 --- a/build-compare.spec +++ b/build-compare.spec @@ -21,7 +21,7 @@ Summary: Build Result Compare Script License: GPL-2.0+ Group: Development/Tools/Building Url: https://github.com/openSUSE/build-compare -Version: 20220613T135442.472ee09 +Version: 20220620T150329.a852498 Release: 0 Source1: COPYING Source2: same-build-result.sh diff --git a/pkg-diff.sh b/pkg-diff.sh index 74f16fe..5b4a765 100644 --- a/pkg-diff.sh +++ b/pkg-diff.sh @@ -833,8 +833,7 @@ check_single_file() local ret=0 local i local failed - local objdump_failed - local elfdiff + local elfdiff elf_executable_sections local sections local -a pipestatus @@ -966,7 +965,6 @@ check_single_file() return 0 fi watchdog_touch - elfdiff= (cd old && exec $OBJDUMP -d --no-show-raw-insn ./$file | filter_disasm echo "${PIPESTATUS[@]}" > $file1 ) > old/$file.objdump & (cd new && exec $OBJDUMP -d --no-show-raw-insn ./$file | filter_disasm @@ -974,21 +972,19 @@ check_single_file() wait read i < ${file1} pipestatus=( $i ) - objdump_failed="${objdump_failed}${pipestatus[0]}" if [[ ${pipestatus[*]} =~ [1-9] ]] then wprint "ELF disassembly: pipe command failed for old/$file" - elfdiff='failed' + elf_executable_sections='failed' fi read i < ${file2} pipestatus=( $i ) - objdump_failed="${objdump_failed}${pipestatus[0]}" if [[ ${pipestatus[*]} =~ [1-9] ]] then wprint "ELF disassembly: pipe command failed for new/$file" - elfdiff='failed' + elf_executable_sections='failed' fi - if test ${objdump_failed} -gt 0 || test -n "${elfdiff}" + if test -n "${elf_executable_sections}" then # objdump had no idea how to handle it rm old/$file.objdump new/$file.objdump & @@ -997,7 +993,6 @@ check_single_file() fi return 1 fi - elfdiff= diff --speed-large-files --unified \ --label "old $file (disasm)" \ --label "new $file (disasm)" \ @@ -1008,11 +1003,11 @@ check_single_file() then wprint "$file differs in assembler output" $buildcompare_head $dfile - elfdiff='elfdiff' + elf_executable_sections='elf_executable_sections' else watchdog_touch fi - if test -n "$elfdiff" + if test -n "$elfdiff" || test -n "$elf_executable_sections" then return 1 fi