diff mbox

[i386] : Fix PR 63966, inconsistent operand constraints compiling libcpp

Message ID CAFULd4aGfY=hC9yg+Yp+wQ8mBuH586KNQdCa6WUn1mwoVe8srA@mail.gmail.com
State New
Headers show

Commit Message

Uros Bizjak Nov. 20, 2014, 12:14 p.m. UTC
On Wed, Nov 19, 2014 at 9:59 PM, Uros Bizjak <ubizjak@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  <ubizjak@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.

 /* Replicated character data to be shared between implementations.
    Recall that outside of a context with vector support we can't
diff mbox

Patch

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