[forwarding to gnulib] On 07/11/2018 02:00 PM, Barath Aron wrote: > Hello, > > I have a little issue around the detection of the getfsstat() function. > > According to multiple manuals from different BSD versions [1,2], the > signature of the BSD's getfsstat() is this: > int getfsstat(struct statfs *buf, long bufsize, int mode); > > Note, it refers to 'struct statfs'. The statfs structure contains a > field that will be interesting in the following [3,4]: > > struct statfs { > ... > char f_fstypename[MFSNAMELEN]; /* filesystem type name */ > ... > }; > > The configure script tries to detect the getfsstat() function but > failes, because: > configure:31706: checking for struct fsstat.f_fstypename > configure:31706: /path/to/some-cross-gcc -c conftest.c >&5 ___________________^^^^^^^^^^^^^^^^^^^^^^^
What environment did you use? > conftest.c: In function 'main': > conftest.c:473:22: error: storage size of 'ac_aggr' isn't known > static struct fsstat ac_aggr; > ^~~~~~~ > configure:31706: $? = 1 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "GNU findutils" > | #define PACKAGE_TARNAME "findutils" > | #define PACKAGE_VERSION "4.6.0" > ... > | int > | main () > | { > | static struct fsstat ac_aggr; > | if (ac_aggr.f_fstypename) > | return 0; > | ; > | return 0; > | } > > However, the used type in the failed program was 'struct fsstat'. By the > definition of 'struct statfs' found in the BSD manuals, does have a > field 'f_fstypename'. But the name is different. > > My goal is to compile the findutils by supplying the BSD's getfsstat() > API to get mountlist. For now, I do not want to implement the Linux's > <mntent.h> stuff, I like the BSD approach. > > So, my questions are: > a) Why the configure use a different type name? > b) If it is intentional, then where that type is defined? Unfortunately, > I did not found anything. > c) Is this branch of the configure still maintained, or it is abandoned? > The related code that use this API is also still maintained? > > Aron > > [1] https://man.openbsd.org/getfsstat.2 > [2] https://www.freebsd.org/cgi/man.cgi?query=getfsstat&sektion=2 > [3] https://man.openbsd.org/statfs.2 > [4] https://www.freebsd.org/cgi/man.cgi?query=statfs&sektion=2 These seem to be questions for upstream gnulib. Have a nice day, Berny