RFR: 8214077: test java/io/File/SetLastModified.java fails on ARM32

Martin Buchholz martinrb at google.com
Wed Nov 28 03:33:26 UTC 2018


On Tue, Nov 27, 2018 at 7:25 PM, Nick Gasson <Nick.Gasson at 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.


More information about the build-dev mailing list