This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, i386]: Fix PR 63966, inconsistent operand constraints compiling libcpp
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Rainer Orth <ro at cebitec dot uni-bielefeld dot de>
- Date: Thu, 20 Nov 2014 13:14:35 +0100
- Subject: Re: [PATCH, i386]: Fix PR 63966, inconsistent operand constraints compiling libcpp
- Authentication-results: sourceware.org; auth=none
- References: <CAFULd4bwJ7ay-AfS77d204x2r9xeWCdoMY7b=cHgyMPWY-KLAw at mail dot gmail dot com>
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.
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