Volker, The serviceability-related changes look ok to me (not a Reviewer).
/Staffan On 16 sep 2013, at 21:30, Volker Simonis <volker.simo...@gmail.com> wrote: > Resending this to more lists as requested by Alan Bateman with the kind > request to anybody to review the parts for which he feels responsible:) > > For those not up to date, this change is part of the ongoing PowerPC/AIX > Porting Project: > http://openjdk.java.net/projects/ppc-aix-port > https://wiki.openjdk.java.net/display/PPCAIXPort > http://openjdk.java.net/jeps/175 > > Please send reviews to all currently included recipients. > > Thank you and best regards, > Volker > > > ---------- Forwarded message ---------- > From: Volker Simonis > Date: Monday, September 16, 2013 > Subject: RFR(L): 8024854: Basic changes and files to build the class library > on AIX > To: "ppc-aix-port-...@openjdk.java.net" <ppc-aix-port-...@openjdk.java.net>, > Java Core Libs <core-libs-dev@openjdk.java.net> > > > Hi, > > could you please review the following webrev which contains the basic changes > and files needed in the 'jdk' repository in order to build the OpenJDK on AIX: > > http://cr.openjdk.java.net/~simonis/webrevs/8024854 > This change together with "8024265: Enable new build on AIX (jdk part)" > allows it to configure and completely build the staging repository on AIX 5.3 > and 7.1 with the following command: > > configure --with-boot-jdk=<jdk-image> --with-jvm-variants=core > --with-jvm-interpreter=cpp --with-cups-include=/opt/freeware/include > --x-includes=/opt/freeware/include > > Below you can find the changes and additions I've done, sorted by file. Most > of them are just additions which are only active during the AIX build anyway > or simple changes where AIX has been added to conditions which already check > for Linux and/or Solaris. The files with the biggest changes which you're > probably want to look on more thoroughly are > 'src/solaris/native/java/net/NetworkInterface.c' and > 'src/solaris/native/sun/nio/ch/Net.c' altough they shouldn't change anything > on the current OpenJDK platforms as well. > > Notice that there are still some files and some functionality missing from > the current change (notably NIO) but it still yields a running JDK which can > execute "HelloWorld" on the command line and as AWT application. I've > intentionally tried to keep this initial change as simple as possible (with > respect tot shared changes) in order to get it reviewed as fast as possible. > The missing parts can then be added later on, grouped by logical topics, to > simplify the review process. > Thank you and best regards, > > Volker > > src/share/bin/jli_util.h > > Define JLI_Lseek on AIX. > src/share/lib/security/java.security-aix > > Provide default java.security-aix for AIX. > src/share/native/sun/awt/medialib/mlib_sys.c > > malloc always returns 8-byte aligned pointers on AIX as well. > src/share/native/sun/awt/medialib/mlib_types.h > > Add AIX to the list of known platforms. > src/share/native/sun/font/layout/KernTable.cpp > > Rename the macro DEBUG to DEBUG_KERN_TABLE because DEBUG is too common and > may be defined in other headers as well as on the command line and xlc bails > out on macro redefinitions with a different value. > src/share/native/sun/security/ec/impl/ecc_impl.h > > Define required types and macros on AIX. > src/solaris/back/exec_md.c > > AIX behaves like Linux in this case so check for it in the Linux branch. > src/solaris/bin/java_md_solinux.c, > src/solaris/bin/java_md_solinux.h > > On AIX LD_LIBRARY_PATH is called LIBPATH > Always use LD_LIBRARY_PATH macro instead of using the string > "LD_LIBRARY_PATH" directly to cope with different library path names. > Add jre/lib/<arch>/jli to the standard library search path on AIX because the > AIX linker doesn't support the -rpath option. > Replace #ifdef __linux__ by #ifndef __solaris__ because in this case, AIX > behaves like Linux. > src/solaris/classes/sun/awt/fontconfigs/aix.fontconfig.properties > > Provide basic fontconfig.propertiesfor AIX. > src/solaris/classes/java/lang/UNIXProcess.java.aix, > src/solaris/classes/sun/tools/attach/AixAttachProvider.java, > src/solaris/classes/sun/tools/attach/AixVirtualMachine.java > > Provide AIX specific Java versions, mostly based on the corresponding Linux > versions. > src/solaris/demo/jvmti/hprof/hprof_md.c > > Add AIX support. AIX mostly behaves like Linux, with the one exception that > it has no dladdr functionality. > Implement dladdr functionality for AIX. > src/solaris/native/com/sun/management/UnixOperatingSystem_md.c > > Adapt for AIX (i.e. use libperfstat on AIX to query OS memory). > src/solaris/native/common/jdk_util_md.h > > Add AIX definitions of the ISNANF and ISNAND macros. > src/solaris/native/java/io/io_util_md.c > > AIX behaves like Linux in this case so check for it in the Linux branch. > src/solaris/native/java/net/NetworkInterface.c > > Add AIX support into the Linux branch because AIX mostly behaves like AIX for > IPv4. > AIX needs a special function to enumerate IPv6 interfaces and to query the > MAC address. > src/solaris/native/java/net/PlainSocketImpl.c > > On AIX (like on Solaris) setsockopt will set errno to EINVAL if the socket is > closed. The default error message is then confusing. > src/solaris/native/java/net/linux_close.c, > src/share/native/java/net/net_util.c > > Also use the file and socket wrappers on AIX. > Add initialization of some previously uninitialized data structures. > On AIX we don't have __attribute((constructor)) so we need to initialize > manually (from JNI_OnLoad() in 'src/share/native/java/net/net_util.c' > src/solaris/native/java/net/net_util_md.h > > AIX needs the same workaround for I/O cancellation like Linux and MacOSX. > src/solaris/native/java/util/TimeZone_md.c > > Currently on AIX the only way to get the platform time zone is to read it > from the TZ environment variable. > src/solaris/native/sun/awt/awt_LoadLibrary.c > > There's no dladdr on AIX, but we can use the implementation from the HotSpot > in this case because libjvm.so will be always loaded before the AWT. > src/solaris/native/sun/awt/fontpath.c > > Add AIX specific fontpath settings and library search paths for > libfontconfig.so. > src/solaris/native/sun/java2d/x11/X11SurfaceData.c > > Only define MIN and MAX if they're not already defined because xlc on AIX > fails on macro redefinitions. > src/solaris/native/sun/java2d/x11/XRBackendNative.c > > Handle AIX like Solaris. > src/solaris/native/sun/nio/ch/Net.c > > Add AIX-specific includes and constant definitions. > On AIX "socket extensions for multicast source filters" support depends on > the OS version. Check for this and throw appropriate exceptions if it > requested but not supported. This is needed to pass > JCK-api/java_nio/channels/DatagramChannel/DatagramChannel.html#Multicast > src/solaris/native/sun/security/pkcs11/j2secmod_md.c > > Use RTLD_LAZY instead of RTLD_NOLOAD on AIX. > src/solaris/native/sun/tools/attach/AixVirtualMachine.c > > AIX version mostly derived from the corresponding Linux version. >