Build of 3.0.11 against Kerberos 1.4 fails with: Compiling smbd/server.c Linking bin/smbd Undefined first referenced symbol in file error_message libsmb/cliconnect.o (symbol belongs to implicit dependency /local/usr/lib/libcom_err.so.3) ld: fatal: Symbol referencing errors. No output written to bin/smbd collect2: ld returned 1 exit status make: *** [bin/smbd] Error 1 Building 3.0.11 against Kerberos 1.3.6 succeeds.
jeremy, want to look at this one sometime? Thanks.
rpm -qa | grep krb krb5-1.4-4 krb5-devel-1.4-4 Compiling smbd/server.c Linking bin/smbd Compiling nmbd/asyncdns.c And Samba 3.0.11 builds well in this environment. We had problems with Samba builds caused by name space violation in the krb5-devel package (/usr/include/gssapi/gssapi.h). There are several defines which aren't needed by krb5 self.
I've checked in a fix for the HAVE_REGEX_H bug with gssapi.h It's available at http://www.samba.org/~jerry/patches/post-3.0.11/clitar.patch I don't have a solaris box but this looks like either (a) the solaris linker doesn't bring in the needed dependent libraries for the krb5 libs, or (b) you did not use the builtin MIT libcom_err.
Setting HAVE_REGEX_H in /usr/include/gssapi/gssapi.h is a name space violation. It happend by accident and will be fixed by MIT Kerberos. We currently use a patched Makefile.in to reduce the namespace polution. It's still my opinion that this isn't a Samba bug. But as we never set HAVE_REGEX_H while calling configure it migth be best to remove all the #if HAVE_REGEX_H.
The HEAV_REGEX_H ifdefs in clitar have been already been removed. That was what my patch did. The issue here is a linking on that may be specific to the solaris ld (which I always have problems with). Glenn, what compiler and linker are you using ?
I am using gcc 3.4.3 and the Sun version of ld. I've never had any luck getting the gnu version of ld to work on Solaris. It's Solaris 8 BTW. dormouse? what `which ld` /usr/ccs/bin/ld: SunOS 5.8 Generic 109147-30 Jun 2004 dormouse? gcc -v Reading specs from /local/usr/gnu/gcc/3.4.3/bin/../lib/gcc/sparc-sun-solaris2.8/3.4.3/specs Configured with: /local/usr/src/gnu/gcc/gcc-3.4.3/configure --prefix=/local/usr --with-local-prefix=/local/usr Thread model: posix gcc version 3.4.3 dormouse?
I always rename the sun ld to /usr/ccs/bin/ld.sun or something. And then add a link from /usr/bin/ld to the GNU ld binary. Can you try this and retest against GNU ld ?
Using binutils-2.15 I get a segfault in gnu ld. I've never had the time or ambition to track this down. Ambition is necessary to gain the competance to do the task. - Glenn dormouse$ make Using FLAGS = -I/local/usr/include -O -Iinclude -I/local/usr/src/samba/samba-3.0.11/source/include -I/local/usr/src/samba/samba-3.0.11/source/ubiqx -I/local/usr/src/samba/samba-3.0.11/source/smbwrapper -I. -I/local/usr/include -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64 -I/local/usr/src/samba/samba-3.0.11/source LIBS = -lsendfile -lsec -lresolv -lsocket -lnsl -liconv LDSHFLAGS = -G -L/local/usr/lib -lthread LDFLAGS = -L/local/usr/lib -lthread Linking bin/nmbd collect2: ld terminated with signal 11 [Segmentation Fault], core dumped make: *** [bin/nmbd] Error 1 dormouse$
(In reply to comment #3) > I've checked in a fix for the HAVE_REGEX_H bug with gssapi.h > It's available at http://www.samba.org/~jerry/patches/post-3.0.11/clitar.patch > > I don't have a solaris box but this looks like either > (a) the solaris linker doesn't bring in the needed dependent > libraries for the krb5 libs, or (b) you did not use the > builtin MIT libcom_err. This patch works on RHAS with Samba v3.0.11 and Kerberos v1.4 both compiled from source. Kerberos compile line: ./configure --program-prefix= --prefix=/usr --exec-prefix=/usr \ --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc \ --datadir=/usr/share --includedir=/usr/include \ --libdir=/usr/lib --libexecdir=/usr/libexec \ --localstatedir=/var --sharedstatedir=/usr/com \ --mandir=/usr/share/man --infodir=/usr/share/info CC=gcc \ CFLAGS="-O2 -g -pipe -march=i386 -mcpu=i686 -I/usr/include/et -fPIC" \ LDFLAGS="" CPPFLAGS="-I/usr/include/et" --enable-shared \ --enable-static --bindir=/usr/kerberos/bin \ --mandir=/usr/kerberos/man --sbindir=/usr/kerberos/sbin \ --datadir=/usr/kerberos/share --localstatedir=/var/kerberos \ --with-krb4 --with-system-et --with-system-ss --without-tcl \ --enable-dns After krb5 install and the clitar.c patch was applied (well, I just removed the lines in the patch to remove) I used a configure line of: ./configure --program-prefix= --prefix=/usr --exec-prefix=/usr \ --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc \ --datadir=/usr/share --includedir=/usr/include \ --libdir=/usr/lib --libexecdir=/usr/libexec \ --localstatedir=/var --sharedstatedir=/usr/com \ --mandir=/usr/share/man --infodir=/usr/share/info --with-acl-support --with-automount \ --with-codepagedir=/usr/share/samba/codepages --with-fhs \ --with-libsmbclient --with-lockdir=/var/cache/samba --with-pam \ --with-pam_smbpass --with-piddir=/var/run \ --with-privatedir=/etc/samba --with-quotas --with-smbmount \ --with-swatdir=/usr/share/swat --with-syslog --with-utmp \ --with-vfs --without-smbwrapper --with-ads --with-winbind \ --with-krb5 It compiled just fine, with on a few type-ing errors. Following is the snippet from the compile: client/client.c: In function `do_get': client/client.c:699: warning: passing arg 4 of `cli_getattrE' from incompatible pointer type client/client.c: In function `do_put': client/client.c:1075: warning: passing arg 4 of `cli_getattrE' from incompatible pointer type Compiling client/clitar.c Compiling lib/readline.c Linking bin/smbclient As you can see, it is the new version of Kerberos that did this.
all known compile issues with MIT krb 14. fixed in 3.0.12pre1
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.