Description of problem: While building packages I get the %{summary} message. Version-Release number of selected component (if applicable): FC6 (updated). rpm-build-4.4.2-32.x86_64 gcc-4.1.1-51.fc6.x86_64 cpio-2.6-21.fc6.x86_64 How reproducible: Always. Steps to Reproduce: 1. Build a package using `va_list', such as `bind' or `gdb'. Provided a testcase package here but it may be misleading as it is very minimal one, still the same problem occurs there. 2. rpmbuild --rebuild /tmp/built-in-1.0-0.src.rpm Actual results: extracting debug info from /var/tmp/built-in-root/built-in cpio: built-in-1.0/<built-in>: No such file or directory 1 block + exit 0 Expected results: extracting debug info from /var/tmp/built-in-root/built-in 1 block + exit 0 Additional info: It is a bug in `/usr/lib/rpm/debugedit' which should not list `<built-in>' files (listed by GCC at least for the `va_list' symbol). It is mostly harmless, though.
Created attachment 151951 [details] rpmbuild --rebuild built-in-1.0-0.src.rpm
This problem appears to be fixed in rpm-4.4.9: + cp -p built-in /var/tmp/built-in-root/ + /usr/lib/rpm/find-debuginfo.sh /usr/src/rpm/BUILD/ extracting debug info from /var/tmp/built-in-root/built-in 1 block + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip # rpm -q rpm-build gcc cpio rpm-build-4.4.9-0.3.i386.rpm gcc-4.1.2-7.i386.rpm cpio-2.6-27.fc7.i386.rpm I'll be happy to try any other reproducers you have if the problem is still present. UPSTREAM
For proper check (if your GCC builds it the same way etc.) please verify that: readelf -a --debug-dump built-in-debuginfo-1.0-0.x86_64/usr/lib/debug/built-in.debug|grep -5 built-in prints the content with '<built-in>': The File Name Table: Entry Dir Time Size Name 1 0 0 0 built-in.c 2 1 0 0 stdarg.h 3 0 0 0 <built-in> Anyway still the Bug should be open as the latest Red Hat rawhide RPM is 4.4.2.
Hmmm, very different results. What am I missing? Likely FC CFLAGS are different ... $ rpm2cpio ../built-in-debug-1.0-0.i386.rpm | cpio -dim 15 blocks $ readelf -a --debug-dump ./usr/lib/debug/built-in.debug|grep -5 built-in ... The File Name Table: Entry Dir Time Size Name 1 0 0 0 built-in.c 2 1 0 0 stdarg.h ...
Here is my build: ... Executing(%build): /bin/sh -e /X/tmp/rpm-tmp.4476 + umask 022 + cd /X/built-in + rm -rf built-in-1.0 + mkdir built-in-1.0 + cd built-in-1.0 + rm -f built-in.c + echo '#include <stdarg.h>' + echo 'va_list ap;' + echo 'int main (void) { return 0; }' + gcc -o built-in built-in.c -O2 -g -m32 -march=i386 -mtune=generic -fasynchronous-unwind- tables -ggdb3 + exit 0 Executing(%install): /bin/sh -e /X/tmp/rpm-tmp.4476 + umask 022 + cd /X/built-in + /bin/rm -rf /X/tmp/built-in-root + /bin/rm -rf /X/tmp/built-in-root + cd built-in-1.0 + mkdir /X/tmp/built-in-root + cp -p built-in /X/tmp/built-in-root/ + /usr/lib/rpm/find-debuginfo.sh /X/built-in/ extracting debug info from /X/tmp/built-in-root/built-in Only dest dir longer than base dir not supported 0 blocks + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-static-archive + /usr/lib/rpm/brp-strip-comment-note + /usr/lib/rpm/brp-nobuildrootpath
Ah yes, there is the problem, the silly rewrite of file names without reallocating a larger elf section: Only dest dir longer than base dir not supported Hang on ...
Not *the* problem, just one of many problems with -debuginfo Here's the results when built on a longer path so that debugedit can change file names without reallocating the elf section: The File Name Table: Entry Dir Time Size Name 1 0 0 0 built-in.c 2 1 0 0 stdarg.h What CFLAGS do I miss: + gcc -o built-in built-in.c -O2 -g -m32 -march=i386 -mtune=generic -fasynchronous-unwind- tables -ggdb3
Created attachment 152269 [details] rpm -qa Is it easy enough for you to reproduce it on x86_64? The build looks different depending on whether `redhat-rpm-config' is installed, still in both cases it produced the same error. The log below is on a system without `redhat-rpm-config'. This log is from FC6 but the bug is apparently present even in Fedora Rawhide as the warnings are produces even in the build system (mock/brew). What distro do you run on? It may be really GCC dependent, this `<built-in>' name may be a subject for discussion whether it is not a GCC bug at all. $ rpmbuild --rebuild /tmp/built-in-1.0-0.src.rpm Installing /tmp/built-in-1.0-0.src.rpm Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.25573 + umask 022 + cd /home/jkratoch/src/rpm/BUILD + rm -rf built-in-1.0 + mkdir built-in-1.0 + cd built-in-1.0 + rm -f built-in.c + echo '#include <stdarg.h>' + echo 'va_list ap;' + echo 'int main (void) { return 0; }' + gcc -o built-in built-in.c -O2 -g -ggdb3 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.73432 + umask 022 + cd /home/jkratoch/src/rpm/BUILD + cd built-in-1.0 + mkdir /var/tmp/built-in-root + cp -p built-in /var/tmp/built-in-root/ + /usr/lib/rpm/find-debuginfo.sh /home/jkratoch/src/rpm/BUILD/ extracting debug info from /var/tmp/built-in-root/built-in cpio: built-in-1.0/<built-in>: No such file or directory 1 block + exit 0 Processing files: built-in-1.0-0 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) rtld(GNU_HASH) Processing files: built-in-debug-1.0-0 Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/built-in-root Wrote: /home/jkratoch/src/rpm/RPMS/x86_64/built-in-1.0-0.x86_64.rpm Wrote: /home/jkratoch/src/rpm/RPMS/x86_64/built-in-debug-1.0-0.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.73432 + umask 022 + cd /home/jkratoch/src/rpm/BUILD + rm -rf /var/tmp/built-in-root + exit 0 Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.73432 + umask 022 + cd /home/jkratoch/src/rpm/BUILD + exit 0
You're in luck, I just got access to CentOS5/x86_64. I'll try to reproduce this weekend. Thanks for the help.
Adding a comment so I can find this bug in spite of Bugzilla normal -> medium changes.
Seems to have been fixed by Roland McGrath's new fancy find-debuginfo.sh, will be in next rawhide push.