Re: [PATCH, i386]: Fix PR 63966, inconsistent operand constraints compiling libcpp
On Wed, Nov 19, 2014 at 9:59 PM, Uros Bizjak ubiz...@gmail.com wrote: 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 is what I have committed to mainline SVN. 2014-11-20 Uros Bizjak ubiz...@gmail.com PR target/63966 * lex.c [__i386__ || __x86_64__]: Compile special SSE functions only for (__GNUC__ = 5 || !defined(__PIC__)). Bootstrapped on x86_64-linux-gnu, Fedora 20 and CentOS 5.11. Uros. Index: lex.c === --- lex.c (revision 217830) +++ lex.c (working copy) @@ -270,7 +270,7 @@ 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__)) +#if (GCC_VERSION = 4005) (__GNUC__ = 5 || !defined(__PIC__)) (defined(__i386__) || defined(__x86_64__)) !(defined(__sun__) de /* Replicated character data to be shared between implementations. Recall that outside of a context with vector support we can't
[PATCH, i386]: Fix PR 63966, inconsistent operand constraints compiling libcpp
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;