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.
> 

Reply via email to