[Mono-dev] Tweaks needed to get Mono compiling in the Android build environment

Koushik K. Dutta koush at koushikdutta.com
Sun Jan 18 05:50:28 EST 2009

Hi Christian, the failure is occurring at the code seen below in GetDiskSpaceFreeEx:

		ret = statvfs (utf8_path_name, &fsstat);
		isreadonly = ((fsstat.f_flag & ST_RDONLY) == ST_RDONLY);
#elif defined(HAVE_STATFS)
		ret = statfs (utf8_path_name, &fsstat);
		isreadonly = ((fsstat.f_flags & MNT_RDONLY) == MNT_RDONLY);

Bionic does not have the statvfs function, and its statfs struct does not have the f_flags member. It also does not have the the MNT_RDONLY macro/define. Although I can add the macro, nothing can be done about the missing/different structures. So that hole in Bionic is not really patchable unfortunately. However, the fallback implementation of GetDiskSpaceFreeEx works fine... so it's not too huge a deal. My change is forcing it to use the fallback.

Koushik Dutta

-----Original Message-----
From: Christian Prochnow [mailto:cproch at seculogix.de] 
Sent: Sunday, January 18, 2009 2:11 AM
To: Koushik K. Dutta
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Tweaks needed to get Mono compiling in the Android build environment


Koushik K. Dutta schrieb:
> 2.       io.c: Although Android has statfs, there are some missing
> functions and defines that prevent GetDiskSpaceFreeEx from compiling. I
> used the PLATFORM_ANDROID define again to make it fall back to the
> simpler implementation.

could you give me the exact compilation error, maybe i can tweak the
GetDiskFreeSpaceEx implementation to also compile on the Android platform.

Best regards,


Christian Prochnow

SecuLogiX Systems GmbH
Mohriner Allee 28
12347 Berlin


mobile:  +49 (0)177 313 02 57
   fon:  +49 (0)700 SECULOGIX

Geschäftsführer: Christian Prochnow
Handelsregister: B 96491, Amtsgericht Charlottenburg

More information about the Mono-devel-list mailing list