You can see if a file contains only debugging symbols, or also the
actual library object code by using objdump -p. According to Raphael
Hertzog in #461339, a file containing only debugging symbols will have
an empty "Dynamic Section:" in the objdump output.

[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>objdump -p libqof.so.1.0.9
libqof.so.1.0.9:     file format elf32-i386

Program Header:
    LOAD off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x00049380 memsz 0x00049380 flags r-x
    LOAD off    0x00049380 vaddr 0x0004a380 paddr 0x0004a380 align 2**12
         filesz 0x00000c6c memsz 0x000012ec flags rw-
 DYNAMIC off    0x000495cc vaddr 0x0004a5cc paddr 0x0004a5cc align 2**2
         filesz 0x00000100 memsz 0x00000100 flags rw-
EH_FRAME off    0x000492b8 vaddr 0x000492b8 paddr 0x000492b8 align 2**2
         filesz 0x0000002c memsz 0x0000002c flags r--
   STACK off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
         filesz 0x00000000 memsz 0x00000000 flags rw-

Dynamic Section:
  NEEDED      libgmodule-2.0.so.0
  NEEDED      libdl.so.2
  NEEDED      libgobject-2.0.so.0
  NEEDED      libglib-2.0.so.0
  NEEDED      libgdasql-3.0.so.3
  NEEDED      libm.so.6
  NEEDED      libc.so.6
  SONAME      libqof.so.1
  INIT        0xbcb8
  FINI        0x434f4
  HASH        0xd4
  GNU_HASH    0x1640
  STRTAB      0x5fe8
  SYMTAB      0x2ae8
  STRSZ       0x400f
  SYMENT      0x10
  PLTGOT      0x4a714
  PLTRELSZ    0x1080
  PLTREL      0x11
  JMPREL      0xac38
  REL         0xa728
  RELSZ       0x510
  RELENT      0x8
  VERNEED     0xa698
  VERNEEDNUM  0x2
  VERSYM      0x9ff8
  RELCOUNT    0x8e

Sure enough, the file that is supposed to contain debug symbols contains
enough code for gnotime to be able to be linked against it and run:

[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>ldd =gnotime |grep qof
        libqof.so.1 => /usr/lib/libqof.so.1 (0xb7ec4000)
[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>LD_LIBRARY_PATH=. ldd =gnotime |grep 
qof
        libqof.so.1 => ./libqof.so.1 (0xb7eb8000)
[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>LD_LIBRARY_PATH=. gnotime      
GTT: GConf: Warning: get /Toolbar/ShowToolbar failed: Using default value
GTT: GConf: Warning: get /apps/gnotime/Actions/StartCommand failed: Using 
default value
GTT: GConf: Warning: get /apps/gnotime/Actions/StopCommand failed: Using 
default value
GTT: GConf: Warning: get /apps/gnotime/LogFile/Filename failed: Using default 
value
GTT: GConf: Warning: get /apps/gnotime/time_format failed: Using default value
GTT: GConf: Warning: get /apps/gnotime/Report/CurrencySymbol failed: Using 
default value
GTT: GConf: Warning: get /Report/CurrencyUseLocale failed: Using default value
I/O warning : failed to load external entity 
"/home/joey/.gnome2/gnotime.d/gnotime-data.xml"

And sure enough, I can generate a real separeated debug symbol file
from this file, that is much smaller, since it's lacking the redundant
object code that this file incorrectly contains:

[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>objcopy --only-keep-debug 
libqof.so.1.0.9 ~/tmp/foo
[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>ls -l ~/tmp/foo libqof.so.1.0.9
-rw-r--r-- 1 joey joey 578263 Jan 24 16:03 /home/joey/tmp/foo
-rw-r--r-- 1 root root 881135 Dec 19 17:24 libqof.so.1.0.9
[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>objdump -p ~/tmp/foo

/home/joey/tmp/foo:     file format elf32-i386

Program Header:
    LOAD off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x000000d4 memsz 0x00049380 flags r-x
    LOAD off    0x00000380 vaddr 0x0004a380 paddr 0x0004a380 align 2**12
         filesz 0x00000000 memsz 0x000012ec flags rw-
 DYNAMIC off    0x00000380 vaddr 0x0004a5cc paddr 0x0004a5cc align 2**2
         filesz 0x00000000 memsz 0x00000100 flags rw-
EH_FRAME off    0x000000d4 vaddr 0x000492b8 paddr 0x000492b8 align 2**2
         filesz 0x00000000 memsz 0x0000002c flags r--
   STACK off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
         filesz 0x00000000 memsz 0x00000000 flags rw-

Dynamic Section:

[EMAIL PROTECTED]:/usr/lib/debug/usr/lib>

Neil Williams wrote:
> A simple scan of the build log will indicate:

This assumes that I am online and want to go rooting about in build
logs. That's about ten times less likely than me just wanting to read a
rules file and see what it does.

> 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"

It does however, deprive you of any support at all from me for your
indirect uses of debhelper.

-- 
see shy jo

Attachment: signature.asc
Description: Digital signature

Reply via email to