It can be done...
John P Janosik
jpjanosi at us.ibm.com
Tue Aug 1 19:24:31 UTC 2017
> On 01/08/2017 17:25, Michael Felt via samba-technical wrote:
> >
> > FYI: the blibpath on the smbd is: EXTENSIVE and inaccurate (relative)
> >
> > 0
> > default/source4/lib/socket:default/source4/lib/http:default/
> source4/libcli:default/libcli/nbt:default/source4/cluster:default/
> source4/libcli/ldap:default/source4/auth:default/source4/libcli/
> wbclient:default/source4/lib/messaging:default/nsswitch:default/
> source4/lib/events:default/lib/tdb_wrap:default/source4/
> librpc:default/libcli/smb:default/libcli/cldap:default/lib/
> addns:default/auth/gensec:default/source4/auth/ntlm:default/
> third_party/popt:default/libds/common:default/nsswitch/
> libwbclient:default/auth/credentials:default/lib/ldb-samba:default/
> lib/param:default/source4/auth/kerberos:default/libcli/ldap:default/
> lib/ldb:default/libcli/registry:default/lib:default/lib/
> krb5_wrap:default/lib/dbwrap:default/source3/auth:default/lib/
> tdb:default/auth:default/lib/socket:default/libcli/auth:default/
> libcli/named_pipe_auth:default/source4/dsdb:default/libcli/
> security:default/libcli/util:default/librpc:default/source4/
> heimdal_build:default/dfs_server:default/lib/tevent:default/lib/
> replace:default/lib/talloc:default/source3:default/lib/util:/usr/
> local/lib:/opt/lib:/usr/vac/lib:/usr/lib:/lib
> >
> > 1 libpthread.a shr_xpg5_64.o
> > 2 libsamba-util.so
> > 3 libsmbd-base-samba4.so
> > ...
> > 103 libcli-nbt-samba4.so
> > 104 libsmbclient-raw-samba4.so
> > 105 libhttp-samba4.so
> > 106 libnetif-samba4.so
> > 107 libnsl.a shr_64.o
> > 108 libc.a shr_64.o
> >
> > I would hope there is a better way to install shared libraries!
>
> Ok, reran config and changed prefix to /opt
>
> What I had not noticed before is that not only is the installed LIBPATH
> (behind the 0) long and relative, the directories do not exist in the
> installed area.
>
> After
>
> LIBPATH=/opt/lib:/opt/lib/auth:/opt/lib/bind9:/opt/lib/gensec:/opt/
> lib/idmap:/opt/lib/ldb:/opt/lib/nss_info:/opt/lib/private:/opt/lib/
> process_model:/opt/lib/python2.7/site-packages/samba:/opt/lib/
> security:/opt/lib/service:/opt/lib/vfs
>
> export LIBPATH
>
> Now I get:
>
> root at x069:[/data/prj/samba/samba-4.4.15]ldd /opt/sbin/samba
> /opt/sbin/samba needs:
> /usr/lib/libpthread.a(shr_xpg5_64.o)
> Cannot find libldb.so
> /opt/lib/libsamba-hostconfig.so
> /opt/lib/private/libcluster-samba4.so
> /opt/lib/libsamba-credentials.so
>
> Night Night!
>
Hi Michael -
I don't know if is a correct fix, but since Samba switched from autoconf
to waf I've been patching buildtools/wafsamba/samba_install.py with the
following changes for building on AIX, line numbers based on the version
of samba_install.py shipped with Samba 4.4.6, but the patch didn't change
when I built with newer versions. I haven't tried building any 4.7
1. Modify the following code at line 121 - 128 so that the condition that
does "dev_link = bld.make_libname(target_name)" is run for all libs on
AIX.
install_name = bld.make_libname(target_name,
version=self.vnum)
install_link = bld.make_libname(target_name,
version=vnum_base)
inst_name = bld.make_libname(t.target)
if not self.private_library:
# only generate the dev link for non-bundled libs
dev_link = bld.make_libname(target_name)
elif getattr(self, 'soname', ''):
install_name = bld.make_libname(target_name)
2. Modify the following code at lines 330 - 336 so that the -bsrv4 option
is included in the link flags, according the man page of ld on AIX the
"-R" option is only supported when -bsrv4 is also passed.
# check which compiler/linker flags are needed for rpath support
if not conf.CHECK_LDFLAGS(['-Wl,-rpath,.']) and
conf.CHECK_LDFLAGS(['-Wl,-R,.']):
conf.env['RPATH_ST'] = '-Wl,-R,%s'
# check for rpath
if conf.CHECK_LIBRARY_SUPPORT(rpath=True):
When I build this way the resulting binaries work without setting LIBPATH,
dump -H shows:
> dump -H /PREFIX/sbin/smbd
/PREFIX/sbin/smbd:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x00000130 0x000001c6 0x0000097d
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000067 0x000031e8 0x000015d1 0x00003b65
***Import File Strings***
INDEX PATH BASE MEMBER
0 /PREFIX/lib/private:/PREFIX/lib:/usr/lib:/lib
1 libpthread.a shr_xpg5.o
2 libsamba-util.so
3 libsmbd-base-samba4.so
4 libtime-basic-samba4.so
5 libutil-setid-samba4.so
6 libsamba-debug-samba4.so
7 libgenrand-samba4.so
8 libtalloc.so
9 libreplace-samba4.so
10 libsocket-blocking-samba4.so
11 libtevent.so
12 libsmbregistry-samba4.so
13 libtalloc-report-samba4.so
14 libprinting-migrate-samba4.so
15 libgssapi-samba4.so
16 libtevent-util.so
17 libmessages-dgm-samba4.so
18 libndr-samba-samba4.so
19 libsamba-errors.so
20 libnet-keytab-samba4.so
21 libsamba-security-samba4.so
22 libnetapi.so
23 libsys-rw-samba4.so
24 libsmbd-conn-samba4.so
25 libsamba3-util-samba4.so
26 libsamba-passdb.so
27 libutil-tdb-samba4.so
28 libnpa-tstream-samba4.so
29 libcliauth-samba4.so
30 libinterfaces-samba4.so
31 libauth-sam-reply-samba4.so
32 libpopt-samba3-samba4.so
33 libtdb.so
34 libmessages-util-samba4.so
35 libauth-samba4.so
36 liblibsmb-samba4.so
37 libmsrpc3-samba4.so
38 libserver-id-db-samba4.so
39 libmsghdr-samba4.so
40 libdbwrap-samba4.so
41 libiov-buf-samba4.so
42 libsmbconf.so
43 libsamba-cluster-support-samba4.so
44 libkrb5samba-samba4.so
45 libdcerpc-samba-samba4.so
46 libndr-krb5pac.so
47 libsamba-sockets-samba4.so
48 libndr.so
49 libutil-reg-samba4.so
50 libsmbd-shim-samba4.so
51 libcli-spoolss-samba4.so
52 libkrb5-samba4.so
53 libroken-samba4.so
54 libasn1-samba4.so
55 libhcrypto-samba4.so
56 libcom_err-samba4.so
57 libwind-samba4.so
58 libndr-standard.so
59 libasn1util-samba4.so
60 libndr-nbt.so
61 libz-samba4.so
62 libads-samba4.so
63 liblibcli-netlogon3-samba4.so
64 libutil-cmdline-samba4.so
65 libwbclient.so
66 libflag-mapping-samba4.so
67 libsamba-credentials.so
68 libsecrets3-samba4.so
69 libsamba-hostconfig.so
70 libpopt-samba4.so
71 liblibcli-lsa3-samba4.so
72 libtrusts-util-samba4.so
73 libaddns-samba4.so
74 libcli-ldap-common-samba4.so
75 libcli-cldap-samba4.so
76 libcli-smb-common-samba4.so
77 libgse-samba4.so
78 libgensec-samba4.so
79 libdcerpc-binding.so
80 libndr-samba4.so
81 libtdb-wrap-samba4.so
82 libCHARSET3-samba4.so
83 libevents-samba4.so
84 libheimbase-samba4.so
85 libhx509-samba4.so
86 libwinbind-client-samba4.so
87 libldb.so
88 libsamdb-common-samba4.so
89 libldbsamba-samba4.so
90 libauthkrb5-samba4.so
91 libserver-role-samba4.so
92 libcli-ldap-samba4.so
93 libsmb-transport-samba4.so
94 libsamba-modules-samba4.so
95 libsamdb.so
96 libcli-nbt-samba4.so
97 libnetif-samba4.so
98 libnsl.a shr.o
99 libbsd.a shr.o
100 libc.a shr.o
101 librtl.a shr.o
102 / unix
John Janosik
jpjanosi at us.ibm.com
More information about the samba-technical
mailing list