Hello!

libcpp/lex.c includes "../gcc/config/i386/cpuid.h", and is picked up
by the system compiler during stage1. Recently, cpuid.h was changed to
account for %ebx changes and now uses "b" asm constraint for i686 even
with __PIC__.

Attached patch solves this issue by including system <cpuid.h> for GCC < 5.0.

2014-11-19  Uros Bizjak  <ubiz...@gmail.com>

    PR target/63966
    * lex.c [__i386__ || __x86_64__]: Include system <cpuid.h> for
    GCC_VERSION < 5000.

Patch was bootstrapped on x86_64-linux-gnu, Fedora 20. Patch will be
committed to mainline in a day or two, preferably after someone tests
it on Darwin.

Uros.
Index: lex.c
===================================================================
--- lex.c       (revision 217789)
+++ lex.c       (working copy)
@@ -471,7 +471,11 @@ search_line_sse42 (const uchar *s, const uchar *en
 
 /* Check the CPU capabilities.  */
 
+#if (GCC_VERSION >= 5000)
 #include "../gcc/config/i386/cpuid.h"
+#else
+#include <cpuid.h>
+#endif
 
 typedef const uchar * (*search_line_fast_type) (const uchar *, const uchar *);
 static search_line_fast_type search_line_fast;

Reply via email to