Hi Derek, This platform's "sys/stat.h" implementation in this case defines macros for "stat", "fstat" and "lstat" to be the tokens "stat64", "fstat64" and "lstat64" respectively. My analysis of "sys/stat.h" relevent section is below.
These macro definitions are in effect when "struct stat" definition is encountered which becomes "struct stat64". Line 187 of "lib/glob.c" redefines "stat64" as: # define stat64 stat which causes later "struct stat" references to be become "struct stat64" which becomes "struct stat" which is an empty forward declaration at best. It seems defining macros for "stat", "fstat", "lstat", "stat64", "fstat64" and "lstat64" on this platform is a risky proposition. Conrad /* * large file compilation environment setup */ #if !defined(_LP64) && _FILE_OFFSET_BITS == 64 // This is true #error Die #ifdef __PRAGMA_REDEFINE_EXTNAME // This is false #error Die #pragma redefine_extname fstat fstat64 #pragma redefine_extname stat stat64 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ defined(_XPG4_2) || defined(__EXTENSIONS__) // This is false #error Die #pragma redefine_extname lstat lstat64 #endif #else /* __PRAGMA_REDEFINE_EXTNAME */ // This is true #error Die #define fstat fstat64 #define stat stat64 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ defined(_XPG4_2) || defined(__EXTENSIONS__) // This is true #error Die #define lstat lstat64 #endif #endif /* __PRAGMA_REDEFINE_EXTNAME */ #endif /* !_LP64 && _FILE_OFFSET_BITS == 64 */ _______________________________________________ Bug-cvs mailing list Bug-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/bug-cvs