ports with no SONAME

blubee blubeeme gurenchan at gmail.com
Mon Oct 30 16:17:49 UTC 2017


Can anyone help with this library. I ran objdump on it and got this output
----------------------------------------------
objdump -x work/stage/usr/local/lib/libtogl.so

work/stage/usr/local/lib/libtogl.so:     file format elf64-x86-64-freebsd
work/stage/usr/local/lib/libtogl.so
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0000000000002980

Program Header:
    LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**21
         filesz 0x00000000000070a8 memsz 0x00000000000070a8 flags r-x
    LOAD off    0x00000000000070b0 vaddr 0x00000000002070b0 paddr
0x00000000002070b0 align 2**21
         filesz 0x0000000000000a58 memsz 0x0000000000002a90 flags rw-
 DYNAMIC off    0x00000000000070f0 vaddr 0x00000000002070f0 paddr
0x00000000002070f0 align 2**3
         filesz 0x0000000000000150 memsz 0x0000000000000150 flags rw-
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**3
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-

Dynamic Section:
  NEEDED      libX11.so.6
  NEEDED      libGL.so.1
  NEEDED      libXmu.so.6
  HASH        0x120
  STRTAB      0xe60
  SYMTAB      0x458
  STRSZ       0x60b
  SYMENT      0x18
  PLTGOT      0x207258
  PLTRELSZ    0x558
  PLTREL      0x7
  JMPREL      0x2088
  RELA        0x1470
  RELASZ      0xc18
  RELAENT     0x18
  RELACOUNT   0x80

Sections:
Idx Name          Size      VMA               LMA               File off
 Algn
  0 .hash         00000338  0000000000000120  0000000000000120  00000120
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  1 .dynsym       00000a08  0000000000000458  0000000000000458  00000458
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .dynstr       0000060b  0000000000000e60  0000000000000e60  00000e60
 2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .rela.dyn     00000c18  0000000000001470  0000000000001470  00001470
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .rela.plt     00000558  0000000000002088  0000000000002088  00002088
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  5 .plt          000003a0  00000000000025e0  00000000000025e0  000025e0
 2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  6 .text         0000350f  0000000000002980  0000000000002980  00002980
 2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  7 .rodata       00000a6d  0000000000005e90  0000000000005e90  00005e90
 2**4
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  8 .eh_frame     000007a8  0000000000006900  0000000000006900  00006900
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  9 .data.rel.ro  00000040  00000000002070b0  00000000002070b0  000070b0
 2**4
                  CONTENTS, ALLOC, LOAD, DATA
 10 .dynamic      00000150  00000000002070f0  00000000002070f0  000070f0
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 11 .got          00000018  0000000000207240  0000000000207240  00007240
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 12 .got.plt      000001e0  0000000000207258  0000000000207258  00007258
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 13 .data         000006c8  0000000000207440  0000000000207440  00007440
 2**4
                  CONTENTS, ALLOC, LOAD, DATA
 14 .bss          00002030  0000000000207b10  0000000000207b10  00007b08
 2**4
                  ALLOC
 15 .comment      00000055  0000000000000000  0000000000000000  00007b08
 2**0
                  CONTENTS, READONLY
SYMBOL TABLE:
no symbols

running the same code on libjpeg i see the SONAME field.

 objdump -x /usr/local/lib/libjpeg.so

/usr/local/lib/libjpeg.so:     file format elf64-x86-64-freebsd
/usr/local/lib/libjpeg.so
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0000000000004860

Program Header:
    LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**21
         filesz 0x000000000007094c memsz 0x000000000007094c flags r-x
    LOAD off    0x0000000000071000 vaddr 0x0000000000271000 paddr
0x0000000000271000 align 2**21
         filesz 0x0000000000000c40 memsz 0x0000000000000c48 flags rw-
 DYNAMIC off    0x00000000000715c0 vaddr 0x00000000002715c0 paddr
0x00000000002715c0 align 2**3
         filesz 0x00000000000001c0 memsz 0x00000000000001c0 flags rw-
EH_FRAME off    0x000000000006c8c0 vaddr 0x000000000006c8c0 paddr
0x000000000006c8c0 align 2**2
         filesz 0x0000000000000bcc memsz 0x0000000000000bcc flags r--
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr
0x0000000000000000 align 2**3
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-

Dynamic Section:
  NEEDED      libc.so.7
  SONAME      libjpeg.so.8
  INIT        0x4398
  FINI        0x49388
  HASH        0x158
  GNU_HASH    0x5d8
  STRTAB      0x18f8
  SYMTAB      0xa88
  STRSZ       0xa79
  SYMENT      0x18
  PLTGOT      0x2719c0
  PLTRELSZ    0x6f0
  PLTREL      0x7
  JMPREL      0x3ca8
  RELA        0x2520
  RELASZ      0x1788
  RELAENT     0x18
  VERDEF      0x24a8
  VERDEFNUM   0x3
  VERNEED     0x2500
  VERNEEDNUM  0x1
  VERSYM      0x2372
  RELACOUNT   0xdd

Version definitions:
1 0x01 0x0cca1178 libjpeg.so.8
2 0x00 0x0939efd0 LIBJPEGTURBO_8.0
3 0x00 0x04cdfde0 LIBJPEG_8.0

Version References:
  required from libc.so.7:
    0x077a28b0 0x00 04 FBSD_1.0

Sections:
Idx Name          Size      VMA               LMA               File off
 Algn
  0 .hash         0000047c  0000000000000158  0000000000000158  00000158
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  1 .gnu.hash     000004ac  00000000000005d8  00000000000005d8  000005d8
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .dynsym       00000e70  0000000000000a88  0000000000000a88  00000a88
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .dynstr       00000a79  00000000000018f8  00000000000018f8  000018f8
 2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .gnu.version  00000134  0000000000002372  0000000000002372  00002372
 2**1
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  5 .gnu.version_d 00000054  00000000000024a8  00000000000024a8  000024a8
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  6 .gnu.version_r 00000020  0000000000002500  0000000000002500  00002500
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  7 .rela.dyn     00001788  0000000000002520  0000000000002520  00002520
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  8 .rela.plt     000006f0  0000000000003ca8  0000000000003ca8  00003ca8
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  9 .init         00000013  0000000000004398  0000000000004398  00004398
 2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 10 .plt          000004b0  00000000000043ac  00000000000043ac  000043ac
 2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 11 .text         00044b28  0000000000004860  0000000000004860  00004860
 2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 12 .fini         0000000e  0000000000049388  0000000000049388  00049388
 2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 13 .rodata       00023520  00000000000493a0  00000000000493a0  000493a0
 2**4
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 14 .eh_frame_hdr 00000bcc  000000000006c8c0  000000000006c8c0  0006c8c0
 2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 15 .eh_frame     000034bc  000000000006d490  000000000006d490  0006d490
 2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 16 .ctors        00000010  0000000000271000  0000000000271000  00071000
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 17 .dtors        00000010  0000000000271010  0000000000271010  00071010
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 18 .jcr          00000008  0000000000271020  0000000000271020  00071020
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 19 .data.rel.ro  00000590  0000000000271030  0000000000271030  00071030
 2**4
                  CONTENTS, ALLOC, LOAD, DATA
 20 .dynamic      000001c0  00000000002715c0  00000000002715c0  000715c0
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 21 .got          00000240  0000000000271780  0000000000271780  00071780
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 22 .got.plt      00000268  00000000002719c0  00000000002719c0  000719c0
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 23 .data         00000018  0000000000271c28  0000000000271c28  00071c28
 2**3
                  CONTENTS, ALLOC, LOAD, DATA
 24 .bss          00000008  0000000000271c40  0000000000271c40  00071c40
 2**2
                  ALLOC
 25 .comment      000000e1  0000000000000000  0000000000000000  00071c40
 2**0
                  CONTENTS, READONLY
SYMBOL TABLE:
no symbols


How can I edit the makefile to add the soname to the lib?

On Mon, Oct 30, 2017 at 11:52 PM, blubee blubeeme <gurenchan at gmail.com>
wrote:

> Seems like the soname issue has to do with the linker flags set during the
> compilation process.
>
> On Mon, Oct 30, 2017 at 7:37 PM, blubee blubeeme <gurenchan at gmail.com>
> wrote:
>
>> There's an unmaintained port [graphics/togl] that I need but doing
>> stage-qa on my port it says this needed port has no SONAME.
>>
>> Since the togl is unmaintained I'll like to fix it. This port does a lot
>> of stuff like this:
>>
>> # do-install:
>> # @${MKDIR} ${STAGEDIR}${TOGL_INSTDIR}
>> # .for i in togl.h togl_ws.h pkgIndex.tcl
>> # ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${TOGL_INSTDIR}
>> # .endfor
>> # ${INSTALL_LIB} ${WRKSRC}/libTogl1.7.so ${STAGEDIR}${TOGL_INSTDIR}
>> # ${LN} -s libTogl1.7.so  ${STAGEDIR}${TOGL_INSTDIR}/libtogl.so.1
>> # ${LN} -s ${TOGL_INSTDIR}/libTogl1.7.so  ${STAGEDIR}${PREFIX}/lib/libt
>> ogl.so
>> # ${LN} -s ${TOGL_INSTDIR}/libTogl1.7.so  ${STAGEDIR}${PREFIX}/lib/libt
>> ogl.so.1
>>
>> # do-install-DOCS-on:
>> # @${MKDIR} ${STAGEDIR}${DOCSDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/Togl.html ${STAGEDIR}${DOCSDIR}
>>
>> # do-install-EXAMPLES-on:
>> # @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/Makefile ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/ben.rgb ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/double.c ${WRKSRC}/double.tcl
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/gears.c ${WRKSRC}/gears.tcl
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/image.c ${WRKSRC}/image.h
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/index.c ${WRKSRC}/index.tcl
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/overlay.c ${WRKSRC}/overlay.tcl
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/stereo.c ${WRKSRC}/stereo.tcl
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/texture.c ${WRKSRC}/texture.tcl
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/togl.c ${WRKSRC}/togl.h
>> ${STAGEDIR}${EXAMPLESDIR}
>> # ${INSTALL_DATA} ${WRKSRC}/tree2.rgba ${STAGEDIR}${EXAMPLESDIR}
>>
>> I think this is the reason it's not registering the SONAME because of
>> those commands but I'm not sure.
>>
>> I ask because reading the porter handbook on installing ports there's a
>> Makefile macro ${COPYTREE_SHARE} but there's a warning that using that
>> macro doesn't add the files to pkg-plist, you have to manually do that.
>>
>> Anyways, that's a long way to say how can I rework this project to make
>> sure all files are installed and registered properly?
>>
>
>


More information about the freebsd-ports mailing list