[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Need help with strange ldd output



I have compiled a package which contains the following shared lib:

/usr/lib/liballeg-3.9.33.so


I think there are a number of things which were done wrong here, and
would appreciate any hints.  Please CC me on reply, I'm not on
deb-dev.

When I link something with it I get in ldd's output:

        liballeg-3.9.33.so => /usr/lib/liballeg-3.9.33.so (0x40025000)
        libc.so.6 => /lib/libc.so.6 (0x400d6000)

This syntax confuses dpkg-shlibdeps (and dh_makeshlibs did not look at
the file either).  Did anyone already seen such a problem ?  Was the
lib erroneously built, or is it just a symlink missing (I tried to
symlink it to liballeg.so.3.9.33, with no changes.


Also linitian reports the lib does not contain PIC, although .o files
are built with -fPIC, and the lib is linked with -shared.  Only
suspect thing I found: a couple of .o files do not appear to have a
GOT, although they were compiled with -fPIC:


$ rm obj/unix/shared/alleg/lgfxdrv.o 
$ make obj/unix/shared/alleg/lgfxdrv.o 
gcc -DHAVE_CONFIG_H -Iinclude -Iinclude/allegro -I./include -I./include/allegro -I.  -I/usr/X11R6/include  -O3 -ffast-math -fomit-frame-pointer -Wall -fPIC -DALLEGRO_SHARED -c ./src/linux/lgfxdrv.c -o obj/unix/shared/alleg/lgfxdrv.o
$ objdump -x obj/unix/shared/alleg/lgfxdrv.o 

obj/unix/shared/alleg/lgfxdrv.o:     file format elf32-i386
obj/unix/shared/alleg/lgfxdrv.o
architecture: i386, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000000  00000000  00000000  00000034  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000054  00000000  00000000  00000034  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, DATA
  2 .bss          00000000  00000000  00000000  00000088  2**2
                  ALLOC
  3 .note         00000014  00000000  00000000  00000088  2**0
                  CONTENTS, READONLY
  4 .comment      0000002f  00000000  00000000  0000009c  2**0
                  CONTENTS, READONLY
SYMBOL TABLE:
00000000 l    df *ABS*  00000000 lgfxdrv.c
00000000 l    d  .text  00000000 
00000000 l    d  .data  00000000 
00000000 l    d  .bss   00000000 
00000000 l       .text  00000000 gcc2_compiled.
00000000 l    d  .note  00000000 
00000000 l    d  .comment       00000000 
00000000 g     O .data  00000054 _linux_gfx_driver_list
00000000         *UND*  00000000 gfx_fbcon
00000000         *UND*  00000000 gfx_vbeaf
00000000         *UND*  00000000 gfx_vga
00000000         *UND*  00000000 gfx_modex
00000000         *UND*  00000000 gfx_ggi
00000000         *UND*  00000000 gfx_svgalib


RELOCATION RECORDS FOR [.data]:
OFFSET   TYPE              VALUE 
00000004 R_386_32          gfx_fbcon
00000010 R_386_32          gfx_vbeaf
0000001c R_386_32          gfx_vga
00000028 R_386_32          gfx_modex
00000034 R_386_32          gfx_ggi
00000040 R_386_32          gfx_svgalib


-- 
Yann Dirson    <ydirson@altern.org> |    Why make M$-Bill richer & richer ?
debian-email:   <dirson@debian.org> |   Support Debian GNU/Linux:
                                    | Cheaper, more Powerful, more Stable !
http://ydirson.free.fr/             | Check <http://www.debian.org/>



Reply to: