Submitted By:            Randy McMurchy (randy AT linuxfromscratch DOT org)
Date:                    2007-03-18
Initial Package Version: 1.5.0_08
Upstream Status:         Not submitted (gcc-4. builds are unsupported)
Origin:                  Bernard Leak, bernard at brenda hyphen arkle dot demon dot co dot uk
                         See Description: at
                         http://www/brenda-arkle.demon.co.uk/patches/jdk/jdk-1.5.0_08-gcc4-2.patch.bz2
                         Rediffed for 1.5.0.11 by Randy McMurchy
Description:             Work with tighter requirements of gcc-4.1.x
                         Much is from version 1, by DJ Lucas (dj AT linuxfromscratch DOT org)
                         The use of -ffriend-injection in hotspot/build/linux/makefiles/vm.make
                         is taken from steevcoco, posting at
                         http://weblogs.java.net/blog/cayhorstmann/archive/2006/06/honey_i_built_t.html
                         The specific patches removing erroneous class qualifiers are Bernard's.


diff -Naur jdk-1.5.0.11-orig/deploy/src/javaws/share/native/xmlparser.c jdk-1.5.0.11/deploy/src/javaws/share/native/xmlparser.c
--- jdk-1.5.0.11-orig/deploy/src/javaws/share/native/xmlparser.c	2007-03-19 17:34:39.000000000 +0000
+++ jdk-1.5.0.11/deploy/src/javaws/share/native/xmlparser.c	2007-03-19 17:37:51.000000000 +0000
@@ -50,7 +50,7 @@
  *                               10   | bits  6-11
  *                               10   | bits  0-5
  */
-static void RemoveNonAsciiUTF8FromBuffer(char *buf) {
+void RemoveNonAsciiUTF8FromBuffer(char *buf) {
     char* p;
     char* q;
     char c;


diff -Naur jdk-1.5.0.11-orig/hotspot/build/linux/makefiles/vm.make jdk-1.5.0.11/hotspot/build/linux/makefiles/vm.make
--- jdk-1.5.0.11-orig/hotspot/build/linux/makefiles/vm.make	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/build/linux/makefiles/vm.make	2007-03-19 19:36:12.000000000 +0000
@@ -72,7 +72,7 @@
 CPPFLAGS = ${SYSDEFS} ${INCLUDES} ${BUILD_VERSION}
 
 # Suppress warnings (for now)
-CFLAGS += -w
+CFLAGS += -w -ffriend-injection
 
 # do not include shared lib path in a.outs
 #AOUT_FLAGS += -norunpath


diff -Naur jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/frame_i486.hpp jdk-1.5.0.11/hotspot/src/cpu/i486/vm/frame_i486.hpp
--- jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/frame_i486.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/cpu/i486/vm/frame_i486.hpp	2007-03-19 19:37:42.000000000 +0000
@@ -95,5 +95,5 @@
   inline address* sender_pc_addr() const;
 
   // return address of param, zero origin index.
-  inline address* frame::native_param_addr(int idx) const;
+  inline address* native_param_addr(int idx) const;
   

diff -Naur jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/i486.ad jdk-1.5.0.11/hotspot/src/cpu/i486/vm/i486.ad
--- jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/i486.ad	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/cpu/i486/vm/i486.ad	2007-03-19 17:37:51.000000000 +0000
@@ -246,10 +246,10 @@
 static jlong fp_signmask_pool[(4+1)*2]; // 4*128bits(data) + 128bits(alignment)
 
 // Static initialization during VM startup.
-static jlong *float_signmask_pool  = double_quadword(&fp_signmask_pool[1*2], 0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF7FFFFFFF); 
-static jlong *double_signmask_pool = double_quadword(&fp_signmask_pool[2*2], 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFF); 
-static jlong *float_signflip_pool  = double_quadword(&fp_signmask_pool[3*2], 0x8000000080000000, 0x8000000080000000); 
-static jlong *double_signflip_pool = double_quadword(&fp_signmask_pool[4*2], 0x8000000000000000, 0x8000000000000000); 
+static jlong *float_signmask_pool  = double_quadword(&fp_signmask_pool[1*2], 0x7FFFFFFF7FFFFFFFULL, 0x7FFFFFFF7FFFFFFFULL); 
+static jlong *double_signmask_pool = double_quadword(&fp_signmask_pool[2*2], 0x7FFFFFFFFFFFFFFFULL, 0x7FFFFFFFFFFFFFFFULL); 
+static jlong *float_signflip_pool  = double_quadword(&fp_signmask_pool[3*2], 0x8000000080000000ULL, 0x8000000080000000ULL); 
+static jlong *double_signflip_pool = double_quadword(&fp_signmask_pool[4*2], 0x8000000000000000ULL, 0x8000000000000000ULL); 
 
 // !!!!! 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 -Naur jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/interpreter_i486.hpp jdk-1.5.0.11/hotspot/src/cpu/i486/vm/interpreter_i486.hpp
--- jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/interpreter_i486.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/cpu/i486/vm/interpreter_i486.hpp	2007-03-19 19:38:45.000000000 +0000
@@ -52,8 +52,8 @@
   void generate_stack_overflow_check(void);
 
 #ifndef CORE
-  void InterpreterGenerator::generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue);
-  void InterpreterGenerator::generate_counter_overflow(address entry_point);
+  void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue);
+  void generate_counter_overflow(address entry_point);
   void generate_run_compiled_code(void);
   void check_for_compiled_code(Label & run_compiled_code);
 #endif


diff -Naur jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/stubGenerator_i486.cpp jdk-1.5.0.11/hotspot/src/cpu/i486/vm/stubGenerator_i486.cpp
--- jdk-1.5.0.11-orig/hotspot/src/cpu/i486/vm/stubGenerator_i486.cpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/cpu/i486/vm/stubGenerator_i486.cpp	2007-03-19 19:39:41.000000000 +0000
@@ -1198,7 +1198,7 @@
   //
   // Note: the routine set_pc_not_at_call_for_caller in SharedRuntime.cpp requires
   // that this code be generated into a RuntimeStub.
-  address StubGenerator::generate_throw_exception(const char* name, address runtime_entry, bool restore_saved_exception_pc) {
+  address generate_throw_exception(const char* name, address runtime_entry, bool restore_saved_exception_pc) {
 
     int insts_size = 256;
     int locs_size  = 32;


diff -Naur jdk-1.5.0.11-orig/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp jdk-1.5.0.11/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp
--- jdk-1.5.0.11-orig/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/os_cpu/linux_i486/vm/atomic_linux_i486.inline.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -113,7 +113,7 @@
                     "cmpxchg8b (%5); xchgl %%ebx, %1"
                     : "=A" (old_value), "=r" (lo)
                     : "1" (lo), "c" (hi), "A" (compare_value), "r" (dest), "m" (mp)
-                    : "%ebx", "cc", "memory");
+                    : "cc", "memory");
   return old_value;
 }
 

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/adlc/output_h.cpp jdk-1.5.0.11/hotspot/src/share/vm/adlc/output_h.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/adlc/output_h.cpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/adlc/output_h.cpp	2007-03-19 17:54:50.000000000 +0000
@@ -672,7 +672,7 @@
     fprintf(fp_hpp, "    _mask <<= n;\n");
     fprintf(fp_hpp, "    return *this;\n");
     fprintf(fp_hpp, "  }\n\n");
-    fprintf(fp_hpp, "  void Pipeline_Use_Cycle_Mask::Or(const Pipeline_Use_Cycle_Mask &in2) {\n");
+    fprintf(fp_hpp, "  void Or(const Pipeline_Use_Cycle_Mask &in2) {\n");
     fprintf(fp_hpp, "    _mask |= in2._mask;\n");
     fprintf(fp_hpp, "  }\n\n");
     fprintf(fp_hpp, "  friend Pipeline_Use_Cycle_Mask operator&(const Pipeline_Use_Cycle_Mask &, const Pipeline_Use_Cycle_Mask &);\n");
@@ -1625,6 +1625,7 @@
     }
     if ( instr->num_post_match_opnds() != 0
          || instr->is_chain_of_constant(_globalNames) ) {
+
       fprintf(fp,"  friend MachNode *State::MachNodeGenerator(int opcode, Compile* C);\n");
     }
     if ( instr->rematerialize(_globalNames, get_registers()) ) {
@@ -1870,7 +1871,7 @@
   fprintf(fp,"  bool DFA( int opcode, const Node *ideal );\n");
   fprintf(fp,"\n");
   fprintf(fp,"  // Access function for _valid bit vector\n");
-  fprintf(fp,"  bool State::valid(uint index) {\n");
+  fprintf(fp,"  bool valid(uint index) {\n");
   fprintf(fp,"    return( STATE__VALID(index) );\n");
   fprintf(fp,"  }\n");
   fprintf(fp,"\n");


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/asm/assembler.hpp jdk-1.5.0.11/hotspot/src/share/vm/asm/assembler.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/asm/assembler.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/asm/assembler.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -10,7 +10,10 @@
 
 // This file contains platform-independant assembler declarations.
 
+class AbstractAssembler;
 class CodeBuffer;
+class Displacement;
+class Label;
 class MacroAssembler;
 
 // Labels represent target destinations for jumps and calls.


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/c1/c1_AllocTable.hpp jdk-1.5.0.11/hotspot/src/share/vm/c1/c1_AllocTable.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/c1/c1_AllocTable.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/c1/c1_AllocTable.hpp	2007-03-19 19:58:48.000000000 +0000
@@ -27,7 +27,7 @@
     allFreeState  = 0  // state when all registers are released
   };
 
-  int c1_AllocTable::get_free_helper(intx lock_state);
+  int get_free_helper(intx lock_state);
 
  public:
   c1_AllocTable(int size);


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/c1/c1_CacheLocals.hpp jdk-1.5.0.11/hotspot/src/share/vm/c1/c1_CacheLocals.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/c1/c1_CacheLocals.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/c1/c1_CacheLocals.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -11,6 +11,7 @@
 class IR;
 class ALocalList;
 class RInfoCollection;
+class RegisterManager;
 class RegisterState;
 class LIR_ScanInfo;
 

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/c1/c1_ValueMap.cpp jdk-1.5.0.11/hotspot/src/share/vm/c1/c1_ValueMap.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/c1/c1_ValueMap.cpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/c1/c1_ValueMap.cpp	2007-03-19 20:01:40.000000000 +0000
@@ -37,7 +37,7 @@
 
  public:
   // creation
-  Bucket::Bucket(int id)
+  Bucket(int id)
   : _values(ValueMapBucketInitialSize)
   , _hashes(ValueMapBucketInitialSize)
 #ifndef PRODUCT


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/ci/ciMethodData.hpp jdk-1.5.0.11/hotspot/src/share/vm/ci/ciMethodData.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/ci/ciMethodData.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/ci/ciMethodData.hpp	2007-03-19 19:34:51.000000000 +0000
@@ -54,7 +54,7 @@
   // Copy & translate from oop based VirtualCallData
   void translate_from(ProfileData* data);
 #ifndef PRODUCT
-  void ciVirtualCallData::print_data_on(outputStream* st);
+  void print_data_on(outputStream* st);
 #endif
 };
 

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/ci/ciObject.hpp jdk-1.5.0.11/hotspot/src/share/vm/ci/ciObject.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/ci/ciObject.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/ci/ciObject.hpp	2007-03-19 17:48:59.000000000 +0000
@@ -50,7 +50,7 @@
 
   jobject      handle()  const { return _handle; }
   // Get the VM oop that this object holds.
-  oop ciObject::get_oop() const {
+  oop get_oop() const {
     assert(_handle != NULL, "null oop");
     return JNIHandles::resolve_non_null(_handle);
   }


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/ci/ciObjectFactory.hpp jdk-1.5.0.11/hotspot/src/share/vm/ci/ciObjectFactory.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/ci/ciObjectFactory.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/ci/ciObjectFactory.hpp	2007-03-19 17:49:08.000000000 +0000
@@ -87,7 +87,7 @@
 
   // Get the ciMethodData representing the methodData for a method 
   // with none.
-  ciMethodData* ciObjectFactory::get_empty_methodData();
+  ciMethodData* get_empty_methodData();
 
   ciReturnAddress* get_return_address(int bci);
 

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/code/onStackReplacement.hpp jdk-1.5.0.11/hotspot/src/share/vm/code/onStackReplacement.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/code/onStackReplacement.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/code/onStackReplacement.hpp	2007-03-19 18:00:53.000000000 +0000
@@ -23,7 +23,7 @@
  private:
   int _returning_fp_entry_offset;
 
-  OSRAdapter::OSRAdapter(CodeBuffer *cb, OopMapSet *oop_maps, int size,
+  OSRAdapter(CodeBuffer *cb, OopMapSet *oop_maps, int size,
                          int frame_size, int returning_fp_entry_offset);
   void* operator new(size_t s, unsigned size);
 

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp jdk-1.5.0.11/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp	2007-03-19 17:59:54.000000000 +0000
@@ -19,7 +19,7 @@
     initialize_size_info();
   }
 
-  void GenerationSizer::initialize_flags() {
+  void initialize_flags() {
     // Do basic sizing work
     this->TwoGenerationCollectorPolicy::initialize_flags();
     

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp jdk-1.5.0.11/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp	2007-03-19 17:34:40.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -8,6 +8,7 @@
  * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  */
 
+class AdjoiningGenerations;
 class PSAdaptiveSizePolicy;
 class GCTaskManager;
 

diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/concurrentMarkSweepGeneration.hpp jdk-1.5.0.11/hotspot/src/share/vm/memory/concurrentMarkSweepGeneration.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/concurrentMarkSweepGeneration.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/memory/concurrentMarkSweepGeneration.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -21,6 +21,7 @@
 // means of a sliding mark-compact. (Not yet implemented.)
 
 class ConcurrentMarkSweepGeneration;
+class ConcurrentMarkSweepThread;
 class CompactibleFreeListSpace;
 class FreeChunk;
 class PromotionInfo;


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/dump.cpp jdk-1.5.0.11/hotspot/src/share/vm/memory/dump.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/dump.cpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/memory/dump.cpp	2007-03-19 17:37:51.000000000 +0000
@@ -1037,7 +1037,7 @@
 // Support for a simple checksum of the contents of the class list
 // file to prevent trivial tampering. The algorithm matches that in
 // the MakeClassList program used by the J2SE build process.
-#define JSUM_SEED ((jlong)0xcafebabebabecafe)
+#define JSUM_SEED ((jlong)0xcafebabebabecafeULL)
 static jlong
 jsum(jlong start, const char *buf, const int len)
 {


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/referenceProcessor.hpp jdk-1.5.0.11/hotspot/src/share/vm/memory/referenceProcessor.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/referenceProcessor.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/memory/referenceProcessor.hpp	2007-03-19 17:45:32.000000000 +0000
@@ -115,7 +115,7 @@
 
   // Returns the name of the discovered reference list 
   // occupying the i / _num_q slot.
-  const char* ReferenceProcessor::list_name(int i);
+  const char* list_name(int i);
 
  protected:
   virtual void enqueue_discovered_reflists(oop* pending_list_addr);


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/symbolTable.hpp jdk-1.5.0.11/hotspot/src/share/vm/memory/symbolTable.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/memory/symbolTable.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/memory/symbolTable.hpp	2007-03-19 17:46:10.000000000 +0000
@@ -145,7 +145,7 @@
   }
 
 
-  static int StringTable::hash_string(jchar* s, int len);
+  static int hash_string(jchar* s, int len);
 
 
   // GC support


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/opto/callnode.hpp jdk-1.5.0.11/hotspot/src/share/vm/opto/callnode.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/opto/callnode.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/opto/callnode.hpp	2007-03-19 17:50:54.000000000 +0000
@@ -335,8 +335,8 @@
   // Handle monitor stack
   void push_monitor( const FastLockNode *lock );
   void pop_monitor ();
-  Node *SafePointNode::peek_monitor_box() const;
-  Node *SafePointNode::peek_monitor_obj() const;
+  Node *peek_monitor_box() const;
+  Node *peek_monitor_obj() const;
 
   // Access functions for the JVM
   Node *control  () const { return in(TypeFunc::Control  ); }


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/opto/node.hpp jdk-1.5.0.11/hotspot/src/share/vm/opto/node.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/opto/node.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/opto/node.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -98,6 +98,7 @@
 #if OPTO_DU_ITERATOR_ASSERT
 class DUIterator;
 class DUIterator_Fast;
+class DUIterator_Last;
 #else
 typedef uint   DUIterator;
 typedef Node** DUIterator_Fast;


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/opto/parse.hpp jdk-1.5.0.11/hotspot/src/share/vm/opto/parse.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/opto/parse.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/opto/parse.hpp	2007-03-19 17:51:10.000000000 +0000
@@ -11,7 +11,7 @@
 class InlineTree;
 class Parse;
 class BytecodeParseHistogram;
-
+class SwitchRange;
 
 //------------------------------InlineTree-------------------------------------
 class InlineTree : public ResourceObj {
@@ -405,7 +405,7 @@
   void do_call();
 
   // Helper function to uncommon-trap or bailout for non-compilable call-sites
-  bool Parse::can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass *klass);
+  bool can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass *klass);
 
   // Helper function to identify inlining potential at call-site
   ciMethod* optimize_inlining(ciMethod* caller, int bci, ciInstanceKlass* klass, 


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jniId.cpp jdk-1.5.0.11/hotspot/src/share/vm/prims/jniId.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jniId.cpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/prims/jniId.cpp	2007-03-19 17:56:44.000000000 +0000
@@ -63,8 +63,8 @@
   int bucket_count(int index_cnt);           // Converts the number of indicies into the number of bucket slots.
 
  public:
-  jniIdTableHolder::jniIdTableHolder(int index_cnt);
-  jniIdTableHolder::~jniIdTableHolder();
+  jniIdTableHolder(int index_cnt);
+  ~jniIdTableHolder();
   void set_default_bucket(int index_cnt, jniIdBucket *initial_bucket);
   inline jniIdBucket** bucket_table() const     { return _bucket_table; }
   jniIdTableHolder** addr_next()                { return &_next; }


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp	2007-03-19 17:56:08.000000000 +0000
@@ -263,19 +263,19 @@
 
 
   // JVMTI API helper functions which are called at safepoint or thread is suspended.
-  jvmtiError JvmtiEnvBase::get_frame_count(JvmtiThreadState *state, jint *count_ptr);
-  jvmtiError JvmtiEnvBase::get_frame_location(JavaThread* java_thread, jint depth, 
+  jvmtiError get_frame_count(JvmtiThreadState *state, jint *count_ptr);
+  jvmtiError get_frame_location(JavaThread* java_thread, jint depth, 
                                               jmethodID* method_ptr, jlocation* location_ptr);
-  jvmtiError JvmtiEnvBase::get_object_monitor_usage(JavaThread *calling_thread,
+  jvmtiError get_object_monitor_usage(JavaThread *calling_thread,
                                                     jobject object, jvmtiMonitorUsage* info_ptr);
-  jvmtiError JvmtiEnvBase::get_stack_trace(JavaThread *java_thread, 
+  jvmtiError get_stack_trace(JavaThread *java_thread, 
                                            jint stack_depth, jint max_count,
                                            jvmtiFrameInfo* frame_buffer, jint* count_ptr);
-  jvmtiError JvmtiEnvBase::get_owned_monitor_info(JavaThread *calling_thread,
+  jvmtiError get_owned_monitor_info(JavaThread *calling_thread,
                                                          JavaThread *java_thread,
                                                          jint* count_ptr,
                                                          jobject** owned_monitors_ptr);
-  jvmtiError JvmtiEnvBase::get_current_contended_monitor(JavaThread *calling_thread, 
+  jvmtiError get_current_contended_monitor(JavaThread *calling_thread, 
                                                          JavaThread *java_thread,
                                                          jobject *monitor_ptr);

 
diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiEnvThreadState.hpp jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiEnvThreadState.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiEnvThreadState.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiEnvThreadState.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -10,6 +10,10 @@
 #ifndef _JAVA_JVMTIENVTHREADSTATE_H_
 #define _JAVA_JVMTIENVTHREADSTATE_H_
 
+
+class JvmtiEnv;
+
+
 ///////////////////////////////////////////////////////////////
 //
 // class JvmtiFramePop


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiEventController.cpp jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiEventController.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiEventController.cpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiEventController.cpp	2007-03-19 17:37:51.000000000 +0000
@@ -12,7 +12,7 @@
 # include "incls/_jvmtiEventController.cpp.incl"
 
 #ifdef JVMTI_TRACE
-#define EC_TRACE(out) if (JvmtiTrace::trace_event_controller()) { SafeResourceMark rm; tty->print_cr##out; } while (0)
+#define EC_TRACE(out) if (JvmtiTrace::trace_event_controller()) { SafeResourceMark rm; tty->print_cr out; } while (0)
 #else
 #define EC_TRACE(out)
 #endif /*JVMTI_TRACE */


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiExport.cpp jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiExport.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/prims/jvmtiExport.cpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/prims/jvmtiExport.cpp	2007-03-19 17:37:51.000000000 +0000
@@ -15,8 +15,8 @@
 extern struct JVMDI_Interface_1_ jvmdiTrace_Interface;  // temporary
 
 #ifdef JVMTI_TRACE
-#define EVT_TRACE(evt,out) if ((JvmtiTrace::event_trace_flags(evt) & JvmtiTrace::SHOW_EVENT_SENT) != 0) { SafeResourceMark rm; tty->print_cr##out; }
-#define EVT_TRIG_TRACE(evt,out) if ((JvmtiTrace::event_trace_flags(evt) & JvmtiTrace::SHOW_EVENT_TRIGGER) != 0) { SafeResourceMark rm; tty->print_cr##out; }
+#define EVT_TRACE(evt,out) if ((JvmtiTrace::event_trace_flags(evt) & JvmtiTrace::SHOW_EVENT_SENT) != 0) { SafeResourceMark rm; tty->print_cr out; }
+#define EVT_TRIG_TRACE(evt,out) if ((JvmtiTrace::event_trace_flags(evt) & JvmtiTrace::SHOW_EVENT_TRIGGER) != 0) { SafeResourceMark rm; tty->print_cr out; }
 #else
 #define EVT_TRIG_TRACE(evt,out)
 #define EVT_TRACE(evt,out)


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/arguments.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/arguments.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/arguments.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/arguments.hpp	2007-03-19 17:43:20.000000000 +0000
@@ -408,7 +408,7 @@
   }
     
   //System properties
-  static void Arguments::init_system_properties(JavaVMInitArgs* args);
+  static void init_system_properties(JavaVMInitArgs* args);
 
   // Proptery List manipulation
   static void PropertyList_add(SystemProperty** plist, SystemProperty *element);


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/classFileParser.cpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/classFileParser.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/classFileParser.cpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/classFileParser.cpp	2007-03-19 17:37:51.000000000 +0000
@@ -18,6 +18,9 @@
 
 // We add assert in debug mode when class format is not checked.
 
+#undef inline
+#undef __inline
+
 #ifdef ASSERT
 void inline assert_property(bool b, const char* msg, TRAPS) {
   if (!b) { fatal(msg); }


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/compilationPolicy.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/compilationPolicy.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/compilationPolicy.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/compilationPolicy.hpp	2007-03-19 17:43:50.000000000 +0000
@@ -60,8 +60,8 @@
   int compilation_level(methodHandle m, int branch_bci);
 
  private:
-  RFrame* StackWalkCompPolicy::findTopInlinableFrame(GrowableArray<RFrame*>* stack);
-  RFrame* StackWalkCompPolicy::senderOf(RFrame* rf, GrowableArray<RFrame*>* stack);
+  RFrame* findTopInlinableFrame(GrowableArray<RFrame*>* stack);
+  RFrame* senderOf(RFrame* rf, GrowableArray<RFrame*>* stack);
 
   // the following variables hold values computed by the last inlining decision
   // they are used for performance debugging only (print better messages)


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/globals_extension.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/globals_extension.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/globals_extension.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/globals_extension.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -117,7 +117,9 @@
 
 #define FLAG_SET_DEFAULT(name, value) ((name) = (value))
 
-#define FLAG_SET(type, name, value)   (CommandLineFlagsEx::##type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value)))
+//#define FLAG_SET(type, name, value)   (CommandLineFlagsEx::##type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value)))
+
+#define FLAG_SET(type, name, value)   (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value)))
 
 // Can't put the following in CommandLineFlags because
 // of a circular dependency on the enum definition.


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/mutex.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/mutex.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/mutex.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/mutex.hpp	2007-03-19 17:58:30.000000000 +0000
@@ -74,7 +74,7 @@
   debug_only(int _rank;)     	   // rank (to avoid/detect potential deadlocks)
   debug_only(Mutex* _next;)        // Used by a Thread to link up owned locks    
   debug_only(Thread* _last_owner;) // the last thread to own the lock    
-  debug_only(static bool Mutex::contains(Mutex* locks, Mutex* lock);)
+  debug_only(static bool contains(Mutex* locks, Mutex* lock);)
   debug_only(static Mutex* get_least_ranked_lock(Mutex* locks);)
   debug_only(Mutex* get_least_ranked_lock_besides_this(Mutex* locks);)
 #endif


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/os.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/os.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/os.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/os.hpp	2007-03-19 17:39:43.000000000 +0000
@@ -327,7 +327,7 @@
 
   // returns a string to describe the exception/signal; 
   // returns NULL if exception_code is not an OS exception/signal.
-  static const char * os::exception_name(int exception_code, char* buf, int buflen);
+  static const char * exception_name(int exception_code, char* buf, int buflen);
 
   // Returns native Java library, loads if necessary
   static void*    native_java_library();


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/stackMapTable.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/stackMapTable.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/stackMapTable.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/stackMapTable.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -8,6 +8,8 @@
  * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  */
 
+class StackMapReader;
+
 // StackMapTable class is the StackMap table used by type checker
 class StackMapTable : public CHeapObj {
   friend class ClassVerifier;


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/thread.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/thread.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/thread.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/thread.hpp	2007-03-19 17:42:45.000000000 +0000
@@ -469,9 +469,9 @@
   static ByteSize stack_base_offset()            { return byte_offset_of(Thread, _stack_base ); }
   static ByteSize stack_size_offset()            { return byte_offset_of(Thread, _stack_size ); }
 
-#define TLAB_FIELD_OFFSET(name) \
-  static ByteSize tlab_##name##_offset()            { return byte_offset_of(Thread, _tlab) + ThreadLocalAllocBuffer::##name##_offset(); }
-
+ #define TLAB_FIELD_OFFSET(name) \
+  static ByteSize tlab_##name##_offset()            { return byte_offset_of(Thread, _tlab) + ThreadLocalAllocBuffer::name##_offset(); }
+                                                                                 
   TLAB_FIELD_OFFSET(start)
   TLAB_FIELD_OFFSET(end)
   TLAB_FIELD_OFFSET(top)
@@ -480,7 +480,7 @@
   TLAB_FIELD_OFFSET(number_of_refills)
   TLAB_FIELD_OFFSET(fast_refill_waste)
   TLAB_FIELD_OFFSET(slow_allocations)
-
+                                                                                 
 #undef TLAB_FIELD_OFFSET
 
 };
@@ -1518,7 +1518,7 @@
   static void find_deadlocks(GrowableArray<JavaThread*>* deadlock_threads, bool print_to_tty);
 
   // Fabricate heavyweight monitor info for each lightweight monitor.
-  static GrowableArray<ObjectMonitor*>* Threads::jvmpi_fab_heavy_monitors();
+  static GrowableArray<ObjectMonitor*>* jvmpi_fab_heavy_monitors();
 
   // Get Java threads that are waiting to enter a monitor. If doLock
   // is true, then Threads_lock is grabbed as needed. Otherwise, the


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/verificationType.hpp jdk-1.5.0.11/hotspot/src/share/vm/runtime/verificationType.hpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/runtime/verificationType.hpp	2007-03-19 17:34:41.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/runtime/verificationType.hpp	2007-03-19 17:37:51.000000000 +0000
@@ -41,6 +41,7 @@
 class ArrType;
 class ObjType;
 class UninitializedType;
+class ClassVerifier;
 
 // represents primary types
 // super class of all other inference types


diff -Naur jdk-1.5.0.11-orig/hotspot/src/share/vm/utilities/events.cpp jdk-1.5.0.11/hotspot/src/share/vm/utilities/events.cpp
--- jdk-1.5.0.11-orig/hotspot/src/share/vm/utilities/events.cpp	2007-03-19 17:34:42.000000000 +0000
+++ jdk-1.5.0.11/hotspot/src/share/vm/utilities/events.cpp	2007-03-19 19:41:52.000000000 +0000
@@ -143,7 +143,7 @@
     }
   }
 
-  static void EventBuffer::print_all(outputStream* st) {
+  static void print_all(outputStream* st) {
     print_last(st, size);
   }
 

diff -Naur jdk-1.5.0.11-orig/j2se/make/java/nio/Makefile jdk-1.5.0.11/j2se/make/java/nio/Makefile
--- jdk-1.5.0.11-orig/j2se/make/java/nio/Makefile	2007-03-19 17:34:42.000000000 +0000
+++ jdk-1.5.0.11/j2se/make/java/nio/Makefile	2007-03-19 17:37:51.000000000 +0000
@@ -122,7 +122,7 @@
      $(OBJDIR)/../../../java.lang/java/$(OBJDIRNAME)/FileDescriptor_md.obj
 endif
 ifeq ($(PLATFORM), linux)
-OTHER_CFLAGS += -Werror
+OTHER_CFLAGS += -Werror -Wno-pointer-sign
 OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH)$(SUFFIX) -ljava$(SUFFIX) -lnet$(SUFFIX) -lpthread -ldl
 endif
 ifeq ($(PLATFORM), solaris)


diff -Naur jdk-1.5.0.11-orig/j2se/src/share/native/sun/awt/cmm/spattrio.c jdk-1.5.0.11/j2se/src/share/native/sun/awt/cmm/spattrio.c
--- jdk-1.5.0.11-orig/j2se/src/share/native/sun/awt/cmm/spattrio.c	2007-03-19 17:34:57.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/share/native/sun/awt/cmm/spattrio.c	2007-03-19 17:37:51.000000000 +0000
@@ -866,7 +866,7 @@
 			(SpTypeMultiLanguage == Record->DeviceModelDesc.TagType)) {
 			Record++;
 		} else {
-			((SpProfileSeqDescRecord_t	FAR *)Record)++;
+			(SpProfileSeqDescRecord_t	FAR *)Record++;
 		}
 	}
 	return SpStatSuccess;


diff -Naur jdk-1.5.0.11-orig/j2se/src/share/native/sun/awt/cmm/sprof-pr.h jdk-1.5.0.11/j2se/src/share/native/sun/awt/cmm/sprof-pr.h
--- jdk-1.5.0.11-orig/j2se/src/share/native/sun/awt/cmm/sprof-pr.h	2007-03-19 17:34:57.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/share/native/sun/awt/cmm/sprof-pr.h	2007-03-19 17:37:51.000000000 +0000
@@ -619,7 +619,7 @@
 
 void FAR *SpMalloc (KpInt32_t Size);
 
-KpBool_t TestFileCB(KpfileDirEntry_t FAR *fileSearch,
+static KpBool_t TestFileCB(KpfileDirEntry_t FAR *fileSearch,
                     Limits_t             *Limits);
 
 KpInt32_t TestHeaderDate(SpDateTime_t *ValA, SpDateTime_t *ValB);


diff -Naur jdk-1.5.0.11-orig/j2se/src/share/native/sun/font/bidi/uchardir.c jdk-1.5.0.11/j2se/src/share/native/sun/font/bidi/uchardir.c
--- jdk-1.5.0.11-orig/j2se/src/share/native/sun/font/bidi/uchardir.c	2007-03-19 17:34:58.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/share/native/sun/font/bidi/uchardir.c	2007-03-19 17:37:51.000000000 +0000
@@ -34,6 +34,8 @@
 
 #include "uchardir.h"
 
+static UCharDirection u_getDirectionInternal(uint32_t);
+
 /* new 4.0 surrogate data */
 static uint32_t ASCII_START = 0x0;
 static uint32_t ASCII_LIMIT = 0x80;


diff -Naur jdk-1.5.0.11-orig/j2se/src/solaris/bin/java_md.c jdk-1.5.0.11/j2se/src/solaris/bin/java_md.c
--- jdk-1.5.0.11-orig/j2se/src/solaris/bin/java_md.c	2007-03-19 17:34:58.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/solaris/bin/java_md.c	2007-03-19 17:37:51.000000000 +0000
@@ -1188,7 +1188,7 @@
                     : /* Inputs */
                     "m" (arg)
                     : /* Clobbers */
-                    "%eax", "%ebx", "%ecx", "%edx"
+                    "%eax", "%ecx", "%edx"
                     );
   *eaxp = value_of_eax;
   *ebxp = value_of_ebx;


diff -Naur jdk-1.5.0.11-orig/j2se/src/solaris/hpi/native_threads/src/interrupt_md.c jdk-1.5.0.11/j2se/src/solaris/hpi/native_threads/src/interrupt_md.c
--- jdk-1.5.0.11-orig/j2se/src/solaris/hpi/native_threads/src/interrupt_md.c	2007-03-19 17:34:58.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/solaris/hpi/native_threads/src/interrupt_md.c	2007-03-19 17:37:51.000000000 +0000
@@ -110,8 +110,8 @@
 }
 
 #ifndef HAVE_SIGIGNORE
-static int							
-sigignore(int sig)		
+/* static int */							
+int sigignore(int sig)		
 {				
     struct sigaction action;
     sigset_t set;


diff -Naur jdk-1.5.0.11-orig/j2se/src/solaris/hpi/src/system_md.c jdk-1.5.0.11/j2se/src/solaris/hpi/src/system_md.c
--- jdk-1.5.0.11-orig/j2se/src/solaris/hpi/src/system_md.c	2007-03-19 17:34:58.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/solaris/hpi/src/system_md.c	2007-03-19 17:37:51.000000000 +0000
@@ -23,6 +23,7 @@
 #include <dlfcn.h>
 
 #include "jni_md.h"
+#include "jvm_md.h"
 #include "mutex_md.h"
 
 #include "hpi_init.h"


diff -Naur jdk-1.5.0.11-orig/j2se/src/solaris/javavm/export/jvm_md.h jdk-1.5.0.11/j2se/src/solaris/javavm/export/jvm_md.h
--- jdk-1.5.0.11-orig/j2se/src/solaris/javavm/export/jvm_md.h	2007-03-19 17:34:58.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/solaris/javavm/export/jvm_md.h	2007-03-19 17:37:51.000000000 +0000
@@ -48,7 +48,7 @@
 #define JVM_O_O_APPEND   O_APPEND
 #define JVM_O_EXCL       O_EXCL
 #define JVM_O_CREAT      O_CREAT
-#define JVM_O_DELETE     0x10000
+#define JVM_O_DELETE     0x1000000
 
 /* Signals */
 

diff -Naur jdk-1.5.0.11-orig/j2se/src/solaris/native/sun/awt/awt_dnd.c jdk-1.5.0.11/j2se/src/solaris/native/sun/awt/awt_dnd.c
--- jdk-1.5.0.11-orig/j2se/src/solaris/native/sun/awt/awt_dnd.c	2007-03-19 17:34:58.000000000 +0000
+++ jdk-1.5.0.11/j2se/src/solaris/native/sun/awt/awt_dnd.c	2007-03-19 17:37:51.000000000 +0000
@@ -169,7 +169,7 @@
     return awt_root_window;
 }
 
-static unsigned char xerror_code = Success;
+unsigned char xerror_code = Success;
 
 static int 
 xerror_handler(Display *dpy, XErrorEvent *err) {


diff -Naur jdk-1.5.0.11-orig/share/plugin/mozilla_headers_ns610/nscore.h jdk-1.5.0.11/share/plugin/mozilla_headers_ns610/nscore.h
--- jdk-1.5.0.11-orig/share/plugin/mozilla_headers_ns610/nscore.h	2007-03-19 17:34:18.000000000 +0000
+++ jdk-1.5.0.11/share/plugin/mozilla_headers_ns610/nscore.h	2007-03-19 17:37:51.000000000 +0000
@@ -192,6 +192,10 @@
   #define HAVE_CPP_2BYTE_WCHAR_T
 #endif
 
+#if defined(__GNUC__)
+  #define HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX
+#endif
+
   /* until we get an autoconf test for this, we'll assume it's on (since we're using it already) */
 #define HAVE_CPP_TYPENAME
 

diff -Naur jdk-1.5.0.11-orig/share/plugin/mozilla_headers_ns7/nscore.h jdk-1.5.0.11/share/plugin/mozilla_headers_ns7/nscore.h
--- jdk-1.5.0.11-orig/share/plugin/mozilla_headers_ns7/nscore.h	2007-03-19 17:34:19.000000000 +0000
+++ jdk-1.5.0.11/share/plugin/mozilla_headers_ns7/nscore.h	2007-03-19 17:37:51.000000000 +0000
@@ -202,6 +202,10 @@
   #define HAVE_CPP_2BYTE_WCHAR_T
 #endif
 
+#if defined(__GNUC__)
+  #define HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX
+#endif
+
   /* until we get an autoconf test for this, we'll assume it's on (since we're using it already) */
 #define HAVE_CPP_TYPENAME
 
