[12] (AIX) 8207744: Clean up inconsistent use of opendir/closedir versus opendir64/closedir64
Brian Burkhalter
brian.burkhalter at oracle.com
Thu Aug 2 23:16:12 UTC 2018
Hi Matthias,
I went back through all this code and looked at the IBM documentation you sent and man pages on Linux, macOS, and Solaris trying to get some consistency. This is what I came up with:
http://cr.openjdk.java.net/~bpb/8207744/webrev.02/
It built successfully on our usual Linux, macOS, and Solaris targets. The Windows build is still running and tests on the other systems have begun. We’ll see how it turns out.
It is not unlikely that there is some historical stuff here that I am ignorant of or something specific to these functions which this change would break, so it would be good to hear from someone better versed or with some historical context. In particular the last comment in [1] by Martin (echoed in lines 105-106 of [2]) would be worth hearing about. I don’t see that the function readdir64() still even exists on Solaris.
Thanks,
Brian
[1] https://bugs.openjdk.java.net/browse/JDK-6339493
[2] http://cr.openjdk.java.net/~bpb/8207744/webrev.02/src/java.base/unix/native/libjava/childproc.c-.html
On Aug 2, 2018, at 7:59 AM, Brian Burkhalter <brian.burkhalter at oracle.com> wrote:
> Hi Matthias,
>
> Thanks for the build + test.
>
> I will take a look at what you observed. The whole process is a bit protracted since I cannot build and test but your assistance is appreciated.
>
> Thanks,
>
> Brian
>
> On Aug 2, 2018, at 5:24 AM, Baesken, Matthias <matthias.baesken at sap.com> wrote:
>
>> builds + tests ( with your change included) last night on AIX were good .
>>
>> However while looking into the coding a bit more, I noticed the following :
>>
>> IBM states for AIX :
>>
>> https://www.ibm.com/support/knowledgecenter/no/ssw_aix_72/com.ibm.aix.basetrf1/opendir.htm
>>
>> Note An open directory by opendir64subroutine must always be closed with theclosedir64 subroutine to ensure that the next attempt to open that directory is successful. In addition,
>> it must be operated using the 64-bit interfaces (readdir64, telldir64, seekdir64,rewinddir64, and closedir64) to obtain the correct directory information.
>>
>>
>> However this is currently not the case everywhere : for example I see in
>>
>> http://cr.openjdk.java.net/~bpb/8207744/webrev.01/src/java.base/share/native/libjli/wildcard.c.frames.html
>>
>> a readdir (without 64).
>>
>> Same for
>> http://cr.openjdk.java.net/~bpb/8207744/webrev.01/raw_files/new/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
>
More information about the core-libs-dev
mailing list