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

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