<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD &java; Project: &jdk; 1.3">
<!ENTITY % navinclude.developers "INCLUDE">
]>
<html>
&header;

<table border="0">
      <tr>
	<td>

<p>
<b>December 19, 2003:</b> <a href="mailto:glewis@FreeBSD.org">Greg
Lewis</a> has released an updated patchset (patchlevel 9) for the JDK 1.3.1
software and updated the ports/java/jdk13 port accordingly. The updated
patches may be found, as usual, at <a href=
"http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
<br>This release contains many fixes and improvements, so please upgrade
before reporting a problem.
</p>

<p>
<b>February 12, 2003:</b> <a href="mailto:glewis@FreeBSD.org">Greg
Lewis</a> has released an updated patchset (patchlevel 8) for the &jdk; 1.3.1
software and updated the ports/java/jdk13 port accordingly. The updated
patches may be found, as usual, at <a href=
"http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
<br>This release is the first release for the JDK 1.3.1 software which
has passed Sun's compatibility tests.  It contains many fixes and 
improvements, so please upgrade before reporting a problem.
</p>

<p>
<b>July 26, 2002:</b> <a href="mailto:glewis@FreeBSD.org">Greg
Lewis</a> has released an updated patchset (patchlevel 7) for the JDK 1.3.1
software and updated the ports/java/jdk13 port accordingly. The updated
patches may be found, as usual, at <a href=
"http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
<br>This release contains many fixes and improvements, so please upgrade
before reporting a problem.
</p>

<p>
<b>February 13, 2002:</b> <a href="mailto:glewis@FreeBSD.org">Greg
Lewis</a> has released an updated patchset (patchlevel 6) for the JDK 1.3.1
software and updated the ports/java/jdk13 port accordingly. The updated
patches may be found, as usual, at <a href=
"http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
<br>This release contains many fixes and improvements, so please upgrade
before reporting a problem.
</p>

<p>
<b>October 16, 2001:</b> <a href="mailto:glewis@FreeBSD.org">Greg
Lewis</a> has released an updated patchset (patchlevel 5) for the JDK 1.3.1
software and updated the ports/java/jdk13 port accordingly. The updated
patches may be found, as usual, at <a href=
"http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
<br>This release contains many fixes and improvements, so please upgrade
before reporting a problem.
</p>

<p>
<b>September 10, 2001:</b> <a href="mailto:glewis@FreeBSD.org">Greg
Lewis</a> has released an updated patchset (patchlevel 4) for the JDK 1.3.1
software and updated the ports/java/jdk13 port accordingly. The updated
patches may be found, as usual, at <a href=
"http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
<br>This release contains many fixes and improvements, so please upgrade
before reporting a problem.
</p>

<p>
<b>August 27, 2001:</b> <a href="mailto:glewis@FreeBSD.org">Greg Lewis</a>
has released a long-awaited port of the JDK 1.3.1 software.  It can now be
built from the ports directory ports/java/jdk13.  It should be noted that all
notes below apply and it is still very much a <strong>developer-only</strong>
release and it is not recommended for use in production environment.
</p>

<p>
<b>July 16, 2001:</b> <a href="mailto:glewis@FreeBSD.org">Greg Lewis</a>
releases patches for developers interested in building a native
FreeBSD JDK&nbsp;1.3.1.  It should be noted that this is very much a
<strong>developer only</strong> release and will not build a working JDK.
The patches are primarily being released as an opportunity for interested
people to be able to contribute to the porting effort without having to
start from scratch.  The patches and some cursory build instructions may be
downloaded at
<A HREF="http://www.eyesbeyond.com/freebsddom/java/jdk13.html">http://www.eyesbeyond.com/freebsddom/java/jdk13.html</a>
</p>

<P><B>September 15, 2000:</B> <a href="mailto:gallatin@cs.duke.edu">Andrew
 Gallatin</a> and <a href="mailto:sean@stat.Duke.EDU">Sean O'Connell</a>
have been working on getting IBM's JDK 1.3 working.  To make them work
on your system, you will have to patch some of your FreeBSD sources.  
They have provided patches based on your version:
<br>
<a href="http://www.cs.duke.edu/~gallatin/linux_sa_siginfo/4.0-release.diff">
4.0-RELEASE</a>
<br><a href="http://people.FreeBSD.org/~patrick/ibmjdk/linux.patch2">
4.0-STABLE</a>
<br><a href="http://www.cs.duke.edu/~gallatin/linux_sa_siginfo/diff">
-CURRENT</a> (pre-SMPng)

<P>To quote Drew's message:
<br><pre>
I've finally gotten the IBM jdk 1.3 working. I haven't tested it very
heavily    AWT stuff seems to finally work though.

Here's an updated patchset to a pre-SMPng -current. The patchset
does the following:

- changes MINSIGSTKSZ from 8192  to 2048
- implements linux_rt_sendsig() & linux_rt_sigreturn()
- implements userland sigtramp code for linux_rt_sigreturn()
- implements linux_to_bsd_sigaltstack & bsd_to_linux_sigaltstack() to
        fix a bug in linux_sigaltstack & to avoid lots of cut-n-paste in
        linux_rt_sigreturn().  This also fixes the "Java HotSpot(TM)
        Client VM warning: cannot uninstall alt signal stack" one sees with
        Sun's 1.3 JDK.
- changes the MAP_STACK flag to MAP_ANON for  LINUX_MAP_GROWSDOWN
        mmaps.  This was the final step in getting it working.  Any VM gurus
        out there want to talk about this one?  There's apparently
        something wrong with autogrowing linux thread stacks[*]

Patches at: http://www.cs.duke.edu/~gallatin/linux_sa_siginfo/diff

[*]The "problem" is the heuristic used by vm_map_growstack() to
determine whether the stack part of the main process stack.  We
currently use:

        is_procstack = addr >= (vm_offset_t)vm->vm_maxsaddr;

where vm->vm_maxsaddr comes from exec_new_vmspace():
        vmspace->vm_maxsaddr = (char *)USRSTACK - MAXSSIZ; 

The IBM JDK's main thread reduces it's stack size to rlim_cur=2040*1024.
It then creates stacks for its threads at addresses which are greater
than vm_maxsaddr but less than the current bottom of the main process
stack as defined by p->p_rlimit[RLIMIT_STACK].rlim_cur. The first time
a thread accesses something requiring this region to grow, it goes
down in flames.
</pre>

<P>And Sean's email:
<pre>
I did a Quick&amp;Dirty MFC of Andrew Gallatin's work on getting the 
IBM Java SDK to work.  I was able to run the appletviewer on one
of the demos and it worked.  I cannot say much more than that.

The patches are all relative to /usr/src (or / since they are
all in sys )

The majority of the patches are for files in /sys/i386/linux.
You should be able to apply the patch; cd to /sys/modules/linux;
type make; kldunload linux; type make install; and kldload linux

There is an additional change which sets the MINSIGSTKSZ to 2048
in sys/sys/signal.h .. this will require a kernel rebuild to
take effect.
</pre>

<P><B>July 18, 2000:</B> <a href="ernst@jollem.com">Ernst de Haan</a>
has done some work getting Sun's Linux JDK 1.3.0b9 to run on
4.0-STABLE. The .java_wrapper file can be found 
<a href="http://people.FreeBSD.org/~patrick/sunjdk/java_wrapper">
here</a>.  (Don't forget to rename it to .java_wrapper)

<P>Ernst's email:
<pre>
Just one more hint: Change the jre/lib/jvm.cfg and put the last line on
top. So you will get:

   -classic
   -hotspot
   -server

I _do_ get one warning, BTW, when running the Swing app:

   Warning: Cannot convert string "MetaCtrl&lt;Key&gt;Insert" to type VirtualBinding 

Ernst


Ernst de Haan wrote:
> Hi folkz,
> 
> I have the Sun JDK 1.3.0 for Linux, beta 9 running on my FreeBSD
> 4.0-STABLE system. Runs pretty nicely too.
> 
> java -version reports:
> 
>    bash-2.04$ java -version
>    expr: syntax error
>    java version "1.3.0beta_refresh"
>    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0beta_refresh-b09)
>    Classic VM (build 1.3.0beta_refresh-b09, green threads, nojit)
> 
> The first line with the syntax error is a small problem with
> .java_wrapper, but it seems harmless. I had to make some modifications
> to the .java_wrapper script to make it work on my system. I've attached
> the version I use.
> 
> I haven't done much testing yet, but I have tried a single Swing
> application. I did notice some differences in fonts, but it all seems to
> work pretty nice and fast :)
> 
> Wow, soon FreeBSD will be the platform with the greatest number of
> working JDKs on it, once we get WINE to work so we can run the Windows
> JDKs too, and write an AS/400 emulator, and... and... ;-)
> 
> Ernst
> 
> P.S.  Thanks go to Victor Salaman how pointed me in the right direction.
>       He has been running the Sun JDK 1.3 for Linux for quite a while.
</pre>

<P><B>January 29, 2000:</B> Work has not begun on the JDK 1.3 port. 
It will not be until after our JDK 1.2 release is done that we will begin
on JDK 1.3.

</td>
</tr>
</TABLE>
&footer;
</BODY>
</HTML>
