Hello Eric, Am Donnerstag 08 Oktober 2009 14:26:22 schrieb Eric Boehm: > On Thu, Oct 08, 2009 at 07:13:40AM +0200, Dirk Jakobsmeier wrote: > >>>>> "Dirk" == Dirk Jakobsmeier <dirk.jakobsme...@wige.com> writes: > > Dirk> Hello Eric, yes me again, > > >> because several CFLAGS where missing in Makefile like: > >> > >> bin/smbd: $(BINARY_PREREQS) $(SMBD_OBJ) bin/libtalloc.so > >> bin/libtdb.so bin/libwbclient.so @echo Linking $@ @$(CC) -o $@ > >> $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) \ $(KRB5LIBS) $(DYNEXP) > >> $(PRINT_LIBS) $(AUTH_LIBS) \ $(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) > >> $(DNSSD_LIBS) > > > Dirk> $(AVAHI_LIBS) > > >> \ $(POPT_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \ > >> $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) > >> > >> No CFLAGS where set. So after adding them to every single line > >> in Makefile i just added CFLAGS to LDFLAGS (they are used in > >> every CC line). Then after copying libtalloc and libtdb > >> manually to destination direcotry and trying smbstatus i got: > >> > >> ld.so.1: smbstatus: fatal: relocation error: R_AMD64_PC32: file > >> /usr/local/samba/lib/libtalloc.so: symbol main: value > >> 0x2800148234f does not fit > >> samba@lists.samba.org > >> This error is with all shared libraries i use when i compiled > >> 64bit > > > Dirk> binaries. > > >> So I have to use static version of samba. Or do you have any > >> tip how to work around this problem. The solaris 64bit > >> installation has got both, 32bit and 64bit libraries. Perhaps > >> this is the problem. > > Dirk> i've found the problem after concentrating me on the > Dirk> relocation problem. I've found an article related on gcc and > Dirk> solaris ld and shared libraries. The option -G (shared libs > Dirk> using gcc) does not tell the solaris (/usr/ccs/bin/ld) > Dirk> linker to use share libraries. I have to change this options > Dirk> in the Makefile to -fPIC -shared and then samba compiles > Dirk> using shared libs. So now i will go on with my tests and > Dirk> will tell the list if everythink works. > > Dirk> Thank you for opening my mind to search for the problem with > Dirk> the shared libraries. > > Another hint I can give you when you are building a 64 bit Samba is to > specify the necessary CFLAGS, LDFLAGS when you run configure. > > Here's how I run configure when building with the gcc compiler. > > I create a small shell script called 'myconfigure' > > cat myconfigure > CC='gcc' CXX=g++ \ > CPPFLAGS='-D__EXTENSIONS__ -I/usr/local/include > -I/usr/local/openldap/include -I/usr/local/sasl/include > -I/usr/local/kerberos/include -I/usr/local/BerkeleyDB/include > -I/usr/local/openssl/include' \ CFLAGS='-g -m64' \ > LDFLAGS='-L/opt/corp/local/samba/lib -R/opt/corp/local/samba/lib > -R\$$ORIGIN/../lib' \ ../source/configure \ > --prefix=/opt/corp/local/samba \ > --with-libiconv=/usr/local \ > --with-readline=/usr/local \ > --with-ldap \ > --with-krb5=/usr/local/kerberos \ > --with-ads \ > --with-automount \ > --with-libsmbclient \ > --with-acl-support \ > --with-winbind > > You will obviously need to adapt this for your own environment, but I > think you get the idea. You can remove the -R\$$ORIGIN/../lib. I put > all the shared libraries I need in the samba lib directory. That's > there in case I want to run samba from another location. > > If you are using the Sun Studio compiler, here's a slightly different > configuration of samba. The relevant changes are for CC and CFLAGS > > CC='cc' CXX=CC \ > CFLAGS='-g -xarch=v9a' \ > > CC='cc' CXX=CC \ > CPPFLAGS='-D__EXTENSIONS__ -I/usr/local/include' \ > CFLAGS='-g -xarch=v9a' \ > LDFLAGS='-L/opt/corp/local/samba/lib -R/opt/corp/local/samba/lib > -L/usr/local/lib/sparcv9 -R/usr/local/lib/sparcv9 -L/usr/local/lib > -R/usr/local/lib' \ ../source/configure \ > --with-libiconv=/usr/local \ > --with-readline=/usr/local \ > --enable-debug \ > --prefix=/opt/corp/local/samba
i have nearly the same options now and it seems like everything is working. The main problem was the switch -G that should be a -fPIC and -shared one. Many thanks for your informations that helped me a lot. Regards -- Dirk -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/options/samba