[PATCH] Fix sparc bitness overrides in GAS. Noticed by Eric Botcazou.

David Miller davem@davemloft.net
Tue Nov 20 08:40:00 GMT 2012


Only the older sets of arch specifications should override
the bitness of the object file we are creating.  The newer
ones are supposed to leave the bitness alone.

Commited to mainline.

gas/

	* config/tc-sparc.c (md_parse_option): Only certain arch
	specifications should override the object to be 32-bit
	or 64-bit.
---
 gas/ChangeLog         |  6 ++++++
 gas/config/tc-sparc.c | 14 +++++++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index f1e6207..bce371f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2012-11-20  David S. Miller  <davem@davemloft.net>
+
+	* config/tc-sparc.c (md_parse_option): Only certain arch
+	specifications should override the object to be 32-bit
+	or 64-bit.
+
 2012-11-14  David Holsgrove  <david.holsgrove@xilinx.com>
 
 	* config/tc-microblaze.c (md_assemble): Add support for INST_TYPE_IMM5
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index fe7f8b0..d35b188 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -480,10 +480,18 @@ md_parse_option (int c, char *arg)
 
     case OPTION_XARCH:
 #ifdef OBJ_ELF
-      if (strncmp (arg, "v9", 2) != 0)
-	md_parse_option (OPTION_32, NULL);
-      else
+      if (!strncmp (arg, "v9", 2))
 	md_parse_option (OPTION_64, NULL);
+      else
+	{
+	  if (!strncmp (arg, "v8", 2)
+	      || !strncmp (arg, "v7", 2)
+	      || !strncmp (arg, "v6", 2)
+	      || !strcmp (arg, "sparclet")
+	      || !strcmp (arg, "sparclite")
+	      || !strcmp (arg, "sparc86x"))
+	    md_parse_option (OPTION_32, NULL);
+	}
 #endif
       /* Fall through.  */
 
-- 
1.7.12.2.dirty



More information about the Binutils mailing list