From 789d73cb17fce09bfdf7380b67d75fb960f6a517 Mon Sep 17 00:00:00 2001
From: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date: Tue, 24 Aug 2010 17:23:35 +0000
Subject: [PATCH] lex.c: Disable init_vectorized_lexer etc.

	* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
	etc. on Solaris 2/x86.

From-SVN: r163522
---
 libcpp/ChangeLog |  5 +++++
 libcpp/lex.c     | 12 +++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 25706ef3cd16..b2237e6d48f4 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
+	etc. on Solaris 2/x86.
+
 2010-08-21  Richard Henderson  <rth@redhat.com>
 	    Andi Kleen <ak@linux.intel.com>
 	    David S. Miller  <davem@davemloft.net>
diff --git a/libcpp/lex.c b/libcpp/lex.c
index bc0086df1d5e..a94e57282d8f 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -264,7 +264,17 @@ search_line_acc_char (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
     }
 }
 
-#if (GCC_VERSION >= 4005) && (defined(__i386__) || defined(__x86_64__))
+/* Disable on Solaris 2/x86 until the following problems can be properly
+   autoconfed:
+
+   The Solaris 8 assembler cannot assemble SSE2/SSE4.2 insns.
+   The Solaris 9 assembler cannot assemble SSE4.2 insns.
+   Before Solaris 9 Update 6, SSE insns cannot be executed.
+   The Solaris 10+ assembler tags objects with the instruction set
+   extensions used, so SSE4.2 executables cannot run on machines that
+   don't support that extension.  */
+
+#if (GCC_VERSION >= 4005) && (defined(__i386__) || defined(__x86_64__)) && !(defined(__sun__) && defined(__svr4__))
 
 /* Replicated character data to be shared between implementations.
    Recall that outside of a context with vector support we can't
-- 
GitLab