On Wed, May 16, 2018 at 11:33:40AM +0100, Stuart Henderson wrote:
> On 2018/05/16 12:27, Reyk Floeter wrote:
> > On Wed, May 16, 2018 at 11:11:31AM +0100, Stuart Henderson wrote:
> > > On 2018/05/16 11:55, Reyk Floeter wrote:
> > > > Hi,
> > > > 
> > > > On Tue, May 15, 2018 at 11:46:45PM +0200, Reyk Floeter wrote:
> > > > > attached is a new port, sysutils/cloud-agent.  I wrote this tool
> > > > > myself and you can find it on https://github.com/reyk/cloud-agent.
> > > > 
> > > > New version of the port, with the following changes:
> > > > 
> > > > - Added expat to WANTLIB (pointed out by Rafael)
> > > > - Uploaded my own release tarball (pointed out by Stuart,
> > > > see https://www.conserver.com/pipermail/users/2018-March/msg00005.html)
> > > > 
> > > > new pkg/DESCR:
> > > > ---
> > > > This is a simple OpenBSD-specific agent that handles provisioning and
> > > > cloud initialization on clouds such as Microsoft Azure, Amazon AWS,
> > > > Apache CloudStack, or OpenStack.
> > > > ---
> > > > 
> > > > OK?
> > > > 
> > > > Reyk
> > > 
> > > Seems ssl isn't actually linked (I'm not sure what purpose DPADD servers
> > > in agent/Makefile?)  So I think WANTLIB should be "c crypto tls expat".
> > > 
> > > Otherwise OK.
> > > 
> > 
> > Well, it does link with libssl, libcrypto, and libtls.  It works
> > because libtls is linked against libssl and libcrypto and our linker
> > is smart enough to handle those inter-library dependencies.
> > 
> > But it doesn't work with static linking (make LDSTATIC=-static) and
> > LDADD should really be "LDADD+= -lexpat -ltls -lssl -lcrypto".
> > 
> > I will fix it in the next upstream version of cloud-agent but I think
> > that the current port with "WANTLIB= c tls ssl crypto expat" is fine.
> > 
> > Unless there are issues on non-amd64/i386 platforms?  I don't have
> > access to any of them at the moment.
> > 
> > $ grep LDADD Makefile
> > LDADD+=         -lexpat -ltls
> > $ ldd obj/cloud-agent
> > obj/cloud-agent:
> >         Start            End              Type  Open Ref GrpRef Name
> >         0000189a1b400000 0000189a1b60e000 exe   1    0   0      
> > obj/cloud-agent
> >         0000189d01b2d000 0000189d01d58000 rlib  0    1   0      
> > /usr/lib/libexpat.so.12.0
> >         0000189c8a57e000 0000189c8a78e000 rlib  0    1   0      
> > /usr/lib/libtls.so.17.1
> >         0000189c8bb95000 0000189c8be77000 rlib  0    1   0      
> > /usr/lib/libc.so.92.3
> >         0000189c9ea0f000 0000189c9edef000 rlib  0    2   0      
> > /usr/lib/libcrypto.so.43.1
> >         0000189d0d3bd000 0000189d0d611000 rlib  0    1   0      
> > /usr/lib/libssl.so.45.1
> >         0000189d08200000 0000189d08200000 ld.so 0    1   0      
> > /usr/libexec/ld.so
> > 
> > Reyk
> > 
> 
> ldd shows too much information for ports WANTLIB purposes, look at
> readelf -d or objdump -p:
> 
> $ readelf -d libexec/cloud-agent bin/cms
> 
> File: libexec/cloud-agent
> 
> Dynamic section at offset 0xcb18 contains 18 entries:
>   Tag        Type                         Name/Value
>  0x0000000000000001 (NEEDED)             Shared library: [libexpat.so.12.0]
>  0x0000000000000001 (NEEDED)             Shared library: [libtls.so.17.1]
>  0x0000000000000001 (NEEDED)             Shared library: [libc.so.92.3]
>  0x0000000000000004 (HASH)               0x107a20
>  0x0000000000000005 (STRTAB)             0x108908
>  0x0000000000000006 (SYMTAB)             0x107d98
>  0x000000000000000a (STRSZ)              1009 (bytes)
>  0x000000000000000b (SYMENT)             24 (bytes)
>  0x0000000000000015 (DEBUG)              0x0
>  0x0000000000000003 (PLTGOT)             0x20cc98
>  0x0000000000000002 (PLTRELSZ)           2376 (bytes)
>  0x0000000000000014 (PLTREL)             RELA
>  0x0000000000000017 (JMPREL)             0x108e08
>  0x0000000000000007 (RELA)               0x108d00
>  0x0000000000000008 (RELASZ)             264 (bytes)
>  0x0000000000000009 (RELAENT)            24 (bytes)
>  0x000000006ffffff9 (RELACOUNT)          5
>  0x0000000000000000 (NULL)               0x0
> 
> File: bin/cms
> 
> Dynamic section at offset 0x25208 contains 17 entries:
>   Tag        Type                         Name/Value
>  0x0000000000000001 (NEEDED)             Shared library: [libcrypto.so.43.1]
>  0x0000000000000001 (NEEDED)             Shared library: [libc.so.92.3]
>  0x0000000000000004 (HASH)               0x113660
>  0x0000000000000005 (STRTAB)             0x1168c8
>  0x0000000000000006 (SYMTAB)             0x114120
>  0x000000000000000a (STRSZ)              6926 (bytes)
>  0x000000000000000b (SYMENT)             24 (bytes)
>  0x0000000000000015 (DEBUG)              0x0
>  0x0000000000000003 (PLTGOT)             0x225378
>  0x0000000000000002 (PLTRELSZ)           8568 (bytes)
>  0x0000000000000014 (PLTREL)             RELA
>  0x0000000000000017 (JMPREL)             0x11abb0
>  0x0000000000000007 (RELA)               0x1183d8
>  0x0000000000000008 (RELASZ)             10200 (bytes)
>  0x0000000000000009 (RELAENT)            24 (bytes)
>  0x000000006ffffff9 (RELACOUNT)          308
>  0x0000000000000000 (NULL)               0x0
> 
> So libssl is only pulled in via inter library link, it doesn't matter to
> the package if libssl gets a revision bumped because it's only libtls that
> depends on the ABI.
> 

OK, thanks for the explanation, I will change WANTLIB an commit after coffee.

WANTLIB=        c crypto tls expat           

Reyk

Reply via email to