From ed3942d1accf893b2c375837ee2f3e8cf6808cf9 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Fri, 22 Feb 2002 19:36:47 +0000 Subject: I was confusing the effects of _LARGEFILE_SOURCE with those of _FILE_OFFSET_BITS regarding aliasing of the *64 funcs. :-( Hopefully, this version is correct... --- include/features.h | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) (limited to 'include') diff --git a/include/features.h b/include/features.h index 580ed3ee6..9e08de607 100644 --- a/include/features.h +++ b/include/features.h @@ -85,12 +85,6 @@ but are implied by the other feature-test macros defined (or by the lack of any definitions) are defined by the file. */ -/* First, record if user requested some form of large file support. */ -#if defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE) \ - || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64) -# define __USER_REQUESTED_LFS_OPTION 1 -#endif - /* Undefine everything, so we get a clean slate. */ #undef __USE_ISOC99 #undef __USE_POSIX @@ -338,31 +332,35 @@ /* Make sure users large file options agree with uClibc's configuration. */ #ifndef __UCLIBC_HAVE_LFS__ + /* If uClibc was built without large file support, output an error if - * large file functions are requested. */ -#ifdef __USER_REQUESTED_LFS_OPTION -#error uClibc was configured without large file support... -/* Since _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE can be turned by - * other options, disable them with a warning if they were enabled. */ -#elif defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE) -#warning uClibc was configured without large file support... + * and 64-bit file offsets were requested, output an error. + * NOTE: This is probably incorrect on a 64-bit arch... */ +#ifdef __USE_FILE_OFFSET64 +#error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, \ +uClibc was built without large file support enabled. #endif -#undef _LARGEFILE_SOURCE -#undef _LARGEFILE64_SOURCE -#undef _FILE_OFFSET_BITS -#undef __USE_LARGEFILE -#undef __USE_LARGEFILE64 -#undef __USE_FILE_OFFSET64 + +/* If uClibc was built without large file support and _LARGEFILE64_SOURCE + * is defined, undefine it. */ +#if defined(_LARGEFILE64_SOURCE) +#undef _LARGEFILE64_SOURCE +#undef __USE_LARGEFILE64 +#endif + /* If we're actually building uClibc with large file support, - * define __USE_LARGEFILE64 only. */ + * define __USE_LARGEFILE64 and __USE_LARGEFILE. */ #elif defined(_LIBC) -#undef _LARGEFILE_SOURCE -#undef _LARGEFILE64_SOURCE -#undef _FILE_OFFSET_BITS -#undef __USE_LARGEFILE -#undef __USE_LARGEFILE64 -#undef __USE_FILE_OFFSET64 -#define __USE_LARGEFILE64 1 +#undef _LARGEFILE_SOURCE +#undef _LARGEFILE64_SOURCE +#undef _FILE_OFFSET_BITS +#undef __USE_LARGEFILE +#undef __USE_LARGEFILE64 +#undef __USE_FILE_OFFSET64 +#define _LARGEFILE_SOURCE 1 +#define _LARGEFILE64_SOURCE 1 +#define __USE_LARGEFILE 1 +#define __USE_LARGEFILE64 1 #endif /* Some nice features only work properly with ELF */ -- cgit v1.2.3