Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Aug 2002 13:30:01 +0900
From:      daichi <daichi@jp.freebsd.org>
To:        freebsd-java@FreeBSD.ORG
Subject:   JDK131 patchset7: Working report of HotSpot on -stable
Message-ID:  <20020807133001.628c5d23.daichi@jp.freebsd.org>

next in thread | raw e-mail | index | archive | help
I built HotSpot on -stable in response to Mr. Maruyama's advice.
I report the contents which worked here(These contents of a 
report were already reported on Japan FreeBSD JavaML. Please 
refer to those who can read Japanese. 
http://home.jp.freebsd.org/cgi-bin/showmail/java/155).

System(uname -a)
----------------
  FreeBSD parancell.ongs.co.jp 4.6-PRERELEASE-20020511-JPSNAP 
    FreeBSD 4.6-PRERELEASE-20020511-JPSNAP #0: 
    Thu Aug  1 19:53:25 JST 2002

Preparation
-----------
  o You need source code in /usr/src/lib/libc_r/uthread/.
    Install it by /stand/sysinstall.
  o You need Linux JDK131(/usr/ports/java/linux-sun-jdk13/).
    (I use linux_base6)
  o I use open-motif-2.1.30_3(/usr/ports/x11-toolkits/open-motif)
  o I use ja-kochi-ttfonts-20020727(/usr/ports/japanese/kochi-ttfonts)
  o I use gcc-3.1.1_20020726(/usr/ports/lang/gcc31)
  o I use jdk13 ports updated at 2002/08/06(/usr/ports/java/jdk13).
  
Build
-----
  It is assumed that a patch is in /tmp/.

Maruyama_san-os_linux.cpp.diff: 
--- hotspot1.3.1/src/os/linux/vm/os_linux.cpp   14 Jul 2002 03:02:53 -0000
+++ hotspot1.3.1/src/os/linux/vm/os_linux.cpp   26 Jul 2002 10:36:11 -0000
@@ -68,6 +68,16 @@
 
 // Port Specific Routines
 //
+#if defined(__FreeBSD__) && __FreeBSD_version <= 500000
+static int
+pthread_main_np()
+{
+       if (!_thread_initial)
+               return (-1);
+       else
+               return (pthread_equal(pthread_self(), _thread_initial) ? 1 : 0);
+}
+#endif
 
 extern "C"
 {

pthread_private.h.diff:
--- pthread_private.h.orig  Mon Aug  5 21:01:59 2002
+++ pthread_private.h       Mon Aug  5 22:30:32 2002
@@ -1004,6 +1004,7 @@
 #endif
 
 /* Default thread attributes: */
+#undef pthread_attr_default
 SCLASS struct pthread_attr pthread_attr_default
 #ifdef GLOBAL_PTHREAD_PRIVATE
 = { SCHED_RR, 0, TIMESLICE_USEC, PTHREAD_DEFAULT_PRIORITY, PTHREAD_CREATE_RUNNI
NG,
@@ -1013,6 +1014,7 @@
 #endif
 
 /* Default mutex attributes: */
+#undef pthread_mutexattr_default
 SCLASS struct pthread_mutex_attr pthread_mutexattr_default
 #ifdef GLOBAL_PTHREAD_PRIVATE
 = { PTHREAD_MUTEX_DEFAULT, PTHREAD_PRIO_NONE, 0, 0 };
@@ -1021,6 +1023,7 @@
 #endif
 
 /* Default condition variable attributes: */
+#undef pthread_condattr_default
 SCLASS struct pthread_cond_attr pthread_condattr_default
 #ifdef GLOBAL_PTHREAD_PRIVATE
 = { COND_TYPE_FAST, 0 };

    # cd /usr/ports/java/jdk13/
    # make patch
    # cd work
    # patch < /tmp/Maruyama_san-os_linux.cpp.diff
    # cd /usr/src/lib/libc_r/uthread/
    # patch < /tmp/pthread_private.h.diff
    # cd /usr/ports/java/jdk13/
    # make WITH_NATIVE_THREADS=yes install
    # cd hotspot1.3.1/build/linux/
    # setenv ALT_BOOTDIR /usr/local/linux-jdk1.3.1/
    # gmake core
    # gmake compiler1
    # gmake compiler2 
    # mkdir -p /usr/local/jdk1.3.1/jre/lib/i386/hotspot/

Usage
-----
  Three HotSpots are built. It is performed as follows for using, 
  respectively.

  [core HotSpot]
    # cd /usr/ports/java/jdk13/work/hotspot1.3.1/build/linux/
    # cp linux_i486_core/product/libjvm.so /usr/local/jdk1.3.1/jre/lib/i386/hotspot/
    # cp linux_i486_core/jvmg/libjvm_g.so /usr/local/jdk1.3.1/jre/lib/i386/hotspot/

  [compiler1 HotSpot]
    # cd /usr/ports/java/jdk13/work/hotspot1.3.1/build/linux/
    # cp linux_i486_compiler1/product/libjvm.so /usr/local/jdk1.3.1/jre/lib/i386/hotspot/
    # cp linux_i486_compiler1/jvmg/libjvm_g.so /usr/local/jdk1.3.1/jre/lib/i386/hotspot/

  [compiler2 HotSpot]
    # cd /usr/ports/java/jdk13/work/hotspot1.3.1/build/linux/
    # cp linux_i486_compiler2/product/libjvm.so /usr/local/jdk1.3.1/jre/lib/i386/hotspot/
    # cp linux_i486_compiler2/jvmg/libjvm_g.so /usr/local/jdk1.3.1/jre/lib/i386/hotspot/

  for example,
    > java -version
    java version "1.3.1-p7"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-p7-root-020806-17:02)
    Java HotSpot(TM) Client VM (build 1.3.1-internal, mixed mode)

Comparison of execution speed
-----------------------------
  The comparison of exeuciont speed by CaffeineMark 3.0.

        Caffeine-JDK118-nojit                   score = 2519
        Caffeine-JDK122-nojit                   score = 2490
        Caffeine-JDK131-hotspot-compiler1       score = 26949
        Caffeine-JDK131-hotspot-core            score = 2217
        Caffeine-JDK131-nohotspot               score = 2495
        Caffeine-LinuxBDJDK131-hotspot          score = 28304
        Caffeine-LinuxBDJDK131-nohotspot        score = 2471
        Caffeine-LinuxIBMJDK131-jit             score = 144050
        Caffeine-LinuxSunJDK122-nojit           score = 2491
        Caffeine-LinuxSunJDK131-hotspot         score = 28499
        Caffeine-LinuxSunJDK131-nohotspot       score = 2481
        Caffeine-LinuxSunJDK140-clienthotspot   score = 26947

  A summary of a result shows the characteristic which the FreeBSD 
  version and Linux version also resembled(However, Linux IBM JDK131 
  is outside. Has not it used the source code of Sun as the base?
  The characteristic is considerably different. And it operates 
  quickly wonderfully.). That's right since the code base is the same, 
  if it is called a natural result.
  The usefulness of HotSpot can be reconfirmed as a result.

Bug
---
  A Java2D demonstration carries out a strange motion. If it passes 
  fixed time, processing will stop temporarily. 
  A source code is not displayed in SwingSet2 demonstration.
  Heavy JFC/Swing, such as Forte and ArgoUML, -- an application does 
  not start, etc.

--
Daichi GOTO
    http://www.ongs.net/daichi, daichi@jp.freebsd.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020807133001.628c5d23.daichi>