On Tue, Nov 27, 2018 at 7:25 PM, Nick Gasson <nick.gas...@arm.com> wrote:
> > I missed one thing then looking at this. In TimeZone_md.c it should be > > #ifdef MACOSX rather than #ifndef. I can sponsor the change for you but > > I need to change this one line before pushing. > > Hi Alan, > > Yes feel free to modify it. I think looking at the at other files > with these #defines more closely, is it the case that the #ifndef > MACOSX check is only required for statvfs64? As in > e.g. UnixNativeDispatcher.c. So TimeZone_md.c should look like > this: > > #if defined(_ALLBSD_SOURCE) > #define stat64 stat > #define lstat64 lstat > #define fstat64 fstat > #endif > > I don't have access to any OS X machines to test unfortunately. > > But I wonder if a better way to handle this is to check for the > presence of the stat64 functions in the configure script, and > then we could just write something like this, which would be a > lot clearer: > > #if !defined(HAVE_STAT64) > #define stat64 stat > #endif > The best way is to implement https://bugs.openjdk.java.net/browse/JDK-8165620 "Entire JDK should be built with -D_FILE_OFFSET_BITS=64" but yes, another good way is to do as you suggest, have configure define HAVE_XXXX for all known functions with a 64-bit variant and then put them into a header file with proper ifdefs for platforms that don't have them. You could also "simply" add #define _FILE_OFFSET_BITS 64 but you have to do it for cliques of files that share ambiguously sized data simultaneously.