RFR(S): 8171906: Changes for 8148023 break AIX build

Langer, Christoph christoph.langer at sap.com
Thu Dec 22 15:19:36 UTC 2016


Hi Goetz,

thanks for your comments.

The platform sorting I'm using usually (in libnet) is Linux, AIX, Solaris, BSD. As we are libnio, are there other wishes ore guidelines?

As for fdopendir in UnixNativeDispatcher: This function is resolved via dlsym to a function pointer. So I thought it's ok to just load fdopendir64 at dlsym time to the fdopendir ptr and we don't have to have #ifdefs in the function where fdopendir is called.

Best regards
Christoph

> -----Original Message-----
> From: Lindenmaier, Goetz
> Sent: Donnerstag, 22. Dezember 2016 16:14
> To: Langer, Christoph <christoph.langer at sap.com>; core-libs-
> dev at openjdk.java.net; nio-dev at openjdk.java.net; ppc-aix-port-
> dev at openjdk.java.net
> Cc: Brian Burkhalter <brian.burkhalter at oracle.com>; Roger Riggs
> <Roger.Riggs at Oracle.com>; Volker Simonis <volker.simonis at gmail.com>
> Subject: RE: RFR(S): 8171906: Changes for 8148023 break AIX build
> 
> Hi Christoph,
> 
> good to get this fixed.
> 
> As you move the solaris section in UnixFileSystem_md.c, you could move it
> behind BSD
> to sort it alphabetically as in other places.
> 
> Why did you choose to define opendir to opendir64, but not so for fdopendir in
> UnixNativeDispatcher.c?
> 
> Looks good otherwise.
> 
> Best regards,
>   Goetz.
> 
> > -----Original Message-----
> > From: Langer, Christoph
> > Sent: Donnerstag, 22. Dezember 2016 16:04
> > To: core-libs-dev at openjdk.java.net; nio-dev at openjdk.java.net; ppc-aix-port-
> > dev at openjdk.java.net
> > Cc: Brian Burkhalter <brian.burkhalter at oracle.com>; Roger Riggs
> > <Roger.Riggs at Oracle.com>; Volker Simonis <volker.simonis at gmail.com>;
> > Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
> > Subject: RFR(S): 8171906: Changes for 8148023 break AIX build
> >
> > Hi,
> >
> >
> >
> > after the fix for 8148023 was pushed, the AIX build is broken. Please review a
> > fix for this:
> >
> >
> >
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8171906
> >
> > Webrev: http://cr.openjdk.java.net/~clanger/webrevs/8171906.0/
> >
> >
> >
> > The build breaks because NAME_MAX is not defined on AIX (just like Solaris, I
> > guess) and we have to define it in UnixFileSystem_md.c.
> >
> >
> >
> > When working on this fix, I spotted some compiler warnings indicating that if
> > one is working with the APIs readdir64 and friends on AIX, one has to use the
> > type DIR64 instead of DIR and to open/close with opendir64/closedir64. I
> guess
> > that's specific to AIX, see IBM's documentation [1].
> >
> > Furthermore, although fdopendir64 is not mentioned there but just fdopendir,
> > both APIs exist from AIX 7.1 onwards (look at <sys/dir.h> on an AIX 7.1). So I
> > added some defines for AIX to redirect the API calls.
> >
> >
> >
> > Thanks and best regards
> >
> > Christoph
> >
> >
> >
> > [1]
> >
> http://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.baset
> > rf1/opendir.htm
> >
> >



More information about the nio-dev mailing list