From ce0d1972043ea09562ed28d2bb9cadc50a9dd29d Mon Sep 17 00:00:00 2001
From: Doug Kwan <dougkwan@google.com>
Date: Thu, 12 Aug 2010 18:27:46 +0000
Subject: Index: gold/arm.cc
 =================================================================== RCS file:
 /cvs/src/src/gold/arm.cc,v retrieving revision 1.116 diff -u -u -p -r1.116
 arm.cc --- gold/arm.cc	3 Aug 2010 14:07:12 -0000	1.116 +++ gold/arm.cc
 6 Aug 2010 07:59:30 -0000 @@ -10290,11 +10290,11 @@
 Target_arm<big_endian>::merge_object_att  	   
 out_attr[i].set_int_value(in_attr[i].int_value());  	  break;  	case
 elfcpp::Tag_ABI_PCS_wchar_t: -	  // FIXME: Make it possible to turn off this
 warning.  	  if (out_attr[i].int_value()  	      &&
 in_attr[i].int_value()  	      && out_attr[i].int_value() !=
 in_attr[i].int_value() -	      &&
 parameters->options().warn_mismatch()) +	      &&
 parameters->options().warn_mismatch() +	      &&
 parameters->options().wchar_size_warning())  	    {  	     
 gold_warning(_("%s uses %u-byte wchar_t yet the output is to "  	
 	     "use %u-byte wchar_t; use of wchar_t values " @@ -10315,10
 +10315,10 @@ Target_arm<big_endian>::merge_object_att  		  //
 Use whatever requirements the new object has.  		 
 out_attr[i].set_int_value(in_attr[i].int_value());  		} -	     
 // FIXME: Make it possible to turn off this warning.  	      else if
 (in_attr[i].int_value() != elfcpp::AEABI_enum_forced_wide  		      
 && out_attr[i].int_value() != in_attr[i].int_value() -		       &&
 parameters->options().warn_mismatch()) +		       &&
 parameters->options().warn_mismatch() +		       &&
 parameters->options().enum_size_warning())  		{  		 
 unsigned int in_value = in_attr[i].int_value();  		  unsigned int
 out_value = out_attr[i].int_value(); Index: gold/options.h
 =================================================================== RCS file:
 /cvs/src/src/gold/options.h,v retrieving revision 1.147 diff -u -u -p -r1.147
 options.h --- gold/options.h	1 Jun 2010 23:37:57 -0000	1.147 +++
 gold/options.h	6 Aug 2010 07:59:30 -0000 @@ -722,6 +722,10 @@ class
 General_options    DEFINE_special(EL, options::ONE_DASH, '\0',  	
  N_("Link little-endian objects."), NULL);

+  DEFINE_bool(enum_size_warning, options::TWO_DASHES, '\0', true, NULL,
+	      N_("(ARM only) Do not warn about objects with incompatible "
+		 "enum sizes"));
+
   DEFINE_bool(fatal_warnings, options::TWO_DASHES, '\0', false,
 	      N_("Treat warnings as errors"),
 	      N_("Do not treat warnings as errors"));
@@ -1038,6 +1042,10 @@ class General_options
 		    N_("Report unresolved symbols as errors"),
 		    NULL, true);

+  DEFINE_bool(wchar_size_warning, options::TWO_DASHES, '\0', true, NULL,
+	      N_("(ARM only) Do not warn about objects with incompatible "
+		 "wchar_t sizes"));
+
   DEFINE_bool(whole_archive, options::TWO_DASHES, '\0', false,
               N_("Include all archive contents"),
               N_("Include only needed archive contents"));
---
 gold/ChangeLog | 7 +++++++
 1 file changed, 7 insertions(+)

(limited to 'gold/ChangeLog')

diff --git a/gold/ChangeLog b/gold/ChangeLog
index d19a5be..90510b5 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,10 @@
+2010-08-12  Doug Kwan  <dougkwan@google.com>
+
+	* arm.cc (Target_arm::merge_object_attributes): Check command line
+	options --no-wchar-size-warning and --no-enum-size-warning.
+	* options.h (General_options): Add ld-compatible options
+	--no-enum-size-warning and --no-wchar-size-warning.
+
 2010-08-04  Ian Lance Taylor  <iant@google.com>
 
 	* x86_64.cc (Target_x86_64::Scan::local): Use
-- 
cgit v1.1