On Thu, 2008-01-24 at 12:40 -0500, Joey Hess wrote: > (You forgot to CC the bug report. Please learn how to use the BTS > correctly.)
The text I re-sent to you was already included in the bug report so there was no point CC'ing the bug report. Please do not infer a general lack of ability from a single instance of human error. > Neil Williams wrote: > > What is the problem? The description or the contents? > > Run objdump on the contents and see for yourself. (See also #461339.) Is it possible that this is actually a bug in objdump ? $ objdump -e /usr/lib/debug/usr/lib/libglib-2.0.so.0.1400.5 objdump: /usr/lib/debug/usr/lib/libglib-2.0.so.0.1400.5: no recognized debugging information $ objdump -e /usr/lib/debug/usr/lib/libqof.so.1.0.9 objdump: /usr/lib/debug/usr/lib/libqof.so.1.0.9: no recognized debugging information $ objdump -e /usr/lib/debug/usr/lib/libgdk-x11-2.0.so.0.1200.5 objdump: /usr/lib/debug/usr/lib/libgdk-x11-2.0.so.0.1200.5: no recognized debugging information Something is definitely wrong with those results, so I moved on to seeing the differences between /usr/lib and /usr/lib/debug/ : [EMAIL PROTECTED]:qof$ objdump -s /usr/lib/libqof.so.1.0.9 > ~/stripped [EMAIL PROTECTED]:qof$ objdump -s /usr/lib/debug/usr/lib/libqof.so.1.0.9 > ~/unstripped [EMAIL PROTECTED]:qof$ ls -l ~/stripped -rw-r--r-- 1 neil neil 1145734 2008-01-24 19:42 /home/neil/stripped [EMAIL PROTECTED]:qof$ ls -l ~/unstripped -rw-r--r-- 1 neil neil 3651617 2008-01-24 19:42 /home/neil/unstripped [EMAIL PROTECTED]:qof$ diff -u /home/neil/stripped /home/neil/unstripped > ~/dbgdiff [EMAIL PROTECTED]:qof$ ls -l ~/dbgdiff -rw-r--r-- 1 neil neil 2548037 2008-01-24 19:43 /home/neil/dbgdiff [EMAIL PROTECTED]:qof$ grep section /home/neil/dbgdiff Contents of section .hash: -Contents of section .gnu_debuglink: +Contents of section .comment: +Contents of section .debug_aranges: +Contents of section .debug_pubnames: +Contents of section .debug_info: +Contents of section .debug_abbrev: +Contents of section .debug_line: +Contents of section .debug_frame: +Contents of section .debug_str: Clearly, debug sections exist in the files installed by the -dbg package. I am and have always been able to debug my QOF programs in gdb (and other debuggers) using libqof1-dbg, with full backtraces and stepping into the functions called within libqof1 from applications like pilot-qof and gpe-expenses. gpe-expenses also uses GTK and I have had no problems with full backtraces or stepping into those libraries as well. i.e. libqof1-dbg fulfils the purpose for which it is designed and described in debian/control : it provides the debugging symbols for libqof1. The fact that objdump gives a different result would appear, to me, to be a bug in binutils-multiarch (which is what I have installed) and also binutils itself. Try this command: $ ls /usr/lib/debug/usr/lib/*.so.*.* | xargs objdump -e objdump: /usr/lib/debug/usr/lib/libeventdb.so.2.0.0: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgdk-directfb-2.0.so.0.1200.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgdk_pixbuf-2.0.so.0.1200.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgdk_pixbuf_xlib-2.0.so.0.1200.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgdk-x11-2.0.so.0.1200.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libglib-2.0.so.0.1400.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgmodule-2.0.so.0.1400.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgobject-2.0.so.0.1400.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgpeschedule.so.0.0.0: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgpevtype.so.1.0.0: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgpewidget.so.1.0.0: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgthread-2.0.so.0.1400.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgtk-directfb-2.0.so.0.1200.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgtkextra-x11-2.0.so.1.0.0: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libgtk-x11-2.0.so.0.1200.5: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libqof-backend-qsf.so.0.0.7: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libqof-backend-sqlite.so.0.0.2: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libqofcashobjects.so.0.0.0: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libqofexpensesobjects.so.0.0.1: no recognized debugging information objdump: /usr/lib/debug/usr/lib/libqof.so.1.0.9: no recognized debugging information Now the output from using the original binutils version (I have binutils-multiarch installed for cross building purposes): $ ls /usr/lib/debug/usr/lib/*.so.*.* | xargs objdump.single -e objdump.single: /usr/lib/debug/usr/lib/libeventdb.so.2.0.0: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgdk-directfb-2.0.so.0.1200.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgdk_pixbuf-2.0.so.0.1200.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgdk_pixbuf_xlib-2.0.so.0.1200.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgdk-x11-2.0.so.0.1200.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libglib-2.0.so.0.1400.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgmodule-2.0.so.0.1400.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgobject-2.0.so.0.1400.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgpeschedule.so.0.0.0: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgpevtype.so.1.0.0: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgpewidget.so.1.0.0: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgthread-2.0.so.0.1400.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgtk-directfb-2.0.so.0.1200.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgtkextra-x11-2.0.so.1.0.0: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libgtk-x11-2.0.so.0.1200.5: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libqof-backend-qsf.so.0.0.7: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libqof-backend-sqlite.so.0.0.2: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libqofcashobjects.so.0.0.0: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libqofexpensesobjects.so.0.0.1: no recognized debugging information objdump.single: /usr/lib/debug/usr/lib/libqof.so.1.0.9: no recognized debugging information And the output from 'file' (on this amd64 box) $ ls /usr/lib/debug/usr/lib/*.so.*.* | xargs file /usr/lib/debug/usr/lib/libeventdb.so.2.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgdk-directfb-2.0.so.0.1200.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgdk_pixbuf-2.0.so.0.1200.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgdk_pixbuf_xlib-2.0.so.0.1200.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgdk-x11-2.0.so.0.1200.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libglib-2.0.so.0.1400.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgmodule-2.0.so.0.1400.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgobject-2.0.so.0.1400.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgpeschedule.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgpevtype.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgpewidget.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgthread-2.0.so.0.1400.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgtk-directfb-2.0.so.0.1200.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgtkextra-x11-2.0.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libgtk-x11-2.0.so.0.1200.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libqof-backend-qsf.so.0.0.7: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libqof-backend-sqlite.so.0.0.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libqofcashobjects.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libqofexpensesobjects.so.0.0.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped /usr/lib/debug/usr/lib/libqof.so.1.0.9: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped This seems to indicate that something is very wrong with objdump -e - it failed to find ANY debug info in ANY -dbg packages installed on this system yet debugging works perfectly. I find it hard to believe that this has gone unreported in GTK, GLib and others. (Yes, I know a lot of the others are my own packages but then, what else would anyone expect? I am constantly debugging my own upstream code during development.) Feel free to re-assign this bug to binutils but AFAICT, this is not a bug in libqof1-dbg. > I also don't support packages that use cdbs at all -- if you used > debhelper, I would at least be able to look at and reason about your > rules file. It's not at all clear to me how dh_strip is called by your > package. A simple scan of the build log will indicate: dh_strip -plibqof1 --dbg-package=libqof1-dbg dh_compress -plibqof1 dh_fixperms -plibqof1 dh_makeshlibs -plibqof1 dh_strip -plibqof-dev --dbg-package=libqof1-dbg dh_compress -plibqof-dev dh_fixperms -plibqof-dev dh_makeshlibs -plibqof-dev dh_strip -plibqof-backend-qsf0 --dbg-package=libqof1-dbg dh_compress -plibqof-backend-qsf0 dh_fixperms -plibqof-backend-qsf0 dh_makeshlibs -plibqof-backend-qsf0 dh_strip -plibqof-backend-sqlite0 --dbg-package=libqof1-dbg CDBS actually calls: dh_strip -p$(cdbs_curpkg) --debug-package=$(cdbs_dbgpkg) /usr/share/cdbs/1/rules/debhelper.mk Contrary to popular misconception, CDBS does not "hide" debhelper, the build log contains very little *but* debhelper commands. CDBS just simplifies debian/rules and although you personally dislike it, I personally find it superb and I would not use anything else. That does not make me a "bad DD" or my packages of "inferior quality" - I would like to hear about bugs in my packages that can be solely attributed to CDBS. I do not think that this is one of those. I cannot see how you can reconcile not supporting CDBS when CDBS does nothing but call debhelper directly, albeit through a wrapper. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
signature.asc
Description: This is a digitally signed message part

