public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r8-10858] powerpc, libcpp: Fix gcc build with clang on power8 [PR97163]
@ 2021-04-22 16:48 Jakub Jelinek
  0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2021-04-22 16:48 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:ebb474647037a7bd429e400b21b2dedbb78fee5e

commit r8-10858-gebb474647037a7bd429e400b21b2dedbb78fee5e
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Sep 26 10:07:41 2020 +0200

    powerpc, libcpp: Fix gcc build with clang on power8 [PR97163]
    
    libcpp has two specialized altivec implementations of search_line_fast,
    one for power8+ and the other one otherwise.
    Both use __attribute__((altivec(vector))) and the GCC builtins rather than
    altivec.h and the APIs from there, which is fine, but should be restricted
    to when libcpp is built with GCC, so that it can be relied on.
    The second elif is
    and thus e.g. when built with clang it isn't picked, but the first one was
    just guarded with
    and so according to the bugreporter clang fails miserably on that.
    
    The following patch fixes that by adding the same GCC_VERSION requirement
    as the second version.  I don't know where the 4.5 in there comes from and
    the exact version doesn't matter that much, as long as it is above 4.2 that
    clang pretends to be and smaller or equal to 4.8 as the oldest gcc we
    support as bootstrap compiler ATM.
    Furthermore, the patch fixes the comment, the version it is talking about is
    not pre-GCC 5, but actually the GCC 5+ one.
    
    2020-09-26  Jakub Jelinek  <jakub@redhat.com>
    
            PR bootstrap/97163
            * lex.c (search_line_fast): Only use _ARCH_PWR8 Altivec version
            for GCC >= 4.5.
    
    (cherry picked from commit cd547f0ddcd3a54e5b73bcda5ac0f0c46808db8b)

Diff:
---
 libcpp/lex.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libcpp/lex.c b/libcpp/lex.c
index 37c365a3560..f0c53b71c25 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -531,11 +531,11 @@ init_vectorized_lexer (void)
   search_line_fast = impl;
 }
 
-#elif defined(_ARCH_PWR8) && defined(__ALTIVEC__)
+#elif (GCC_VERSION >= 4005) && defined(_ARCH_PWR8) && defined(__ALTIVEC__)
 
 /* A vection of the fast scanner using AltiVec vectorized byte compares
    and VSX unaligned loads (when VSX is available).  This is otherwise
-   the same as the pre-GCC 5 version.  */
+   the same as the AltiVec version.  */
 
 ATTRIBUTE_NO_SANITIZE_UNDEFINED
 static const uchar *


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-22 16:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-22 16:48 [gcc r8-10858] powerpc, libcpp: Fix gcc build with clang on power8 [PR97163] Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).