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

Nick Gasson Nick.Gasson at arm.com
Fri Nov 30 06:53:05 UTC 2018


Hi Alan, Martin,

Do you want me to make any more changes to this patch, or is it OK to go in with just the modified #ifdef?

Thanks,
Nick

From: Martin Buchholz <martinrb at google.com>
Sent: 28 November 2018 11:33
To: Nick Gasson <Nick.Gasson at arm.com>
Cc: Alan Bateman <Alan.Bateman at oracle.com>; Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com>; build-dev <build-dev at openjdk.java.net>; core-libs-dev at openjdk.java.net; nd <nd at arm.com>
Subject: Re: RFR: 8214077: test java/io/File/SetLastModified.java fails on ARM32



On Tue, Nov 27, 2018 at 7:25 PM, Nick Gasson <Nick.Gasson at arm.com<mailto: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 core-libs-dev mailing list