From owner-freebsd-java Fri Nov 22 1:20:29 2002 Delivered-To: freebsd-java@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4275337B401 for ; Fri, 22 Nov 2002 01:20:18 -0800 (PST) Received: from smtp.web.de (smtp03.web.de [217.72.192.158]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3F08843EB2 for ; Fri, 22 Nov 2002 01:20:14 -0800 (PST) (envelope-from g.w.k@web.de) Received: from [213.148.149.130] (helo=hunter.muc.macsch.com) by smtp.web.de with esmtp (WEB.DE(Exim) 4.91 #2) id 18F9yJ-0007BR-00; Fri, 22 Nov 2002 10:19:35 +0100 Subject: Re: [SUCCESS] Trying to compile HotSpot on 4.7-STABLE -- with patch From: "Georg-W. Koltermann" To: Bill Huey Cc: freebsd-java@FreeBSD.ORG In-Reply-To: <1037901021.81842.163.camel@hunter.muc.macsch.com> References: <1037283323.18267.30.camel@hunter.muc.macsch.com> <20021115003621.GA3359@gnuppy.monkey.org> <1037615069.439.27.camel@hunter.muc.macsch.com> <20021118105502.GA3955@gnuppy.monkey.org> <1037901021.81842.163.camel@hunter.muc.macsch.com> Content-Type: multipart/mixed; boundary="=-WZeLTLaU7fbhUIp0apEy" X-Mailer: Ximian Evolution 1.0.8 Date: 22 Nov 2002 10:20:12 +0100 Message-Id: <1037956813.417.12.camel@hunter.muc.macsch.com> Mime-Version: 1.0 Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org --=-WZeLTLaU7fbhUIp0apEy Content-Type: text/plain Content-Transfer-Encoding: 7bit > ... > I'll attach my patch. It does the following things: Oops, here is the patch now. Note that in order to actually use hotspot, you must call it as "java -hotspot" and also edit jdk1.3.1/jre/lib/jvm.cfg to move "-classic" to the bottom again. I couldn't figure out how to force hotspot when -classic is the default in jvm.cfg. -- Georg. --=-WZeLTLaU7fbhUIp0apEy Content-Disposition: attachment; filename=patch-zgwk1 Content-Transfer-Encoding: quoted-printable Content-Type: text/x-patch; name=patch-zgwk1; charset=ISO-8859-15 diff -urN common/Defs-bsd.gmk common/Defs-bsd.gmk --- common/Defs-bsd.gmk Thu Nov 21 14:35:47 2002 +++ common/Defs-bsd.gmk Mon Nov 18 15:24:27 2002 @@ -32,9 +32,9 @@ AR =3D $(USRBIN_PATH)ar AS =3D $(USRBIN_PATH)as CAT =3D $(UNIXCOMMAND_PATH)cat -CC =3D $(COMPILER_PATH)gcc -CPP =3D $(COMPILER_PATH)gcc -E -CXX =3D $(COMPILER_PATH)g++ +CC =3D gcc32 +CPP =3D gcc32 -E +CXX =3D g++32 CD =3D cd # intrinsic unix command CHMOD =3D $(UNIXCOMMAND_PATH)chmod CMP =3D $(USRBIN_PATH)cmp diff -urN ../src/solaris/bin/java_wrapper_bsd.sh ../src/solaris/bin/java_wr= apper_bsd.sh --- ../src/solaris/bin/java_wrapper_bsd.sh Thu Nov 21 14:35:46 2002 +++ ../src/solaris/bin/java_wrapper_bsd.sh Thu Nov 21 16:38:40 2002 @@ -92,10 +92,10 @@ ttype=3Dnative_threads shift 1 else=20 - if [ -d ${jre}/lib/${proc}/hotspot ]; then - vmtype=3Dhotspot - ttype=3Dnative_threads - else +## if [ -d ${jre}/lib/${proc}/hotspot ]; then +## vmtype=3Dhotspot +## ttype=3Dnative_threads +## else vmtype=3Dclassic if [ ${THREADS_FLAG:-${DEFAULT_THREADS_FLAG}} =3D native ] then=20 @@ -103,7 +103,7 @@ else ttype=3Dgreen_threads fi - fi +## fi fi fi fi diff -urN ../src/solaris/hpi/native_threads/src/threads_bsd.c ../src/solari= s/hpi/native_threads/src/threads_bsd.c --- ../src/solaris/hpi/native_threads/src/threads_bsd.c Thu Nov 21 14:35:46= 2002 +++ ../src/solaris/hpi/native_threads/src/threads_bsd.c Wed Nov 20 13:53:54= 2002 @@ -284,6 +284,7 @@ "susp boundless" }; =20 +enum pthread_susp { a_one, a_two, a_three }; /* gwk, dummy */ char *getSuspendStateString(enum pthread_susp suspendState) { if (suspendState < ANALRETENTIVE) @@ -292,7 +293,7 @@ return &SuspendList[ANALRETENTIVE-1][0]; } =20 -#define SATAN (21 + 1) /* for the error string at the end of the list */ +#define SATAN (22 + 1) /* for the error string at the end of the list */ =20 char SignalList [SATAN][16] =3D @@ -318,7 +319,8 @@ "PS_DEAD", "PS_DEADLCK", "PS_STATE_MAX", - "PS_REQUEST_WAITING_SUSPENDED", +/* "PS_REQUEST_WAITING_SUSPENDED", gwk */ + "PS_REQUEST_WSUS", "boundless" }; =20 @@ -527,6 +529,7 @@ if (thread->state !=3D PS_SUSPENDED) dumpThreadLogStates(thread); =20 +#if 0 /* gwk */ switch ((int)thread->ctxtype) { case CTX_JB_NOSIG: /* 0) jmp_buf context without signal mask for blockin= g IO, etc... */ @@ -551,6 +554,7 @@ #endif break; } +#endif /* gwk */ =20 #ifdef DEBUG_BSD_NATIVE_THREADS TermFailed: diff -urN ../../hotspot1.3.1/build/linux/makefiles/gcc32.make ../../hotspot= 1.3.1/build/linux/makefiles/gcc32.make --- ../../hotspot1.3.1/build/linux/makefiles/gcc32.make Thu Jan 1 01:00:00= 1970 +++ ../../hotspot1.3.1/build/linux/makefiles/gcc32.make Wed Nov 20 14:22:40= 2002 @@ -0,0 +1,131 @@ + +# put the *.o files in the a.out, not the shared library +LINK_INTO =3D $(LINK_INTO/$(VERSION)) +LINK_INTO/debug =3D AOUT +#LINK_INTO/optimized =3D AOUT +LINK_INTO/optimized =3D LIBJVM + +# apply this setting to link into the shared library even in the debug ver= sion: +LINK_INTO =3D LIBJVM + +# If MAKE_OPTO is null, then we will compile with the -DOPTO. +# That switch, despite its name, has the effect of __disabling__ OPTO. +$(MAKE_OPTO)CFLAGS +=3D -DOPTO + +#CFLAGS +=3D -v + +# The flags to use for an Optimized g++ build +#OPT_CFLAGS +=3D -O3 + +OPT_CFLAGS +=3D -O0 + +CFLAGS +=3D -fPIC +CFLAGS +=3D -Winline +CFLAGS +=3D -fwritable-strings +CFLAGS +=3D -fno-rtti +CFLAGS +=3D -fhandle-exceptions +CFLAGS +=3D -D__STDC__=3D1 -D_LARGEFILE64_SOURCE -DTEMPLATE_TABLE_BUG +CFLAGS +=3D -D__GNU__ -D_REENTRANT +CFLAGS +=3D -fcheck-new + +#--billh +CFLAGS +=3D -D__FreeBSD__ +#-D__GNUC__ + +# Set GCC_SAVE_TEMPS=3D-save-temps to keep temporary files (.ii, .s). +CFLAGS +=3D $(GCC_SAVE_TEMPS) + +OPT_CFLAGS +=3D -O0 +# -O1 +#OPT_CFLAGS +=3D -fdefer-pop +OPT_CFLAGS +=3D -fthread-jumps +OPT_CFLAGS +=3D -fdelayed-branch +OPT_CFLAGS +=3D -fomit-frame-pointer +OPT_CFLAGS +=3D -fguess-branch-probability +OPT_CFLAGS +=3D -fcprop-registers +# END + +OPT_CFLAGS +=3D -ffloat-store +OPT_CFLAGS +=3D -fno-default-inline +OPT_CFLAGS +=3D -fno-defer-pop +#bad, causes abort() +#OPT_CFLAGS +=3D -ftrapv +OPT_CFLAGS +=3D -fno-inline +OPT_CFLAGS +=3D -fkeep-static-consts +OPT_CFLAGS +=3D -fmerge-constants +OPT_CFLAGS +=3D -fmerge-all-constants +OPT_CFLAGS +=3D -fno-function-cse +OPT_CFLAGS +=3D -ffast-math +# END + +# -O2 +OPT_CFLAGS +=3D -foptimize-sibling-calls +OPT_CFLAGS +=3D -fcse-follow-jumps +OPT_CFLAGS +=3D -fcse-skip-blocks +OPT_CFLAGS +=3D -fgcse-sm +OPT_CFLAGS +=3D -fgcse-lm +OPT_CFLAGS +=3D -fgcse + +OPT_CFLAGS +=3D -fexpensive-optimizations +OPT_CFLAGS +=3D -fstrength-reduce +OPT_CFLAGS +=3D -frerun-cse-after-loop +OPT_CFLAGS +=3D -frerun-loop-opt +OPT_CFLAGS +=3D -fcaller-saves +OPT_CFLAGS +=3D -fforce-addr +OPT_CFLAGS +=3D -fforce-mem +OPT_CFLAGS +=3D -fpeephole2 +## +OPT_CFLAGS +=3D -fschedule-insns +OPT_CFLAGS +=3D -fschedule-insns2 +## +OPT_CFLAGS +=3D -fregmove +OPT_CFLAGS +=3D -fstrict-aliasing +OPT_CFLAGS +=3D -fdelete-null-pointer-checks +OPT_CFLAGS +=3D -freorder-blocks +# END + +OPT_CFLAGS +=3D -fno-gcse +OPT_CFLAGS +=3D -fdata-sections +OPT_CFLAGS +=3D -fprefetch-loop-arrays +OPT_CFLAGS +=3D -fmove-all-movables +OPT_CFLAGS +=3D -freduce-all-givs +OPT_CFLAGS +=3D -fno-guess-branch-probability + +OPT_CFLAGS +=3D -falign-functions +OPT_CFLAGS +=3D -falign-labels +OPT_CFLAGS +=3D -falign-loops +OPT_CFLAGS +=3D -falign-jumps + +OPT_CFLAGS +=3D -fssa +# END + +# -O3 +OPT_CFLAGS +=3D -finline-functions +OPT_CFLAGS +=3D -frename-registers +# END + + + + +##### +#harmless +OPT_CFLAGS +=3D -fmemoize-lookups +#unneeded +#OPT_CFLAGS +=3D -fpeephole +#bad +# this creates a link error. +#OPT_CFLAGS +=3D -fkeep-inline-functions +# +OPT_CFLAGS +=3D -funroll-loops +OPT_CFLAGS +=3D -funroll-all-loops +##### + +# Set the environment variable HOTSPARC_HOTSPARC_GENERIC to "true" +# to inhibit the effect of the previous line on CFLAGS. + +CPP =3D g++32 +CC =3D gcc32 + +AOUT_FLAGS +=3D -export-dynamic=20 +DEBUG_CFLAGS +=3D -g + diff -urN ../../hotspot1.3.1/build/linux/platform_i486 ../../hotspot1.3.1/b= uild/linux/platform_i486 --- ../../hotspot1.3.1/build/linux/platform_i486 Thu Nov 21 17:35:21 2002 +++ ../../hotspot1.3.1/build/linux/platform_i486 Wed Nov 20 14:20:54 2002 @@ -6,7 +6,7 @@ =20 lib_arch =3D i386 =20 -compiler =3D gcc31 +compiler =3D gcc32 =20 gnu_dis_arch =3D i386 =20 diff -urN ../../hotspot1.3.1/build/linux/platform_i486.gwk ../../hotspot1.3= .1/build/linux/platform_i486.gwk --- ../../hotspot1.3.1/build/linux/platform_i486.gwk Thu Jan 1 01:00:00 19= 70 +++ ../../hotspot1.3.1/build/linux/platform_i486.gwk Wed Nov 20 14:20:27 20= 02 @@ -0,0 +1,16 @@ +os_family =3D linux + +arch =3D i486 + +os_arch =3D linux_i486 + +lib_arch =3D i386 + +compiler =3D gcc31 + +gnu_dis_arch =3D i386 + +sysdefs =3D -DLINUX -D_GNU_SOURCE -DIA32 -D_USE_PTHREAD_SPECIFIC -pthread = -D_THREAD_SAFE + +mark_style =3D alignment + diff -urN ../../hotspot1.3.1/src/share/vm/utilities/globalDefinitions_gcc32= .hpp ../../hotspot1.3.1/src/share/vm/utilities/globalDefinitions_gcc32.hpp --- ../../hotspot1.3.1/src/share/vm/utilities/globalDefinitions_gcc32.hpp T= hu Jan 1 01:00:00 1970 +++ ../../hotspot1.3.1/src/share/vm/utilities/globalDefinitions_gcc32.hpp W= ed Nov 20 14:25:03 2002 @@ -0,0 +1,139 @@ +/* + * @(#)globalDefinitions_gcc.hpp 1.18 01/02/09 14:48:11 + * + * Copyright 1993-2001 by Sun Microsystems, Inc., + * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. + * All rights reserved. + *=20 + * This software is the confidential and proprietary information + * of Sun Microsystems, Inc. ("Confidential Information"). You + * shall not disclose such Confidential Information and shall use + * it only in accordance with the terms of the license agreement + * you entered into with Sun. + */ + +// CopyrightVersion 1.2 + +// This file holds compiler-dependent includes, +// globally used constants & types, class (forward) +// declarations and a few frequently used utility functions. + +# include +# include +# include +# include +# include +# include +# include + +#ifdef SOLARIS +# include +#endif + +# include +# include +# include +# include + +# include +# include + + +#ifdef LINUX +# include +# include +# include +# include + +#else + +// Compiler-specific primitive types +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long uint64_t; + +typedef signed char int8_t; +typedef signed short int16_t; +typedef signed int int32_t; +typedef signed long long int64_t; + +#endif /*LINUX*/ + +// promises that the system will not use traps 16-31 +#define ST_RESERVED_FOR_USER_0 0x10 + +// Additional Java basic types + +typedef unsigned char jubyte; +typedef unsigned short jushort; +typedef unsigned int juint; +typedef unsigned long long julong; + +//------------------------------------------------------------------------= ---------------------------- +// Special (possibly not-portable) casts +// Cast floats into same-size integers and vice-versa w/o changing bit-pat= tern +// %%%%%% These seem like standard C++ to me--how about factoring them out= ? - Ungar + +inline jint jint_cast (jfloat x) { return *(jint* )&x; } +inline jlong jlong_cast (jdouble x) { return *(jlong* )&x; } + +inline jfloat jfloat_cast (jint x) { return *(jfloat* )&x; } +inline jdouble jdouble_cast(jlong x) { return *(jdouble*)&x; } + +//------------------------------------------------------------------------= ---------------------------- +// Constant for jlong (specifying an long long canstant is C++ compiler sp= ecific) + +#ifdef LINUX //-billh +const int64_t min_jlong =3D 0x8000000000000000LL; +const int64_t max_jlong =3D 0x7fffffffffffffffLL; +#else +const jlong min_jlong =3D 0x8000000000000000L; +const jlong max_jlong =3D 0x7fffffffffffffffL; +#endif + +//------------------------------------------------------------------------= ---------------------------- +// Debugging + +#define DEBUG_EXCEPTION ::abort(); + +extern "C" void breakpoint(); +#define BREAKPOINT ::breakpoint() + +// checking for nanness + +inline int g_isnan(float f) { return isnanf(f); } +#if defined(SOLARIS) || defined(BSD4_4)=20 +inline int g_isnan(double f) { return isnand(f); } +#elif LINUX +inline int g_isnan(double f) { return isnan(f); } +#else +#error "missing platform-speicfic definition here" +#endif + + +// Checking for finiteness + +inline int g_isfinite(jfloat f) { return finite(f); } +inline int g_isfinite(jdouble f) { return finite(f); } + + +// Wide characters + +inline int wcslen(const jchar* x) { return wcslen((const wchar_t*)x); } + + +#ifdef PRODUCT +const int Interpreter_Code_Size =3D 55 * 1024; +#else +const int Interpreter_Code_Size =3D 75 * 1024; +#endif + +// Portability macros +#define PRAGMA_INTERFACE #pragma interface +#define PRAGMA_IMPLEMENTATION #pragma implementation +#if !defined(LINUX) && !defined(BSD4_4) +#define PRAGMA_IMPLEMENTATION_(arg) #pragma implementation(arg) +#endif /*LINUX*/ +#define VALUE_OBJ_CLASS_SPEC + diff -urN ../src/solaris/bin/jvm.cfg ../src/solaris/bin/jvm.cfg --- ../src/solaris/bin/jvm.cfg Sun May 6 14:26:52 2001 +++ ../src/solaris/bin/jvm.cfg Thu Nov 21 18:43:54 2002 @@ -8,7 +8,7 @@ # List of JVMs that can be used as the first option to java, javac, etc. # Order is important -- first in this list is the default JVM. # +-classic -client -hotspot -server --classic --=-WZeLTLaU7fbhUIp0apEy-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message