[syslog-ng] [Bug 198] New: debug-info fails to extract info from libsyslog-ng-crypto.so
bugzilla at bugzilla.balabit.com
bugzilla at bugzilla.balabit.com
Tue Sep 25 22:08:23 CEST 2012
https://bugzilla.balabit.com/show_bug.cgi?id=198
Summary: debug-info fails to extract info from libsyslog-ng-
crypto.so
Product: syslog-ng
Version: 3.3.x
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: unspecified
Component: packaging
AssignedTo: folti at balabit.hu
ReportedBy: svensken at jla.rutgers.edu
Type of the Report: bug
Estimated Hours: 0.0
The syslog-ng package fails to build on Centos6 using mock with version 3.3.6 source code and a syslog-ng-3.2.5-3.el6 spec file.
The problem seems to involve the debug info package, provided by rpm-4.8.0-27.el6.x86_64 and rpm-build-4.8.0-27.el6.x86_64
Seemingly, debug info cannot be extracted from libsyslog-ng-crypto.so, whether the .so or the 'debugedit' binary is doing something incorrectly.
Here's the relevant part of the build log:
---------
...
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /builddir/build/BUILD/syslog-ng-3.3.6
extracting debug info from /builddir/build/BUILDROOT/syslog-ng-3.3.6-2.ru6.x86_64/usr/bin/pdbtool
extracting debug info from /builddir/build/BUILDROOT/syslog-ng-3.3.6-2.ru6.x86_64/usr/bin/loggen
extracting debug info from /builddir/build/BUILDROOT/syslog-ng-3.3.6-2.ru6.x86_64/lib64/libsyslog-ng-3.3.6.so
extracting debug info from /builddir/build/BUILDROOT/syslog-ng-3.3.6-2.ru6.x86_64/lib64/syslog-ng/libcsvparser.so
extracting debug info from /builddir/build/BUILDROOT/syslog-ng-3.3.6-2.ru6.x86_64/lib64/syslog-ng/libdbparser.so
extracting debug info from /builddir/build/BUILDROOT/syslog-ng-3.3.6-2.ru6.x86_64/lib64/syslog-ng/libsyslog-ng-crypto.so
error: Bad exit status from /var/tmp/rpm-tmp.BZBLBe (%install)
Bad exit status from /var/tmp/rpm-tmp.BZBLBe (%install)
RPM build errors:
Child returncode was: 1
...
---------
Throwing "%define debug_package %{nil}" into the spec will make the rpm build without errors.
So it looks like the script "/usr/lib/rpm/find-debuginfo.sh" is failing to
'extract debug info' from "libsyslog-ng-crypto.so"
The lack of an error message is no surprise; here's the function (inside
find-debuginfo.sh) that's actually doing the debug info extraction:
---------
202 echo "extracting debug info from $f"
203 id=$(/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug \
204 -i -l "$SOURCEFILE" "$f") || exit
205 if [ -z "$id" ]; then
206 echo >&2 "*** ${strict_error}: No build ID note found in $f"
207 $strict && exit 2
208 fi
---------
I tried modifying it, and found that the "exit" function is never even reached, since (as it turns out) /usr/lib/rpm/debugedit returns "Segmentation fault"
when run on libsyslog-ng-crypto.so...
Running /usr/lib/rpm/debugedit on the libraries that seem to be working (e.g. libcsvparser.so and libdbparser.so) without extra arguments returns no errors,
however.
I've found that the library itself, libsyslog-ng-crypto.so, seems to have a debug info format different from the other libraries' that succeeded in the build.
As I understand it, the following command will display the debug info for a shared library:
`readelf -w /path/to/library.so`
It seems that the libcsvparser.so and libdbparser.so libraries both use an ".eh_frame section" to store their debug info, while libsyslog-ng-crypto.so seems to
put its info into a ".debug_info section" (with hex line numbers of some sort), with an empty ".eh_frame section" section.
I noticed that this crypto library was added fairly recently in the change logs, so perhaps it uses a newish format for its debug-info that is not yet
supported by the debugedit binary, which is owned by rpm-build-4.8.0-27.el6.x86_64
Could there be a problem on my end, or is this an issue with the library itself? Could it be both?
--
Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the syslog-ng
mailing list