Hi Jens,

Jens Elkner wrote:

1) For SHLD the LDSHFLAGS parameter is used. It should get set to -shared.

And that is exactly the problem! It is set only to "-shared" and not to
"-shared $LDFLAGS". So if I do not apply the Makefile.in patch
I get for build:

Linking libsmbclient shared library bin/libsmbclient.so
gcc  -shared -o bin/libsmbclient.so libsmb/libsmbclient.po lib/charcnv.po lib/charset.po lib/debug.po lib/fault.po lib/getsmbpass.po lib/interface.po lib/kanji.po lib/md4.po lib/interfaces.po lib/pidfile.po lib/replace.po lib/signal.po lib/system.po lib/sendfile.po lib/time.po lib/ufc.po lib/genrand.po lib/username.po lib/util_getent.po lib/access.po lib/smbrun.po lib/bitmap.po lib/crc32.po lib/snprintf.po lib/wins_srv.po lib/util_str.po lib/util_sid.po lib/util_unistr.po lib/util_file.po lib/util.po lib/util_sock.po lib/util_sec.po smbd/ssl.po lib/talloc.po lib/hash.po lib/substitute.po lib/fsusage.po lib/ms_fnmatch.po lib/select.po lib/error.po lib/messages.po lib/pam_errors.po nsswitch/wb_client.po nsswitch/wb_common.po tdb/tdb.po tdb/spinlock.po tdb/tdbutil.po  libsmb/clientgen.po libsmb/cliconnect.po libsmb/clifile.po libsmb/clirap.po libsmb/clierror.po libsmb/climessage.po libsmb/clireadwrite.po libsmb/clilist.po libsmb/cliprint.po libsmb/clitrans.po libsmb/clisecdesc.!
po libsmb/clidgram.po libsmb/namequery.po libsmb/nmblib.po libsmb/clistr.po libsmb/nterr.po libsmb/smbdes.po libsmb/smbencrypt.po libsmb/smberr.po libsmb/credentials.po libsmb/pwd_cache.po libsmb/clioplock.po libsmb/errormap.po libsmb/doserr.po libsmb/passchange.po libsmb/unexpected.po rpc_parse/parse_prs.po rpc_parse/parse_sec.po rpc_parse/parse_misc.po libsmb/namecache.po param/loadparm.po param/params.po  ubiqx/ubi_BinTree.po ubiqx/ubi_Cache.po ubiqx/ubi_SplayTree.po ubiqx/ubi_dLinkList.po ubiqx/ubi_sLinkList.po ubiqx/debugparse.po -lacl -lcups  -lnsl \
-Wl,-soname=`basename bin/libsmbclient.so`.0

/usr/bin/ld: cannot find -lacl
collect2: ld returned 1 exit status
make: *** [bin/libsmbclient.so] Error 1

You are right, $(LDFLAGS) is missing for libsmbclient.
I think the correct patch would be to add the missing $(LDFLAGS) in Makefile.in only where it is missing:
----------------------------------
--- Makefile.in.orig 2002-09-20 21:10:45.000000000 +0200
+++ Makefile.in 2003-01-05 23:15:22.000000000 +0100
@@ -645,7 +645,7 @@

bin/libsmbclient.@SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
@echo Linking libsmbclient shared library $@
- @$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LIBS) \
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LDFLAGS) $(LIBS) \
@SONAMEFLAG@`basename $@`.$(LIBSMBCLIENT_MAJOR)

bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS) bin/.dummy

----------------------------------
I guess nobody ever had this problem before and complained loud enough about it :-)

2) cups-config is coming from the cups installation. It's created when you run
configure at the cups source. You can specify the directories there. If you install
cups from a rpm it should also be correct.

And that�s exactly the point. "if you install it" - I do not want to
install it on the system, where smb is build ... Furthermore, why should
the smb stuff linked against the same libs, libcups was linked to?
Perhaps cups has (not yet) its own mechanism, to find the libs it needs ...

Look at
http://cvs.samba.org/cgi-bin/cvsweb/samba/source/configure.in.diff?r1=1.130.4.144&r2=1.130.4.145&only_with_tag=SAMBA_2_2&f=h
There you see the way configure.in was before cups-config was used. You see it's not just looking for libcups and cups.h ...

...Juergen



Reply via email to