<div dir="ltr"><div><div>Hi,<br><br>could you please review the following change:<br><br><a href="http://cr.openjdk.java.net/~simonis/webrevs/8028537">http://cr.openjdk.java.net/~simonis/webrevs/8028537</a>/<br><br>which, together with the changes from "8031581: PPC64: Addons and fixes for AIX to pass the jdk regression tests" and "8031134 : PPC64: implement printing on AIX" enables our our port to pass all but the following 7 jtreg regression tests on AIX (compared to the Linux/x86_64 baseline from <a href="http://www.java.net/download/jdk8/testresults/testresults.html">www.java.net/download/jdk8/testresults/testresults.html</a>):<br>
<br>java/net/Inet6Address/B6558853.java<br>java/nio/channels/AsynchronousChannelGroup/Basic.java (sporadically)<br>java/nio/channels/AsynchronousChannelGroup/GroupOfOne.java<br>java/nio/channels/AsynchronousChannelGroup/Unbounded.java (sporadically)<br>
java/nio/channels/Selector/RacyDeregister.java<br>sun/security/krb5/auto/Unreachable.java (only on IPv6)<span class=""></span><span class=""></span><br><br>The change is only big in the amount of files it touches but rather small in the amount of actual code changes so I flagged it with S/L.<br>
<p>
Most changes simply add AIX as a known platform to the OS detection sections of the various tests. The
are either of the form:
</p>
<pre> case "$OS" in
- SunOS | Linux | Darwin )
+ SunOS | Linux | Darwin | AIX )
PATHSEP=":"
</pre>
<p>or:</p>
<pre> isSolaris=true
;;
+ AIX )
+ OS="AIX"
+ isAIX=true
+ ;;
Windows* )
OS="Windows"
</pre>
<p>
The following explanations only mention test with changes different to the ones above:
</p>
<h4>test/ProblemList.txt</h4>
<ul style="padding-left:1em"><li>
Added three tests which currently don't work on AIX.</li></ul>
<h4>test/com/sun/java/swing/plaf/windows/8016551/bug8016551.java</h4>
<ul style="padding-left:1em"><li>
This test calls <code>JFrame.setDefaultCloseOperation()</code> which is not allowed under the security manager
which is active if the test are running in <code>agentvm</code> mode. So better always run this test
in <code>othervm</code> mode.</li></ul>
<h4>test/com/sun/jdi/PrivateTransportTest.sh</h4>
<ul style="padding-left:1em"><li>
On AIX, we have to use <code>LIBPATH</code> instead of <code>LD_LIBRARY_PATH</code>.</li></ul>
<h4>test/com/sun/nio/sctp/SctpChannel/Util.java<br>
test/com/sun/nio/sctp/SctpMultiChannel/Util.java<br>
test/com/sun/nio/sctp/SctpServerChannel/Util.java</h4>
<ul style="padding-left:1em"><li>
On AIX, we currently haven't implemented SCTP but we nevertheless compile the shared SCTP classes into the runtime
class library. This way the AIX JDK can at least compile SCTP applications altough it can not run them. To support
this scenario, the runtime check for the availability of SCTP has to be extended to
catch <code>UnsatisfiedLinkError</code> and <code>NoClassDefFoundError</code>. <code>UnsatisfiedLinkError</code>
will be thrown the first time when the class <code>SctpChannelImpl</code> will be loaded because it cannot load the
its native support library in the static initialisation section. On the next load attempt of the class,
a <code>NoClassDefFoundError</code> will be thrown because of the previously failed initialisation.</li></ul>
<h4>test/java/net/DatagramSocket/Send12k.java</h4>
<ul style="padding-left:1em"><li>
AIX throws an <code>IOException: Message too long</code> if the message is too
long. <code>DatagramSocket.send()</code> is specified to throw an <code>IOException</code> so better don't be too
specific in the catch clause.</li></ul>
<h4>test/java/nio/file/Files/SBC.java</h4>
<ul style="padding-left:1em"><li>
AIX actually supports symbolic links, but it does not support <code>NOFOLLOW_LINKS</code>, or more exactly
the <code>O_NOFOLLOW</code> flag to the <code>open()</code> system call which is tested here.</li></ul>
<h4>test/java/nio/file/Files/walkFileTree/find.sh</h4>
<ul style="padding-left:1em"><li>
On AIX <code>find -follow</code> may core dump on recursive links without '<code>-L</code>'
(see <a href="http://www-01.ibm.com/support/docview.wss?uid=isg1IV28143">
http://www-01.ibm.com/support/docview.wss?uid=isg1IV28143</a>).</li></ul>
<h4>test/java/util/logging/AnonLoggerWeakRefLeak.sh<br>
test/java/util/logging/LoggerWeakRefLeak.sh</h4>
<ul style="padding-left:1em"><li>
Only treat missing jmap options as warnings and not as errors.</li></ul>
<h4>test/sun/rmi/rmic/newrmic/equivalence/batch.sh</h4>
<ul style="padding-left:1em"><li>
On AIX the <code>diff</code> utility doesn't detect binary files and thus outputs the full diff of different class
files which makes the test fail. Because the generated class files aren’t used or checked anyway we can completely
omit the generation of class files by always using the <code>-nowrite</code> option.</li><li>
Also reformatted the command lines to make the differences more apparent.</li></ul>
<h4>test/tools/launcher/ExecutionEnvironment.java</h4>
<ul style="padding-left:1em"><li>
On AIX, we have to use <code>LIBPATH</code> instead of <code>LD_LIBRARY_PATH</code>.</li><li>
AIX does not support the <code>-rpath</code> linker options so the launchers have to prepend the jdk library path
to <code>LIBPATH</code>.</li></ul>
<h4>test/tools/launcher/Settings.java</h4>
<ul style="padding-left:1em"><li>
On PPC64 we need a bigger stack size.</li></ul><br></div>Thank you and best regards,<br></div>Volker<br><br></div>