[PATCH] build: don't execute statfs and f_fsid checks
abartlet at samba.org
Fri Feb 7 11:25:04 MST 2014
On Fri, 2014-02-07 at 14:59 -0300, Gustavo Zacarias wrote:
> On 02/07/2014 02:51 PM, Andrew Bartlett wrote:
> > The difficulty here is to understand why this code was executed in the
> > first place. It was executed in the autoconf build, and an extensive
> > look into that codebase hasn't made it possible to find the rationale
> > there either.
> > The other frustration is that this check is in a different spot to the
> > other statfs checks (under lib/util), some of which do seem to genuinely
> > need to be run. (It seems to duplicate part of those other tests).
> > In any case, what do you mean when you say it's undefined on some
> > platforms?
> By looking at the statfs manpage (in linux):
On success, zero is returned. On error, -1 is returned, and
errno is set appropriately.
> Nobody knows what f_fsid is supposed to contain (but see below).
Sure, it isn't a firm standard, but where the behaviour is known, it is
> And then there's a whole explanation on what the different *xes do with it.
> For samba 3.6.x at least the test passes thru without explicitly needing
> to execute it, didn't look into 4.0.x but IIRC it was the same case,
> snip from a 3.6.x config.log:
> configure:37221: checking vfs_fileid: checking for statfs() and struct
> configure:37254: result: cross
> So it'll basically assume a default on it if it can't test it.
Yes, but please do not take any comfort from that. I would have very
little comfort in the accuracy of the the choice of cross-compile
default in our autoconf tests. I say this because while this may be the
exception, the typical pattern was to just copy the last similar test,
and modify it. It can't be easily shown that whoever wrote this test
considered this carefully. (The same often applied to the choice of
Adding the the confusion, I added
2a4eaa3241fc4ccb79359ea4e4d511754a84d46b only recently, with
execute=True, in order to make the FreeBSD build match the waf build.
> The same does not happen on 4.1.x, in fact i can't even cache the answer
> for some odd reason and thus is a stumbling block for cross compiling.
Günther and David,
Do you happen to know anything more about this? What do you think we
should do here?
My only thoughts on a way forward are to move this code to
lib/util/wscript_configure, and to then run it on one each of
BSD/Solaris/AIX systems as well as linux, and ensure it still matches
the previous output.
Andrew Bartlett http://samba.org/~abartlet/
Authentication Developer, Samba Team http://samba.org
Samba Developer, Catalyst IT http://catalyst.net.nz/services/samba
More information about the samba-technical