6718830: Hotspot fails to build with gcc 4.3
authorxlu
Thu, 26 Jun 2008 14:15:01 -0700
changeset 775 d9c9b9cd55fb
parent 774 e71318ea23e8
child 776 c85773ee7153
6718830: Hotspot fails to build with gcc 4.3 Summary: Fixed linux make file and couple adlc code to meet the changes of gcc 4.3 Reviewed-by: kamg, igor
hotspot/make/linux/makefiles/gcc.make
hotspot/src/share/vm/adlc/adlc.hpp
hotspot/src/share/vm/adlc/filebuff.hpp
--- a/hotspot/make/linux/makefiles/gcc.make	Tue Jun 24 16:52:31 2008 -0700
+++ b/hotspot/make/linux/makefiles/gcc.make	Thu Jun 26 14:15:01 2008 -0700
@@ -84,8 +84,17 @@
 
 # Compiler warnings are treated as errors
 WARNINGS_ARE_ERRORS = -Werror
+
 # Except for a few acceptable ones
+# Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
+# conversions which might affect the values. To avoid that, we need to turn
+# it off explicitly. 
+ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
+ACCEPTABLE_WARNINGS = -Wpointer-arith -Wsign-compare
+else
 ACCEPTABLE_WARNINGS = -Wpointer-arith -Wconversion -Wsign-compare
+endif
+
 CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(ACCEPTABLE_WARNINGS)
 # Special cases
 CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) 
--- a/hotspot/src/share/vm/adlc/adlc.hpp	Tue Jun 24 16:52:31 2008 -0700
+++ b/hotspot/src/share/vm/adlc/adlc.hpp	Thu Jun 26 14:15:01 2008 -0700
@@ -29,11 +29,7 @@
 // standard library constants
 #include "stdio.h"
 #include "stdlib.h"
-#if _MSC_VER >= 1300  // Visual C++ 7.0 or later
 #include <iostream>
-#else
-#include <iostream.h>
-#endif
 #include "string.h"
 #include "ctype.h"
 #include "stdarg.h"
--- a/hotspot/src/share/vm/adlc/filebuff.hpp	Tue Jun 24 16:52:31 2008 -0700
+++ b/hotspot/src/share/vm/adlc/filebuff.hpp	Thu Jun 26 14:15:01 2008 -0700
@@ -23,13 +23,9 @@
  */
 
 // FILEBUFF.HPP - Definitions for parser file buffering routines
+#include <iostream>
 
-#if _MSC_VER >= 1300  // Visual C++ 7.0 or later
-#include <iostream>
-#else
-#include <iostream.h>
-#endif
-
+using namespace std;
 // STRUCTURE FOR HANDLING INPUT AND OUTPUT FILES
 typedef struct {
   const char *_name;