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:
> 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.
> 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
>> #if defined(_ALLBSD_SOURCE)
>> #define stat64 stat
>> #define lstat64 lstat
>> #define fstat64 fstat
>> 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
>> The best way is to implement
>> "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
>> 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