Re: ERROR: No build ID note found in <object file>

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rich,

On Thu, 2017-04-13 at 16:59 +0100, Richard W.M. Jones wrote:
> I'm trying to compile native LLVM support into American Fuzzy Lop.
> Unfortunately debuginfo generation fails with:
> 
> + /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /home/rjones/d/fedora/american-fuzzy-lop/master/afl-2.41b
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-tmin
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-analyze
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-gotcpu
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-showmap
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-clang-fast
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-gcc
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/bin/afl-fuzz
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/lib/afl/afl-llvm-pass.so
> extracting debug info from /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/lib/afl/afl-llvm-rt-64.o
> *** ERROR: No build ID note found in /home/rjones/rpmbuild/BUILDROOT/american-fuzzy-lop-2.41b-2.fc27.x86_64/usr/lib/afl/afl-llvm-rt-64.o
> error: Bad exit status from /var/tmp/rpm-tmp.lnlcV6 (%install)
> 
> Notice that the file that fails is a C object file (not a shared
> library), and C object files apparently don't have build IDs.

Right. That is not supposed to happen. ET_REL files (except kernel
modules) should be skipped by the check.

> While it's a bit odd that LLVM is using an object file instead of a
> shared library, I guess it does that for ... reasons.

Right. The first question is should that object file be packaged?
I assume it is shipped so it can be linked directly into a program that
needs to be instrumented? But if it isn't actually needed in the package
then you might just not install it/remove it.

Could you run file afl-llvm-rt-64.o and/or eu-readelf -h
afl-llvm-rt-64.o on it to see if it really is an ET_REL file.

> So is there a way to get find-debuginfo.sh to tolerate these files?
> (A cursory look at find-debuginfo.sh doesn't show anything obvious,
> but I could be missing something).  Or maybe there's another way to
> solve this?

As Omair pointed out the check should be skipped for any non-executable
file. So check

Also if you are using rawhide there was a bug in some versions in
rpmbuild (introduced by me, sorry) that erroneously complained about
(non-executable) object files. That was fixed in:

* Mon Mar 20 2017 Mark Wielaard <mjw@xxxxxxxxxx> - 4.13.0.1-13
- Add tests fix for sed file build-id regexp matching.
- Add fix for build-ids in non-executable ELF files (#1433837).

If all fails could you sent me the spec file or srpm and I'll try a
build locally.

Thanks,

Mark
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux