Boost logo

Boost-Build :

From: Steinlein,Volker (EBV) (Volker.Steinlein_at_[hidden])
Date: 2008-06-03 07:05:56


Hello Volodya!

> What is the soname encoded in
>
>
/home2/steinlv/my_boost_dir/boost/bin.v2/libs/system/build/acc/debug/thr
eading-multi/libboost_system-mt-d-1_35.so.1.35.0
>
> ? (On Linux, readelf -d will tell that, no idea about AIX).

These are the informations of both files:

------- libboost_system-mt-d-1_35.so.1.35.0 -----------

Dynamic section at offset 0x2b0 contains 28 entries:
  Tag Type Name/Value
 0x000000000000001d (RUNPATH) Library runpath:
[/usr/lib/hpux64:/opt/langtools/lib/hpux64]
 0x0000000000000019 (INIT_ARRAY) 0x6000000000000330
 0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
 0x000000000000001a (FINI_ARRAY) 0x6000000000000338
 0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)
 0x000000000000001e (FLAGS)
 0x0000000060000001 (<unknown>: 60000001) 0x0
 0x0000000000000003 (PLTGOT) 0x60000000000004b0
 0x0000000000000004 (HASH) 0x4000000000003c48
 0x0000000000000005 (STRTAB) 0x4000000000001b98
 0x0000000000000006 (SYMTAB) 0x4000000000000470
 0x0000000070000000 (IA_64_PLT_RESERVE) 0x6000000000000600 --
0x6000000000000618
 0x000000006000000c (<unknown>: 6000000c) 0x400000000000a7c0
 0x000000006000000b (<unknown>: 6000000b) 0x1
 0x0000000060000008 (<unknown>: 60000008) 0x484508d9
 0x0000000060000009 (<unknown>: 60000009) 0xbbfd8ec7
 0x0000000060000018 (Operating System specific: 60000018)
0x6377d618
 0x0000000000000007 (RELA) 0x4000000000004218
 0x0000000000000008 (RELASZ) 2496 (bytes)
 0x0000000000000014 (PLTREL) RELA
 0x0000000000000017 (JMPREL) 0x4000000000004998
 0x0000000000000002 (PLTRELSZ) 576 (bytes)
 0x000000006000000d (Operating System specific: 6000000d)
0x4000000000004938
 0x000000006000000e (Operating System specific: 6000000e)
0x30
 0x0000000000000009 (RELAENT) 24 (bytes)
 0x000000000000000a (STRSZ) 8363 (bytes)
 0x000000000000000b (SYMENT) 24 (bytes)
 0x0000000000000000 (NULL) 0x0

------- libboost_filesystem-mt-d-1_35.so -----------

Dynamic section at offset 0x2b0 contains 29 entries:
  Tag Type Name/Value
 0x0000000000000001 (NEEDED) Shared library:
[/home2/steinlv/my_boost_dir/boost/bin.v2/libs/system/build/acc/debug/th
reading-multi/libboost_system-mt-d-1_35.so.1.35.0]
 0x000000000000001d (RUNPATH) Library runpath:
[/usr/lib/hpux64:/opt/langtools/lib/hpux64]
 0x0000000000000019 (INIT_ARRAY) 0x60000000000009c0
 0x000000000000001b (INIT_ARRAYSZ) 32 (bytes)
 0x000000000000001a (FINI_ARRAY) 0x60000000000009e0
 0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)
 0x000000000000001e (FLAGS)
 0x0000000060000001 (<unknown>: 60000001) 0x0
 0x0000000000000003 (PLTGOT) 0x6000000000000de0
 0x0000000000000004 (HASH) 0x40000000000114a8
 0x0000000000000005 (STRTAB) 0x40000000000054a8
 0x0000000000000006 (SYMTAB) 0x4000000000000480
 0x0000000070000000 (IA_64_PLT_RESERVE) 0x60000000000011b0 --
0x60000000000011c8
 0x000000006000000c (<unknown>: 6000000c) 0x400000000002b968
 0x000000006000000b (<unknown>: 6000000b) 0x1
 0x0000000060000008 (<unknown>: 60000008) 0x484508d9
 0x0000000060000009 (<unknown>: 60000009) 0xbb49c243
 0x0000000060000018 (Operating System specific: 60000018)
0x1e8c2d80
 0x0000000000000007 (RELA) 0x40000000000128b8
 0x0000000000000008 (RELASZ) 7368 (bytes)
 0x0000000000000014 (PLTREL) RELA
 0x0000000000000017 (JMPREL) 0x4000000000013fb0
 0x0000000000000002 (PLTRELSZ) 1488 (bytes)
 0x000000006000000d (Operating System specific: 6000000d)
0x4000000000013ec0
 0x000000006000000e (Operating System specific: 6000000e)
0x78
 0x0000000000000009 (RELAENT) 24 (bytes)
 0x000000000000000a (STRSZ) 49151 (bytes)
 0x000000000000000b (SYMENT) 24 (bytes)
 0x0000000000000000 (NULL) 0x0

------------

>
> What is the linker option to specify soname, on AIX?
>

I am not quite sure what you mean but I suppose you want to give the
libaries internal names.
This is what the HPUX ld man page says about assigning libraries

------8<-------------
           +h internal_name
                          When building a shared library, record
                          internal_name as the name of the library.
When
                          the library is used to link another executable
                          file (program or shared library), this
                          internal_name is recorded in the library list
of
                          the resulting output file instead of the
pathname
                          of the input shared library. That is, if +h
is
                          not used, the shared library does not have an
                          internal name and when an executable is built
with

                          the shared library, the linker records the
library
                          name that it looks at.

                          If more than one +h option is seen on the link
                          line, the linker uses the first one and emits
a
                          warning message.
----------8<-----------

Is it that what you need?

Best regards and thank you very much
        Volker


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk