diff -ruN java.orig/control/make/common/Defs-linux.gmk java/control/make/common/Defs-linux.gmk
--- java.orig/control/make/common/Defs-linux.gmk	2003-09-11 03:39:24.000000000 +0200
+++ java/control/make/common/Defs-linux.gmk	2003-11-23 18:11:20.000000000 +0100
@@ -50,50 +50,53 @@
 # non-standard locations
 #
 
-AR             = $(USRBIN_PATH)ar
-BASENAME       = $(UNIXCOMMAND_PATH)basename
-CAT            = $(UNIXCOMMAND_PATH)cat
+# Change to globals, some paths differ from what SUN thinks they should be
+# hgg <games@sourcemage.org>
+
+AR             = ar
+BASENAME       = basename
+CAT            = cat
 CD             = cd # intrinsic unix command
-CHMOD          = $(UNIXCOMMAND_PATH)chmod
-CMP            = $(USRBIN_PATH)cmp
-COMM           = $(USRBIN_PATH)comm
-COMPRESS       = $(USRBIN_PATH)compress
-CP             = $(UNIXCOMMAND_PATH)cp
-CPIO           = $(UNIXCOMMAND_PATH)cpio
-CUT            = $(USRBIN_PATH)cut
-DATE           = $(UNIXCOMMAND_PATH)date
-DF             = $(UNIXCOMMAND_PATH)df
-DIFF           = $(USRBIN_PATH)diff
-DIRNAME        = $(USRBIN_PATH)dirname
+CHMOD          = chmod
+CMP            = cmp
+COMM           = comm
+COMPRESS       = compress
+CP             = cp
+CPIO           = cpio
+CUT            = cut
+DATE           = date
+DF             = df
+DIFF           = diff
+DIRNAME        = dirname
 ECHO           = echo -e # intrinsic unix command, with backslash-escaped character interpretation 
-EGREP          = $(UNIXCOMMAND_PATH)egrep
-EXPR           = $(USRBIN_PATH)expr
-FIND           = $(USRBIN_PATH)find
-GREP           = $(UNIXCOMMAND_PATH)grep
-LEX            = $(USRBIN_PATH)lex
-LN             = $(UNIXCOMMAND_PATH)ln
-LS             = $(UNIXCOMMAND_PATH)ls
-M4             = $(USRBIN_PATH)m4
-MKDIR          = $(UNIXCOMMAND_PATH)mkdir
-MV             = $(UNIXCOMMAND_PATH)mv
-NAWK           = $(USRBIN_PATH)gawk
-PWD            = $(UNIXCOMMAND_PATH)pwd
+EGREP          = egrep
+EXPR           = expr
+FIND           = find
+GREP           = grep
+LEX            = lex
+LN             = ln
+LS             = ls
+M4             = m4
+MKDIR          = mkdir
+MV             = mv
+NAWK           = gawk
+PWD            = pwd
 #RM   is defined by GNU Make as 'rm -f'
-RMDIR          = $(UNIXCOMMAND_PATH)rmdir
-RPM            = $(UNIXCOMMAND_PATH)rpm
-SED            = $(UNIXCOMMAND_PATH)sed
-SH             = $(UNIXCOMMAND_PATH)sh
-SORT           = $(UNIXCOMMAND_PATH)sort
-STRIP          = $(USRBIN_PATH)strip
-TAR            = $(UNIXCOMMAND_PATH)tar
-TOUCH          = $(UNIXCOMMAND_PATH)touch
-TR             = $(USRBIN_PATH)tr
-TRUE           = $(UNIXCOMMAND_PATH)true
-UNAME          = $(UNIXCOMMAND_PATH)uname
-UNIQ           = $(USRBIN_PATH)uniq
-UNZIPSFX       = $(USRBIN_PATH)unzipsfx
-WC             = $(USRBIN_PATH)wc
-YACC           = $(USRBIN_PATH)yacc
+RMDIR          = rmdir
+RPM            = rpm
+SED            = sed
+SH             = sh
+SORT           = sort
+STRIP          = strip
+TAR            = tar
+TOUCH          = touch
+TR             = tr
+TRUE           = true
+UNAME          = uname
+UNIQ           = uniq
+UNZIPSFX       = unzipsfx
+WC             = wc
+YACC           = yacc
 ZIPEXE         = $(USRBIN_PATH)zip
 
 
diff -ruN java.orig/deploy/make/common/Defs-linux.gmk java/deploy/make/common/Defs-linux.gmk
--- java.orig/deploy/make/common/Defs-linux.gmk	2003-09-11 03:57:23.000000000 +0200
+++ java/deploy/make/common/Defs-linux.gmk	2003-11-23 18:11:20.000000000 +0100
@@ -7,9 +7,12 @@
 # these are specific to Linux (RH6.1)
 include $(CONTROL_TOPDIR)/make/common/Defs-linux.gmk
 
+# Change to globals, some paths differ form what SUN thinks they should be
+# hgg <games@sourcemage.org>
+
 BUNDLE_SUFFIX  = .zip
 CC	       = $(COMPILER_PATH)gcc
-HEAD           = $(USRBIN_PATH)head
+HEAD           = head
 EXEDIR         = $(OUTPUTDIR)/bin
 JUMP_EXE       = $(PROTO_DIR)/javawsbin$(SUFFIX)
 CLASSPATH_SEP  = $(CLASSPATH_SEPARATOR)
diff -ruN java.orig/hotspot/src/cpu/i486/vm/i486.ad java/hotspot/src/cpu/i486/vm/i486.ad
--- java.orig/hotspot/src/cpu/i486/vm/i486.ad	2003-09-11 03:40:13.000000000 +0200
+++ java/hotspot/src/cpu/i486/vm/i486.ad	2003-11-23 18:11:20.000000000 +0100
@@ -230,18 +230,22 @@
 // These masks are used to provide 128-bit aligned bitmasks to the XMM
 // instructions, to allow sign-masking or sign-bit flipping.  They allow
 // fast versions of NegF/NegD and AbsF/AbsD.
-static jlong float_signmask_pool[3] =  {0x7FFFFFFF7FFFFFFF,
-                                        0x7FFFFFFF7FFFFFFF,
-                                        0x7FFFFFFF7FFFFFFF};
-static jlong double_signmask_pool[3] = {0x7FFFFFFFFFFFFFFF,
-                                        0x7FFFFFFFFFFFFFFF,
-                                        0x7FFFFFFFFFFFFFFF};
-static jlong float_signflip_pool[3] =  {0x8000000080000000,
-                                        0x8000000080000000,
-                                        0x8000000080000000};
-static jlong double_signflip_pool[3] = {0x8000000000000000,
-                                        0x8000000000000000,
-                                        0x8000000000000000};
+
+// I had to specifically tell gcc3.3.X this was a long long
+// hgg <games@sourcemage.org>
+
+static jlong float_signmask_pool[3] =  {0x7FFFFFFF7FFFFFFFLL,
+                                        0x7FFFFFFF7FFFFFFFLL,
+                                        0x7FFFFFFF7FFFFFFFLL};
+static jlong double_signmask_pool[3] = {0x7FFFFFFFFFFFFFFFLL,
+                                        0x7FFFFFFFFFFFFFFFLL,
+                                        0x7FFFFFFFFFFFFFFFLL};
+static jlong float_signflip_pool[3] =  {0x8000000080000000LL,
+                                        0x8000000080000000LL,
+                                        0x8000000080000000LL};
+static jlong double_signflip_pool[3] = {0x8000000000000000LL,
+                                        0x8000000000000000LL,
+                                        0x8000000000000000LL};
 
 // !!!!! Special hack to get all type of calls to specify the byte offset
 //       from the start of the call to the point where the return address
diff -ruN java.orig/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp java/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp
--- java.orig/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp	2003-09-11 03:40:30.000000000 +0200
+++ java/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp	2003-11-23 18:11:20.000000000 +0100
@@ -49,7 +49,7 @@
   jlong old_value;
   __asm__ volatile (  "pushl %%ebx;mov 4+%1,%%ecx;mov %1,%%ebx;lock;cmpxchg8b (%3);popl %%ebx"
                     : "=A" (old_value)
-                    : "o" (exchange_value), "A" (compare_value), "r" (dest)
+                    : "m" (exchange_value), "A" (compare_value), "r" (dest)
                     : "%ebx", "%ecx", "memory");
   return old_value;
 }
diff -ruN java.orig/hotspot/src/share/vm/runtime/jvmdiInterfaceSupport.hpp java/hotspot/src/share/vm/runtime/jvmdiInterfaceSupport.hpp
--- java.orig/hotspot/src/share/vm/runtime/jvmdiInterfaceSupport.hpp	2003-09-11 03:41:55.000000000 +0200
+++ java/hotspot/src/share/vm/runtime/jvmdiInterfaceSupport.hpp	2003-11-23 18:11:20.000000000 +0100
@@ -24,7 +24,7 @@
   result_type JNICALL methodName signature {                                         \
     JavaThread* thread = (JavaThread*) ThreadLocalStorage::thread();                 \
     TransitionClass __tiv(thread);                                                   \
-    __ENTRY(result_type, methodName##signature, thread)                              \
+    __ENTRY(result_type, methodName signature, thread)                              \
     debug_only(VMNativeEntryWrapper __vew;)                                          \
     debug_only(const char* const _jvmdi_methodName_ = #methodName;)                  \
     debug_only(bool  _trace_ = trace; );                                             \
diff -ruN java.orig/hotspot/src/share/vm/runtime/mutexLocker.cpp java/hotspot/src/share/vm/runtime/mutexLocker.cpp
--- java.orig/hotspot/src/share/vm/runtime/mutexLocker.cpp	2003-09-11 03:41:55.000000000 +0200
+++ java/hotspot/src/share/vm/runtime/mutexLocker.cpp	2003-11-23 18:11:20.000000000 +0100
@@ -98,7 +98,7 @@
 #endif
 
 #define def(var, type, pri, vm_block) \
-  var = new type(Mutex::##pri, #var, vm_block)
+  var = new type(Mutex::pri, #var, vm_block)
 
 void mutex_init() {  
   def(Event_lock                   , Mutex  , event,       true ); // allow to lock in VM
diff -ruN java.orig/install/make/common/Defs-linux.gmk java/install/make/common/Defs-linux.gmk
--- java.orig/install/make/common/Defs-linux.gmk	2003-09-11 03:56:33.000000000 +0200
+++ java/install/make/common/Defs-linux.gmk	2003-11-23 18:11:20.000000000 +0100
@@ -9,8 +9,11 @@
 
 include $(CONTROL_TOPDIR)/make/common/Defs-linux.gmk
 
+# Change to globals, some paths differ form what SUN thinks they should be
+# hgg <games@sourcemage.org>
+
 # We need printf!
-PRINTF	       = $(UNIXCOMMAND_PATH)printf.exe
+PRINTF	       = printf.exe
 
 # the temporary input tar file that rpm will consume
 JRE_RPM_TARFILE         = $(JRE_TEMPORARY_DIR).tar
diff -ruN java.orig/j2se/make/common/Defs-linux.gmk java/j2se/make/common/Defs-linux.gmk
--- java.orig/j2se/make/common/Defs-linux.gmk	2003-09-11 03:42:56.000000000 +0200
+++ java/j2se/make/common/Defs-linux.gmk	2003-11-23 18:11:20.000000000 +0100
@@ -23,15 +23,18 @@
 #   LINTFLAGS     (set $(OTHER_LINTFLAGS) instead)
 
 # statically link libstdc++ before C++ ABI is stablized on Linux
-STATIC_CXX     = true
+#STATIC_CXX     = true
 
 # define these to avoid picking up ones from aliases or from
 # non-standard locations
 #
 
-AR             = $(USRBIN_PATH)ar
-BASENAME       = $(UNIXCOMMAND_PATH)basename
-CAT            = $(UNIXCOMMAND_PATH)cat
+# Change to globals, some paths differ form what SUN thinks they should be
+# hgg <games@sourcemage.org>
+
+AR             = ar
+BASENAME       = basename
+CAT            = cat
 CC             = $(COMPILER_PATH)gcc
 CPP            = $(COMPILER_PATH)gcc -E
 ifeq ($(STATIC_CXX),true)
@@ -43,48 +46,48 @@
 CXX            = $(COMPILER_PATH)g++
 endif
 CD             = cd # intrinsic unix command
-CHMOD          = $(UNIXCOMMAND_PATH)chmod
-CMP            = $(USRBIN_PATH)cmp
-COMPRESS       = $(USRBIN_PATH)compress
-CP             = $(UNIXCOMMAND_PATH)cp
-CPIO           = $(UNIXCOMMAND_PATH)cpio
-CUT            = $(USRBIN_PATH)cut
-DATE           = $(UNIXCOMMAND_PATH)date
-DF             = $(UNIXCOMMAND_PATH)df
-DIFF           = $(USRBIN_PATH)diff
-DIRNAME        = $(USRBIN_PATH)dirname
+CHMOD          = chmod
+CMP            = cmp
+COMPRESS       = compress
+CP             = cp
+CPIO           = cpio
+CUT            = cut
+DATE           = date
+DF             = df
+DIFF           = diff
+DIRNAME        = dirname
 ECHO           = echo -e # intrinsic unix command, with backslash-escaped character interpretation 
-EGREP          = $(UNIXCOMMAND_PATH)egrep
-EXPR           = $(USRBIN_PATH)expr
-FIND           = $(USRBIN_PATH)find
-HEAD           = $(USRBIN_PATH)head
-GDB            = $(USRBIN_PATH)gdb
-GREP           = $(UNIXCOMMAND_PATH)grep
-GUNZIP         = $(UNIXCOMMAND_PATH)gunzip
-LEX            = $(USRBIN_PATH)lex
-LN             = $(UNIXCOMMAND_PATH)ln
-LS             = $(UNIXCOMMAND_PATH)ls
-M4             = $(USRBIN_PATH)m4
-MKDIR          = $(UNIXCOMMAND_PATH)mkdir
-MV             = $(UNIXCOMMAND_PATH)mv
-NAWK           = $(USRBIN_PATH)gawk
-PWD            = $(UNIXCOMMAND_PATH)pwd
+EGREP          = egrep
+EXPR           = expr
+FIND           = find
+HEAD           = head
+GDB            = gdb
+GREP           = grep
+GUNZIP         = gunzip
+LEX            = lex
+LN             = ln
+LS             = ls
+M4             = m4
+MKDIR          = mkdir
+MV             = mv
+NAWK           = gawk
+PWD            = pwd
 #RM   is defined by GNU Make as 'rm -f'
-RMDIR          = $(UNIXCOMMAND_PATH)rmdir
-RPM            = $(UNIXCOMMAND_PATH)rpm
-SED            = $(UNIXCOMMAND_PATH)sed
-SH             = $(UNIXCOMMAND_PATH)sh
-SORT           = $(UNIXCOMMAND_PATH)sort
-STRIP          = $(USRBIN_PATH)strip
-TAR            = $(UNIXCOMMAND_PATH)tar
-TEST	       = $(USRBIN_PATH)test
-TOUCH          = $(UNIXCOMMAND_PATH)touch
-TR             = $(USRBIN_PATH)tr
-TRUE           = $(UNIXCOMMAND_PATH)true
-UNAME          = $(UNIXCOMMAND_PATH)uname
-UNIQ           = $(USRBIN_PATH)uniq
-UNZIPSFX       = $(USRBIN_PATH)unzipsfx
-YACC           = $(USRBIN_PATH)yacc
+RMDIR          = rmdir
+RPM            = rpm
+SED            = sed
+SH             = sh
+SORT           = sort
+STRIP          = strip
+TAR            = tar
+TEST	       = test
+TOUCH          = touch
+TR             = tr
+TRUE           = true
+UNAME          = uname
+UNIQ           = uniq
+UNZIPSFX       = unzipsfx
+YACC           = yacc
 ZIPEXE         = $(USRBIN_PATH)zip
 
 
diff -ruN java.orig/j2se/make/common/Release.gmk java/j2se/make/common/Release.gmk
--- java.orig/j2se/make/common/Release.gmk	2003-09-11 03:42:57.000000000 +0200
+++ java/j2se/make/common/Release.gmk	2003-11-23 18:11:20.000000000 +0100
@@ -156,8 +156,11 @@
 image-jre image-jdk image-jdk-debug \
 compare-image-jre compare-image-jdk ::
 	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."; 
+#
+# I trimmed out the debug image to save space hgg <games@sourcemage.org>
+#
 
-images:: sanity-images post-sanity-images image-jre image-jdk image-jdk-debug
+images:: sanity-images post-sanity-images image-jre image-jdk 
 
 #
 # Sources we ship in the SDK.
diff -ruN java.orig/j2se/make/common/Sanity.gmk java/j2se/make/common/Sanity.gmk
--- java.orig/j2se/make/common/Sanity.gmk	2003-09-11 03:42:57.000000000 +0200
+++ java/j2se/make/common/Sanity.gmk	2003-11-23 18:14:15.000000000 +0100
@@ -38,16 +38,22 @@
   ifeq ($(ARCH_DATA_MODEL), 32)
     REQUIRED_RH_VER = 6.1
     REQUIRED_OS_VER = 2.2.*
-    REQUIRED_GCC_VER = 2.91.*
+### required version is the one we are using
+### hgg <games@sourcemage.org>
+    REQUIRED_GCC_VER = $(shell $(CC) -dumpversion)
     # ALSA 0.9.0rc5 and above
-    REQUIRED_ALSA_VERSION = ^0.9.(0(rc[56789]|rc[12][0123456789])?|[0123456789]+)$$
+### Modified the alsa check to include 1.0.0pre...
+### Jason Flatt <printer@sourcemage.org>
+    REQUIRED_ALSA_VERSION = ^(0|1).(9|0).(0(rc[56789]|rc[12][0123456789]?|pre[123456789])?|[0123456789]+)$$
     # dummy program that outputs ALSA's version (created in target alsa-versioncheck)
     ALSA_VERSION_CHECK = $(TMPDIR)/alsaversioncheck
     ALSA_VERSION = `if [ -f $(ALSA_VERSION_CHECK) ] ; then $(ALSA_VERSION_CHECK) ; fi`
   else
     REQUIRED_RH_VER = 7.2
     REQUIRED_OS_VER = 2.4.*
-    REQUIRED_GCC_VER = 2.9[56789].*
+### required version is the one we are using
+### hgg <games@sourcemage.org>
+    REQUIRED_GCC_VER = $(shell $(CC) -dumpversion)
   endif
 endif
 
@@ -79,9 +85,12 @@
   LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
 endif
 
+### Something is wrong with the regular check
+### hgg <games@sourcemage.org>
+
 REQUIRED_ZIP_VER = 2.[23456789]
 
-ZIP_VER := $(shell $(ZIPEXE) -help | $(HEAD) -n 4 | $(NAWK) '{if ($$1 == "Zip") print $$2;}')
+ZIP_VER := $(shell $(ZIPEXE) -help | $(HEAD) -n 3 | $(SED) '1,2d' | $(NAWK) '{if ($$1 -eq "Zip") print $$2;}')
 
 JAVA_VERSION := $(shell $(BOOTDIR)/bin/java$(EXE_SUFFIX) -version 2>&1  | $(NAWK) -F'"' '{ print $$2 }')
 
diff -ruN java.orig/motif/lib/Xm/util/mkmsgcat.c java/motif/lib/Xm/util/mkmsgcat.c
--- java.orig/motif/lib/Xm/util/mkmsgcat.c	2003-09-11 03:42:33.000000000 +0200
+++ java/motif/lib/Xm/util/mkmsgcat.c	2003-11-23 18:11:20.000000000 +0100
@@ -14,7 +14,7 @@
 #include <string.h>
 char buf[1024];
 
-char *OSF_COPYRIGHT = "$\n\
+char *OSF_COPYRIGHT = "\
 $  @OSF_COPYRIGHT@\n\
 $  COPYRIGHT NOTICE\n\
 $  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.\n\
@@ -28,7 +28,7 @@
 $ (c) Copyright 1996 Novell, Inc. \n\
 $ (c) Copyright 1996 FUJITSU LIMITED.\n\
 $ (c) Copyright 1996 Hitachi.\n\
-$";
+";
 
 char *OSF_COPYRIGHT_C = "/*\n\
  *\n\
--- j2sdk-1_4_2/hotspot/src/os/linux/vm/os_linux.cpp~	2004-01-08 22:06:28.218281344 +1100
+++ j2sdk-1_4_2/hotspot/src/os/linux/vm/os_linux.cpp	2004-01-08 22:05:31.520900656 +1100
@@ -582,9 +582,7 @@
     NOT_PRODUCT(tty->print("Current thread is %p\n", pthread_self()));
     NOT_PRODUCT(tty->print("Dumping core ...\n"));
     ostream_exit();
-    // 4450681 : kill all other threads before abort to make sure the 
-    // calling thread is the one that gets dumped in core file. 
-    pthread_kill_other_threads_np();
+    // (hgg 08012004) remove  pthread_kill_other_threads_np function call
     ::abort(); // dump core
   }
   ostream_exit();
@@ -1337,13 +1335,8 @@
   /* Set up signal handler for suspend/resume */
   act.sa_flags = SA_RESTART|SA_SIGINFO;
   act.sa_handler = (void (*)(int)) SR_handler;
-  // SR_signum is blocked by default. 
-  // 4528190 - We also need to block pthread restart signal (32 on all
-  // supported Linux platforms). Note that LinuxThreads need to block
-  // this signal for all threads to work properly. So we don't have
-  // to use hard-coded signal number when setting up the mask.
+  // (hgg 08012004) remove an assert relating to older Linuxthreads
   pthread_sigmask(SIG_BLOCK, NULL, &act.sa_mask);
-  assert(sigismember(&act.sa_mask, 32), "incompatible pthread library");
   if (sigaction(SR_signum, &act, 0) == -1) {
     return -1;
   }
