JDK 1.1.7 for MkLinux, Linux-PMac, and LinuxPPC Addendum to README.linux for PowerPC users New in this Port ---------------- * This is our final port of Sun's JDK 1.1.7 final. - Native Threads support is HERE! - enable by: export THREADS_FLAG=native - please give a special thanks to Phill Edwards of the Blackdown Java-Linux team for creating the Native Threads port. Great job Phill! - fix for image scaling problem - fix for hanging stdout and stderr (green_threads) - fix for kernel accept() bug, caused slow Java Web Server - turn-off by: export JDK_NO_KERNEL_FIX=true Also a special thanks goes to Juergen Kreileder for almost all of the work to get the 1.1.6 diffs to work on 1.1.7 with no regressions! And thanks, of course, go to the Blackdown Porters in general for all of their valuable work in porting the JDK to Linux. Native Threads vs Green Threads ------------------------------- This release includes both green and native threads. Green threads are user based theads that have been part of the JDK since its inception. Green threads are very stable, have a lower memory footprint, and involve much lower overhead for creation and context switching. Native threads are linux threads (one-to-one implementation of pthreads) and are kernel based. Each thread is basically a clone of the its parent process and therefore has a higher overhead for context switching and creation and a larger memory footprint. Because they are processes, the number of threads is limited by the number of processes/tasks built into the Linux kernel. You will have to recompile your kernel to handle larger number of threads. So why use native threads? Native threads deal better with some JNI native C programs than green_threads because you do not have to make all io non-blocking and therefore do not have to redefine all of the system calls related to io. But the main reason to use native threads is that on multi-processor systems, native threads can be easily split among processors greatly improving performance while green_threads can not. Although on single processor systems, green threads will probably be faster for most programs. Native Threads Requirements --------------------------- As a result of Phill Edwards hard work, we now have native threads support for the Linux JDK ports. The native threads port itself should be considered beta quality (or better). To make use of it you MUST upgrade to the following packages: - glibc (1m) (the very latest glibc from Gary Thomas with thread fixes) - X11R6.3 (1s) (the X11R6.3 (1r) rpms rebuilt with -D_RENTRANT - David Gatwood's latest MkLinux kernel/server pair or Paul's latest 2.1.24 kernel or Paul's latest 2.1.125 kernel All of these packages and the BootX booter are available from the following mirror sites: ftp://ftp.mklinux.apple.com/pub/contrib/JDK/ Note: The Metrowerks JIT has not been tested with the Native Threads port. If you run into problems, please try disabling it to see if the problem goes away an then either file a bug report on the JIT or the native threads. ************************************************************* * NOTE: In keeping with the Metrowerks binary license, the * * Metrowerks JIT is not longer shipped with the JDK and * * therefore is NOT installed by default. To use the JIT * * with the JDK please download the Metrowerks JIT binary * * archive and follow the instructions in the README. * ************************************************************* * This port is statically linked with Motif 2.1. * This port was developed under Sun's non-commercial license agreement. The home website is still: http://business.tyler.wm.edu/mklinux however all official releases (for all versions of Linux) will be available from both this site and the Blackdown Organization site. http://www.blackdown.org/java-linux.html A shell script has been provided "setup117.sh" that can be edited to fit your installation and to enable and disable the JIT compiler. The script will work "as is" for installation of jdk117 into /usr/local. We hope you enjoy the numerous improvements available in JDK 117. We will continue to work to both improve the port and fix bugs. Thanks, Your MkLinux / Linux PowerPC JDK Porting Team Installation ------------ * you must be running shared libraries for this port to work * unset any java enviroment variables you might have previously set (remove CLASSPATH, JAVA_HOME, LD_LIBRARY_PATH, etc) * unpack this tar archive any place you like (i.e. /usr/local) * change your path environment variable to point to the java bin directory i.e. export PATH=/usr/local/jdk117_v1a/bin:$PATH * set the JDK enviroment variables to point where your java bin and lib directories reside i.e. export JDK_HOME=/usr/local/jdk117_v1a export JAVA_HOME=/usr/local/jdk117_v1a * don't forget to read the other documentation files Known Problems / Bug Reports ---------------------------- * Native threads awt apps will sometime hang on startup * Native threads may be left behind after aborts / exits (use ps -auwx to find them and kill -9 pid to kill them) * Problems with GMT date/time on some systems * If you get segfaults while launching java, please upgrade your glibc to something much more recent (preferably the latest) * Report all bugs to http://www.blackdown.org/java-linux.html With each bug report try to send as much information as possible, such as: * which version of Linux you are running (MkLinux, Linux-PMac, etc) * which kernel version you are using * whether running green_threads or native threads * what java app/applet was running * where to find that app/applet (url) * environment setup * ldconfig -v, backtrace, error message, etc. Please remember to read docs, as they sometimes have a way of helping out with some problems. I know, who reads docs...