[12] (AIX) 8207744: Clean up inconsistent use of opendir/closedir versus opendir64/closedir64

Baesken, Matthias matthias.baesken at sap.com
Tue Aug 7 10:12:29 UTC 2018


Hi Brian, small remark from my side ,  looks like you changed in

src/java.base/unix/native/libjava/TimeZone_md.c

src/java.base/unix/native/libjava/childproc.c

and

src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c

at some places  dirent64  /  readdir64   to   dirent  /  readdir
in the linux/solaris  coding.

for example

TimeZone_md.c

122 static char *
123 findZoneinfoFile(char *buf, size_t size, const char *dir)
124 {
125     DIR *dirp = NULL;
126     struct stat statbuf;
127     struct dirent *dp = NULL;.


Was it intended  to  change for linux/solaris ?

Best regards , Matthias


From: Brian Burkhalter <brian.burkhalter at oracle.com>
Sent: Samstag, 4. August 2018 00:08
To: Baesken, Matthias <matthias.baesken at sap.com>
Cc: core-libs-dev at openjdk.java.net; Langer, Christoph <christoph.langer at sap.com>; Simonis, Volker <volker.simonis at sap.com>; Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
Subject: Re: [12] (AIX) 8207744: Clean up inconsistent use of opendir/closedir versus opendir64/closedir64

HI Matthias,

I think I fixed the dirent problem: thanks for pointing it out.

http://cr.openjdk.java.net/~bpb/8207744/webrev.03/

The usual builds passed and tests are running.

I think that there is some _ALLBSD_SOURCE cruft in UnixNativeDispatcher.c which could be cleaned up but we'll leave that for another day.

Thanks,

Brian

On Aug 2, 2018, at 11:57 PM, Baesken, Matthias <matthias.baesken at sap.com<mailto:matthias.baesken at sap.com>> wrote:


looks  like the  function

struct dirent64 *readdir64 (DIR64 *DirectoryPointer);

returns   dirent64*   ( according to https://www.ibm.com/support/knowledgecenter/no/ssw_aix_72/com.ibm.aix.basetrf1/opendir.htm   )

and  some of  the files below  still have  dirent* on AIX  ( at some places it is redefined ).

For example  :

http://cr.openjdk.java.net/~bpb/8207744/webrev.02/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c.frames.html

508 jint unix_getChildren(JNIEnv *env, jlong jpid, jlongArray jarray,
509                       jlongArray jparentArray, jlongArray jstimesArray) {
510     DIR* dir;
511     struct dirent* ptr;


Not sure if this is really an issue  in "real life"  ....



More information about the core-libs-dev mailing list