Problems compiling samba3 from 3.4.0pre1

Steve Langasek vorlon at debian.org
Thu May 14 19:17:46 GMT 2009


On Thu, May 14, 2009 at 11:16:18AM +0200, Volker Lendecke wrote:
> On Thu, May 14, 2009 at 01:05:34AM -0700, Steve Langasek wrote:
> > The failure is still an upstream issue, we just have the extra flag set so
> > that this is handled as a build-time failure instead of a run-time failure. 
> > You can still see the problem on a Linux system by running 'ldd -d -r
> > /path/to/libsmbclient.so' on a resulting build; those undefined symbols will
> > cause libsmbclient to fail to load at run time, unless the calling
> > application happens to already be linked against libz.

> When I do this on my standard build (no special linker
> flags) on a SLES10, "ldd -d -r libsmbclient.so" shows

>         libz.so.1 => /lib64/libz.so.1 (0x00007f4c82f2f000)

> Is there anything wrong with that?

No, that looks fine, but it doesn't match what happens on Debian and also
doesn't appear to match what's written in the Makefile:

$(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_SYMS) @LIBTALLOC_SHARED@ @LIBTDB_SHARED@ @LIBWBCLIENT_SHARED@
	@echo Linking shared library $@
	@$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) \
		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(WINBIND_LIBS) $(LIBS) \
		$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) \
		@SONAMEFLAG@`basename $@`

So libsmbclient isn't being linked with $(ZLIB_LIBS) here.  Perhaps on
SLES10, one of the other libraries you're linking against is already linked
against libz, so it's pulled in indirectly?  (cf. 'objdump -p
libsmbclient.so | grep NEEDED')

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org


More information about the samba-technical mailing list