[Samba] Patch for 2.2.5 (start_tls with OpenLDAP 2.0.x) is not working .. (Solution).

Harry Rüter harry_rueter at gmx.de
Sat Jul 6 09:57:02 GMT 2002


Hi,

first look what my problem was :

Harry Rüter wrote:
> 
> Hi,
> 
> i was the one who had problems with the
> start_tls function.
> 
> I applied the patch yesterday.
> 
> But now the compiling doesn't work anymore.
> 
> This is what happens :
> 
> --------snipp----------
> [Lots of compiling output cut away]
> 
> Linking bin/smbd
> passdb/pdb_ldap.o: In function `pdb_setsampwent':
> passdb/pdb_ldap.o(.text+0x1730): multiple definition of
> `pdb_setsampwent'
> passdb/pdb_tdb.o(.text+0xd70): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_setsampwent' changed f
> rom 237 to 493 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_endsampwent':
> passdb/pdb_ldap.o(.text+0x1920): multiple definition of
> `pdb_endsampwent'
> passdb/pdb_tdb.o(.text+0xe60): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_endsampwent' changed f
> rom 97 to 76 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_getsampwent':
> passdb/pdb_ldap.o(.text+0x1970): multiple definition of
> `pdb_getsampwent'
> passdb/pdb_tdb.o(.text+0xed0): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_getsampwent' changed f
> rom 544 to 99 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_getsampwnam':
> passdb/pdb_ldap.o(.text+0x19e0): multiple definition of
> `pdb_getsampwnam'
> passdb/pdb_tdb.o(.text+0x10f0): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_getsampwnam' changed f
> rom 619 to 406 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_getsampwrid':
> passdb/pdb_ldap.o(.text+0x1b80): multiple definition of
> `pdb_getsampwrid'
> passdb/pdb_tdb.o(.text+0x1360): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_getsampwrid' changed f
> rom 529 to 296 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_delete_sam_account':
> passdb/pdb_ldap.o(.text+0x1cb0): multiple definition of
> `pdb_delete_sam_account'
> passdb/pdb_tdb.o(.text+0x1580): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_delete_sam_account' ch
> anged from 945 to 570 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_update_sam_account':
> passdb/pdb_ldap.o(.text+0x1ef0): multiple definition of
> `pdb_update_sam_account'
> passdb/pdb_tdb.o(.text+0x1d70): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_update_sam_account' ch
> anged from 28 to 496 in passdb/pdb_ldap.o
> passdb/pdb_ldap.o: In function `pdb_add_sam_account':
> passdb/pdb_ldap.o(.text+0x20e0): multiple definition of
> `pdb_add_sam_account'
> passdb/pdb_tdb.o(.text+0x1d90): first defined here
> /usr/i486-suse-linux/bin/ld: Warning: size of symbol
> `pdb_add_sam_account' chang
> ed from 26 to 1058 in passdb/pdb_ldap.o
> /usr/i486-suse-linux/bin/ld: warning: libssl.so.0, needed by
> /usr/lib/libldap.so
> , may conflict with libssl.so.0.9.6
> /usr/i486-suse-linux/bin/ld: warning: libcrypto.so.0, needed
> by /usr/lib/libldap
> .so, may conflict with libcrypto.so.0.9.6
> collect2: ld returned 1 exit status
> make: *** [bin/smbd] Error 1
> --------snipp----------
> 
> You see, there's a linker error, which didn't occur,
> before the patch was applied.
> 
> Here's what i do (i always make
> a little configure/comile-script) :
> --------snipp----------
> #!/bin/sh
> 
> make clean
> autoconf
> 
>  ./configure  \
> --with-utmp \
> --with-readline \
> --with-acl-support \
> --prefix=/usr/local/samba \
> --with-smbwrapper \
> --with-smbmount \
> --with-pam \
> --with-pam_smbpass \
> --with-ldapsam \
> --with-tdbsam \
> --with-ssl \
> --with-krb5=/usr/local/kerberos \
> --with-vfs \
> --with-syslog \
> --with-libsmbclient \
> --with-winbind 2>&1 | tee configure.out && make
> --------snipp----------
> 
> System :
> 
> Suse LINUX 7.1
> Kernel 2.4.18
> openssl 0.96d
> openldap 2.0.25
> 
> greets Harry

Solution :

The modules 
 passdb/pdb_ldap.c and
 passdb/pdb_tdb.c
implement the same functions.

When it comes to linking the linker sees,
that the functions are "already there" and
that they have different sizes (which is obvious,
as they are implemented different).

So i left away the configure-option
"--with-tdbsam " and everything works fine ..

What makes me confused is,
that in former versions (2.2.3a, 2.2.4)
i configured with "--with-tdbsam" and it was compiled
(linked) without problems ..

When i have enough time i'll look what happened with
those older versions, now i'm happy having found the reason
of my problem .. and the solution ..

greets Harry




More information about the samba mailing list