brp-debuginfo: fix handling of packages containing ELF relocatable objects

Do not try to process ELF relocatable objects that are not kernel
modules, this fixes the following regression:

/usr/lib/rpm/debugedit: ./usr/lib64/gcc/x86_64-alt-linux/9/crtfastmath.o: DWARF version 0 unhandled
objdump: ./usr/lib64/gcc/x86_64-alt-linux/9/crtfastmath.o: bad value
verify-elf: ERROR: ./usr/lib64/gcc/x86_64-alt-linux/9/crtfastmath.o: objdump failed

Fixes: 7aa048df38 ("Generate debuginfo for kernel packages")
This commit is contained in:
Дмитрий Левин 2020-07-08 08:00:00 +00:00
parent 6eb60d94cf
commit d71728c2c8

View File

@ -27,9 +27,10 @@ prune_tests="$(printf %s "$prune_paths" |
find . '(' -path './.*' $prune_tests ')' -prune -o -type f -print |sort |
file -NF$'\t' -f - |
sed -n -e '/ ELF .* shared object, no machine, /d' \
-e 's/\t.* ELF .* \(executable\|shared object\|relocatable\), .*, not stripped.*//p' \
-e 's/^\(\.\/lib\/modules\/.*\.ko\.[gx]z\)\t.* \(gzip\|xz\) compressed data.*/\1/p' \
-e 's/^\(\.\/boot\/vmlinuz-.*\)\t.*/\1/p' |
-e 's/\t.* ELF .* \(executable\|shared object\), .*, not stripped.*//p' \
-e 's/^\(\.\/lib\/modules\/[^[:space:]]\+\.o\)\t.* ELF .* relocatable, .*, not stripped.*/\1/p' \
-e 's/^\(\.\/lib\/modules\/[^[:space:]]\+\.ko\.[gx]z\)\t.* \(gzip\|xz\) compressed data.*/\1/p' \
-e 's/^\(\.\/boot\/vmlinuz-[^[:space:]]\+\)\t.*/\1/p' |
xargs -r --delimiter='\n' stat -c '%h %i %n' >.tmp/flist
# Filter out what will be hard-linked later and process the rest.