Package: dpkg-dev
Version: 1.14.12
Severity: minor
dpkg-shlibdeps misses some symbols and thus prints warnings about not
using symbols from a library even when doing so.
When compiling xbuffy-3.3.bl.3.dfsg-5 I get the following warning:
| dpkg-shlibdeps: warning: debian/xbuffy/usr/bin/xbuffy shouldn't be
| linked with libXaw.so.7 (it uses none of its symbols).
but when I edit the binary to change the NEEDED section I get:
| $ ldd -r debian/xbuffy/usr/bin/xbuffy
| libYaw.so.7 => not found
| libXt.so.6 => /usr/lib/libXt.so.6 (0xf7eb8000)
| libX11.so.6 => /usr/lib/libX11.so.6 (0xf7db4000)
| libc.so.6 => /lib/libc.so.6 (0xf7c40000)
| libSM.so.6 => /usr/lib/libSM.so.6 (0xf7c28000)
| libICE.so.6 => /usr/lib/libICE.so.6 (0xf7c00000)
| libXau.so.6 => /usr/lib/libXau.so.6 (0xf7bec000)
| libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf7bd8000)
| libdl.so.2 => /lib/libdl.so.2 (0xf7bc0000)
| /lib/ld-linux.so.2 (0xf7f2c000)
| undefined symbol: boxWidgetClass (debian/xbuffy/usr/bin/xbuffy)
| undefined symbol: commandWidgetClass (debian/xbuffy/usr/bin/xbuffy)
Thus those symbols are actually needed. (They are variables with the
object class of the widget, referencing the actual used methods as
function pointers, thus no other symbols from this library are used).
| $ objdump -R debian/xbuffy/usr/bin/xbuffy
| debian/xbuffy/usr/bin/xbuffy: file format elf32-sparc
|
| DYNAMIC RELOCATION RECORDS
| OFFSET TYPE VALUE
| 0002810c R_SPARC_GLOB_DAT __gmon_start__
| 00028110 R_SPARC_GLOB_DAT _Jv_RegisterClasses
| 00028120 R_SPARC_GLOB_DAT __cxa_finalize
| 00028a40 R_SPARC_COPY boxWidgetClass
| 00028a48 R_SPARC_COPY stderr
| 00028a50 R_SPARC_COPY XtShellStrings
| 00028f60 R_SPARC_COPY XtStrings
| 000299bc R_SPARC_COPY transientShellWidgetClass
| 000299c0 R_SPARC_COPY commandWidgetClass
| 00028154 R_SPARC_JMP_SLOT fputs
| 00028160 R_SPARC_JMP_SLOT __errno_location
| 0002816c R_SPARC_JMP_SLOT connect
| 00028178 R_SPARC_JMP_SLOT XtGetValues
| 00028184 R_SPARC_JMP_SLOT XtRealizeWidget
| 00028190 R_SPARC_JMP_SLOT XtSetValues
| 0002819c R_SPARC_JMP_SLOT __xstat
| 000281a8 R_SPARC_JMP_SLOT __gmon_start__
| 000281b4 R_SPARC_JMP_SLOT XtCreatePopupShell
| 000281c0 R_SPARC_JMP_SLOT XtTranslateCoords
| 000281cc R_SPARC_JMP_SLOT realloc
| 000281d8 R_SPARC_JMP_SLOT strchr
| 000281e4 R_SPARC_JMP_SLOT getenv
| 000281f0 R_SPARC_JMP_SLOT system
| 000281fc R_SPARC_JMP_SLOT putchar
| 00028208 R_SPARC_JMP_SLOT fgets
| 00028214 R_SPARC_JMP_SLOT memset
| 00028220 R_SPARC_JMP_SLOT __libc_start_main
| 0002822c R_SPARC_JMP_SLOT execl
| 00028238 R_SPARC_JMP_SLOT _IO_getc
| 00028244 R_SPARC_JMP_SLOT _exit
| 00028250 R_SPARC_JMP_SLOT strrchr
| 0002825c R_SPARC_JMP_SLOT perror
| 00028268 R_SPARC_JMP_SLOT XtPopdown
| 00028274 R_SPARC_JMP_SLOT XtConvert
| 00028280 R_SPARC_JMP_SLOT readdir
| 0002828c R_SPARC_JMP_SLOT XtRemoveTimeOut
| 00028298 R_SPARC_JMP_SLOT strtol
| 000282a4 R_SPARC_JMP_SLOT fdopen
| 000282b0 R_SPARC_JMP_SLOT free
| 000282bc R_SPARC_JMP_SLOT XtAppInitialize
| 000282c8 R_SPARC_JMP_SLOT XtAppMainLoop
| 000282d4 R_SPARC_JMP_SLOT access
| 000282e0 R_SPARC_JMP_SLOT XBell
| 000282ec R_SPARC_JMP_SLOT setpriority
| 000282f8 R_SPARC_JMP_SLOT fflush
| 00028304 R_SPARC_JMP_SLOT opendir
| 00028310 R_SPARC_JMP_SLOT socket
| 0002831c R_SPARC_JMP_SLOT __ctype_b_loc
| 00028328 R_SPARC_JMP_SLOT fseek
| 00028334 R_SPARC_JMP_SLOT fclose
| 00028340 R_SPARC_JMP_SLOT bcopy
| 0002834c R_SPARC_JMP_SLOT XtDestroyWidget
| 00028358 R_SPARC_JMP_SLOT XtDisplay
| 00028364 R_SPARC_JMP_SLOT sscanf
| 00028370 R_SPARC_JMP_SLOT strlen
| 0002837c R_SPARC_JMP_SLOT fopen
| 00028388 R_SPARC_JMP_SLOT waitpid
| 00028394 R_SPARC_JMP_SLOT feof
| 000283a0 R_SPARC_JMP_SLOT strcpy
| 000283ac R_SPARC_JMP_SLOT XtGetApplicationResources
| 000283b8 R_SPARC_JMP_SLOT printf
| 000283c4 R_SPARC_JMP_SLOT XCreateBitmapFromData
| 000283d0 R_SPARC_JMP_SLOT closedir
| 000283dc R_SPARC_JMP_SLOT fwrite
| 000283e8 R_SPARC_JMP_SLOT XtAppAddTimeOut
| 000283f4 R_SPARC_JMP_SLOT fprintf
| 00028400 R_SPARC_JMP_SLOT malloc
| 0002840c R_SPARC_JMP_SLOT XtIsRealized
| 00028418 R_SPARC_JMP_SLOT XtAddEventHandler
| 00028424 R_SPARC_JMP_SLOT fputc
| 00028430 R_SPARC_JMP_SLOT strtok
| 0002843c R_SPARC_JMP_SLOT XtPopup
| 00028448 R_SPARC_JMP_SLOT strncasecmp
| 00028454 R_SPARC_JMP_SLOT __ctype_tolower_loc
| 00028460 R_SPARC_JMP_SLOT strcat
| 0002846c R_SPARC_JMP_SLOT puts
| 00028478 R_SPARC_JMP_SLOT fork
| 00028484 R_SPARC_JMP_SLOT utimes
| 00028490 R_SPARC_JMP_SLOT strncmp
| 0002849c R_SPARC_JMP_SLOT vfprintf
| 000284a8 R_SPARC_JMP_SLOT snprintf
| 000284b4 R_SPARC_JMP_SLOT XtCreateManagedWidget
| 000284c0 R_SPARC_JMP_SLOT kill
| 000284cc R_SPARC_JMP_SLOT gethostbyname
| 000284d8 R_SPARC_JMP_SLOT strcmp
| 000284e4 R_SPARC_JMP_SLOT __cxa_finalize
| 000284f0 R_SPARC_JMP_SLOT __strdup
| 000284fc R_SPARC_JMP_SLOT exit
| 00028508 R_SPARC_JMP_SLOT sprintf
| 00028514 R_SPARC_JMP_SLOT _init
>From what I an tell, it seems not to be visible with -w -f -p -T:
| $ objdump -w -f -p -T debian/xbuffy/usr/bin/xbuffy
| debian/xbuffy/usr/bin/xbuffy: file format elf32-sparc
| architecture: sparc:v8plus, flags 0x00000112:
| EXEC_P, HAS_SYMS, D_PAGED
| start address 0x00011660
|
| Program Header:
| PHDR off 0x00000034 vaddr 0x00010034 paddr 0x00010034 align 2**2
| filesz 0x000000e0 memsz 0x000000e0 flags r-x
| INTERP off 0x00000114 vaddr 0x00010114 paddr 0x00010114 align 2**0
| filesz 0x00000013 memsz 0x00000013 flags r--
| LOAD off 0x00000000 vaddr 0x00010000 paddr 0x00010000 align 2**16
| filesz 0x000072b4 memsz 0x000072b4 flags r-x
| LOAD off 0x00008000 vaddr 0x00028000 paddr 0x00028000 align 2**16
| filesz 0x00000a40 memsz 0x00001f60 flags rwx
| DYNAMIC off 0x00008014 vaddr 0x00028014 paddr 0x00028014 align 2**2
| filesz 0x000000e8 memsz 0x000000e8 flags rw-
| NOTE off 0x00000128 vaddr 0x00010128 paddr 0x00010128 align 2**2
| filesz 0x00000020 memsz 0x00000020 flags r--
| STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
| filesz 0x00000000 memsz 0x00000000 flags rw-
|
| Dynamic Section:
| NEEDED libXaw.so.7
| NEEDED libXt.so.6
| NEEDED libX11.so.6
| NEEDED libc.so.6
| INIT 0x11600
| FINI 0x160c0
| HASH 0x10148
| GNU_HASH 0x103d4
| STRTAB 0x10c7c
| SYMTAB 0x1069c
| STRSZ 0x407
| SYMENT 0x10
| DEBUG 0x0
| PLTGOT 0x28124
| PLTRELSZ 0x3cc
| PLTREL 0x7
| JMPREL 0x1120c
| RELA 0x111a0
| RELASZ 0x438
| RELAENT 0xc
| VERNEED 0x11140
| VERNEEDNUM 0x1
| VERSYM 0x11084
|
| Version References:
| required from libc.so.6:
| 0x09691f73 0x00 06 GLIBC_2.1.3
| 0x0d696914 0x00 05 GLIBC_2.4
| 0x0d696913 0x00 04 GLIBC_2.3
| 0x0d696911 0x00 03 GLIBC_2.1
| 0x0d696910 0x00 02 GLIBC_2.0
|
| DYNAMIC SYMBOL TABLE:
| 00000000 w D *UND* 00000000 __gmon_start__
| 00000000 w D *UND* 00000000 _Jv_RegisterClasses
| 0002816c DF *UND* 00000090 GLIBC_2.0 connect
| 000281c0 DF *UND* 00000178 XtTranslateCoords
| 0002828c DF *UND* 00000154 XtRemoveTimeOut
| 000281b4 DF *UND* 000000ec XtCreatePopupShell
| 00028478 DF *UND* 00000344 GLIBC_2.0 fork
| 00028274 DF *UND* 000000e8 XtConvert
| 00028a48 g DO .bss 00000004 GLIBC_2.0 stderr
| 000283dc DF *UND* 00000208 GLIBC_2.0 fwrite
| 00028454 DF *UND* 00000054 GLIBC_2.3 __ctype_tolower_loc
| 00028178 DF *UND* 00000270 XtGetValues
| 00028490 DF *UND* 00000394 GLIBC_2.0 strncmp
| 000282f8 DF *UND* 0000016c GLIBC_2.0 fflush
| 00028424 DF *UND* 0000016c GLIBC_2.0 fputc
| 000284f0 DF *UND* 00000038 GLIBC_2.0 __strdup
| 000160f0 g DO .rodata 00000004 Base _IO_stdin_used
| 00028a50 g DO .bss 00000509 XtShellStrings
| 00028400 DF *UND* 00000250 GLIBC_2.0 malloc
| 0002843c DF *UND* 000000c8 XtPopup
| 000284b4 DF *UND* 00000104 XtCreateManagedWidget
| 00028304 DF *UND* 000000a8 GLIBC_2.0 opendir
| 00028358 DF *UND* 0000000c XtDisplay
| 00028160 DF *UND* 00000024 GLIBC_2.0 __errno_location
| 00028250 DF *UND* 000001a4 GLIBC_2.0 strrchr
| 00028268 DF *UND* 00000138 XtPopdown
| 00028220 DF *UND* 00000204 GLIBC_2.0 __libc_start_main
| 000282d4 DF *UND* 00000020 GLIBC_2.0 access
| 00028364 DF *UND* 00000034 GLIBC_2.4 sscanf
| 0002837c DF *UND* 00000014 GLIBC_2.1 fopen
| 000160c0 g DF .fini 00000000 Base _fini
| 000299c0 g DO .bss 00000004 commandWidgetClass
| 00028484 DF *UND* 00000024 GLIBC_2.0 utimes
| 00028310 DF *UND* 00000034 GLIBC_2.0 socket
| 000282b0 DF *UND* 00000148 GLIBC_2.0 free
| 000284d8 DF *UND* 000002a8 GLIBC_2.0 strcmp
| 0002834c DF *UND* 000001d8 XtDestroyWidget
| 00028154 DF *UND* 000001e8 GLIBC_2.0 fputs
| 00011600 g DF .init 00000000 Base _init
| 000283b8 DF *UND* 00000050 GLIBC_2.4 printf
| 0002825c DF *UND* 000000d8 GLIBC_2.0 perror
| 0002846c DF *UND* 0000023c GLIBC_2.0 puts
| 00028190 DF *UND* 00000a58 XtSetValues
| 00028244 DF *UND* 00000038 GLIBC_2.0 _exit
| 0002831c DF *UND* 00000054 GLIBC_2.3 __ctype_b_loc
| 000284c0 DF *UND* 00000020 GLIBC_2.0 kill
| 00028460 DF *UND* 00000360 GLIBC_2.0 strcat
| 0002819c DF *UND* 00000068 GLIBC_2.0 __xstat
| 0002822c DF *UND* 0000017c GLIBC_2.0 execl
| 00028a40 g DO .bss 00000004 boxWidgetClass
| 00000000 w DF *UND* 00000120 GLIBC_2.1.3 __cxa_finalize
| 000282a4 DF *UND* 00000264 GLIBC_2.1 fdopen
| 00028430 DF *UND* 000000a4 GLIBC_2.0 strtok
| 00028448 DF *UND* 00000088 GLIBC_2.0 strncasecmp
| 00028298 DF *UND* 0000002c GLIBC_2.0 strtol
| 000282ec DF *UND* 00000020 GLIBC_2.0 setpriority
| 000281f0 DF *UND* 00000074 GLIBC_2.0 system
| 000282bc DF *UND* 00000060 XtAppInitialize
| 00028334 DF *UND* 000002e8 GLIBC_2.1 fclose
| 000281cc DF *UND* 000002c4 GLIBC_2.0 realloc
| 00028370 DF *UND* 0000016c GLIBC_2.0 strlen
| 000283d0 DF *UND* 00000044 GLIBC_2.0 closedir
| 000284cc DF *UND* 000001fc GLIBC_2.0 gethostbyname
| 000283f4 DF *UND* 00000034 GLIBC_2.4 fprintf
| 0002840c DF *UND* 000000b8 XtIsRealized
| 000284a8 DF *UND* 00000034 GLIBC_2.4 snprintf
| 000284fc DF *UND* 00000148 GLIBC_2.0 exit
| 000299bc g DO .bss 00000004 transientShellWidgetClass
| 00028418 DF *UND* 00000108 XtAddEventHandler
| 000282e0 DF *UND* 000000b8 XBell
| 000283e8 DF *UND* 000001fc XtAppAddTimeOut
| 000283c4 DF *UND* 000000c8 XCreateBitmapFromData
| 00028a40 g D *ABS* 00000000 Base _edata
| 0002849c DF *UND* 00004c94 GLIBC_2.4 vfprintf
| 00028184 DF *UND* 00000110 XtRealizeWidget
| 000281e4 DF *UND* 0000015c GLIBC_2.0 getenv
| 00029f60 g D *ABS* 00000000 Base _end
| 00028f60 g DO .bss 00000a59 XtStrings
| 00028340 DF *UND* 0000002c GLIBC_2.0 bcopy
| 000283ac DF *UND* 00000030 XtGetApplicationResources
| 000281fc DF *UND* 00000188 GLIBC_2.0 putchar
| 00028214 DF *UND* 00000240 GLIBC_2.0 memset
| 00028238 DF *UND* 00000164 GLIBC_2.0 _IO_getc
| 000281d8 DF *UND* 00000350 GLIBC_2.0 strchr
| 00028280 DF *UND* 00000158 GLIBC_2.0 readdir
| 000282c8 DF *UND* 0000006c XtAppMainLoop
| 00028328 DF *UND* 00000174 GLIBC_2.0 fseek
| 000283a0 DF *UND* 00000250 GLIBC_2.0 strcpy
| 00028208 DF *UND* 000001e8 GLIBC_2.0 fgets
| 00028394 DF *UND* 000000d4 GLIBC_2.0 feof
| 00028a40 g D *ABS* 00000000 Base __bss_start
| 00028508 DF *UND* 00000034 GLIBC_2.4 sprintf
| 00028388 DF *UND* 00000088 GLIBC_2.0 waitpid
I'm missing a i386 unstable currently, but looking there at the binary
in etch, I think this will not be sparc specific at all.
Hochachtungsvoll,
Bernhard R. Link
--
"Never contain programs so few bugs, as when no debugging tools are available!"
Niklaus Wirth
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]