[Fwd: [Patch] Configure broken for Solaris 2.6 (PR#12014)]

David Collier-Brown davecb at Canada.Sun.COM
Thu Dec 17 13:56:25 GMT 1998


Daniel Eischen wrote:
> Yes, we are using gcc.  Hmm, but now that you mention it, the
> gcc we were using was built for Solaris 2.5, not Solaris 2.6.
> And the Solaris 2.6 system is also patched a recent Sun
> recommended 2.6 patch cluster thingy.
> 
> Subsequent to reporting this problem, I have rebuilt GCC
> (2.8.1) for Solaris 2.6.
> 
> Looking at the Sun include files, it still looks like we
> should be using LARGEFILE64_x instead of LARGEFILE_x.

	Righto: I think I see what's happening...
	
	Samba explicitly calls statvfs64() function, and
	the sun implementation triggered by 
	-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
	only makes statvfs() visible, using the 64-bit
	sizes of the various variables.

	I **think** this means we should check for
	a native statvfs with -D_LARGEFILE_SOURCE
	and -D_FILE_OFFSET_BITS=64, and see if it
	exists. 
	
	[explanation:
	_LARGEFILE_SOURCE really means "migrate all
	32-bit calls to 64-bit,. without changing the
	function names or data structure names, just
	as if you were running on a machine with
	longs and pointers of 64 bits"

	
	_LARGEFILE64_SOURCE means "provide xxx64() 
	functions and structs, so you can mix standard
	32-bit calls with 64-bit calls".

	The latter is, in my considered (ie, not humble at all)
	opinion, a usefull kludge, suitable for a quick
	hack around a problem.  Not for real code!]

	I loked at my 2.7 system, it ends with a sucessful
	compile-check of statfvs:
----
configure:7292: checking how to get filesystem space usage
configure:7299: checking statvfs64 function (SVR4)
configure:7351: checking statvfs function (SVR4)
configure:7648: cc -o conftest -O   conftest.c -lsocket -lnsl -ldl 
-lpam 1>&5
#cc:/export/home/local-davecb/projects/personal/samba/samba/source:-o
conftest -
O conftest.c -lsocket -lnsl -ldl -lpam
/opcom/on998-tools/SUNWspro/SC4.2/bin/../SC4.2/bin/acomp -i conftest.c
-o /tmp/a
compAAAngBYF_ -r /tmp/acompBAA0V07OO -H -Qy -D__SunOS_5_7
-D__SUNPRO_C=0x420 -D_
_SVR4 -D__unix -D__sun -D__sparc -D__BUILTIN_VA_ARG_INCR -Xa -Dunix
-Dsun -Dspar
c -D__RESTRICT -I/opcom/on998-tools/SUNWspro/SC4.2/SC4.2/include/cc -O2
"-g/opco
m/on998-tools/SUNWspro/SC4.2/bin/../SC4.2/bin/cc -H -xtime -O -lsocket
-lnsl -ld
l -lpam -c "
./confdefs.h
././tests/summary.c
        /usr/include/stdio.h
                /usr/include/sys/feature_tests.h
                        /usr/include/sys/isa_defs.h
                /usr/include/sys/va_list.h
                /usr/include/stdio_tag.h
                /usr/include/stdio_impl.h
                        /usr/include/sys/isa_defs.h
acomp           real    0.0     user    0.0     sys     0.0
---
Note that none of the -D options are set: this machine is
64-bit already, and sysconf knows that.

Next I configure on a 2.6 32-bit system with Sun cc:
it shudders to a halt after...
----
checking how to get filesystem space usage
checking statvfs64 function (SVR4)... no
checking statvfs function (SVR4)... no
checking for 3-argument statfs function (DEC OSF/1)... no
checking for two-argument statfs with statfs.bsize member (AIX,
4.3BSD)... no
checking for four-argument statfs (AIX-3.2.5, SVR3)... no
checking for two-argument statfs with statfs.fsize member (4.4BSD and
NetBSD)... no
checking for two-argument statfs with struct fs_data (Ultrix)... no
checking configure summary
configure: error: summary failure. Aborting config
---

In the config.log, this was from the compile line
---
configure:9092: cc -o conftest -O  -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64  conftest.c -lsec -lsocket -lnsl  -lpam 1>&5
---

I think the previous compile (of statvf()) should have
succeeded.  I'll look at it next and report.

--dave


More information about the samba-technical mailing list