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

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Mon Dec 10 11:05:54 UTC 2018

On 2018-12-10 11:56, Nick Gasson (Arm Technology China) wrote:
> Hi,
> Any update on this one? Or do we want to give up on it until JDK-8165620
> is implemented?
I think Alan reviewed it as OK with just a minor fix, and offered to 
sponsor it for you.

Then the discussion started about some major changes, rewriting 
configure to provide individual support for every possible system 
function... I recommend that you go with the fix that solves your problem.

In fact, I disagree with the premise of JDK-8165620. I think it's better 
to do what you're doing here, to update the source code, so that it is 
clear that we know that we're handing 64-bit data.

> Thanks,
> Nick
> On 28/11/2018 11:33, Martin Buchholz wrote:
>> 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
>> <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