how to check for a struct in multiple headers?
Hasso Tepper
hasso at kde.org
Fri Mar 31 09:23:24 CEST 2006
Tanner Lovelace wrote:
> On 3/30/06, Benjamin Reed <rangerrick at gmail.com> wrote:
> > I need to make the test for statfs try sys/mount.h, currently I get
> > the following when compiling kdecore:
>
> ---(snip!)---
>
> > What I really want is for HAVE_STRUCT_STATFS to be set if struct
> > statfs is in sys/statfs.h *or* sys/mount.h.
>
> Actually, not even that will work due to how the code is written.
> kmountpoint.cpp has this:
>
> #if defined(HAVE_STRUCT_STATVFS)
> struct statvfs *mounted;
> #elif defined(HAVE_STRUCT_STATFS)
> struct statfs *mounted;
> #endif
>
> So, even if it finds HAVE_STRUCT_STATFS it won't be
> used because HAVE_STRUCT_STATVFS was found first
> and it assumes it will use it, which isn't the case in OS X.
> I just verified that by fixing the test for HAVE_STRUCT_STATFS
> and still having the compile fail. :-(
>
> My guess is we need a test about what type of parameter
> getmntinfo takes. Suggestions?
OK. I think that I'm the one to blame about current situation. I looked at
a lot of pieces of code how statvfs/statfs thingy is solved in them, but
I think that MacOS X is too new platform or I didn't try hard enough.
Can you check this code in kmountpoint.cpp instead, does this one work for
you?
#ifdef ST_RDONLY
struct statvfs *mounted;
#else
struct statfs *mounted;
#endif
regards,
--
Hasso Tepper
KDE Estonian Team
More information about the Kde-buildsystem
mailing list