From patchwork Wed Oct 25 07:36:18 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830123 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86322-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="N3M9+TPX"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMR764pfz9sRW for ; Wed, 25 Oct 2017 18:37:07 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=IdmUhFJB n2pAGQODVxhhFC0iHXpFAMAhEGJWvdZij1Fy8WIdv5T3lorkRzOi0Ni5Mxd1D3HP xK11RdYdwG/wgNwIdP5mM206xH4LqePjrgNhyMSOjxa3sFjesW/Rlcq5vtLVvBUY EdNu2/W+xPa4j62kbsrFomfahtEUdo307Ng= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=Zgi9MGpQWl1HN6 TTe5bPWw4kR3E=; b=N3M9+TPXUcZzLLeRjHeWwTOmbJd8ku95pj2jVDssV4Tg2n vn0QeessgEv7IwoCXmGeq3shMIPdCn1NaY9RQct7u4TIF8LXkb4TsgZpidOj7rD2 LBP0k/5oiNzkPnmn6lcN+APV1lKGihMiglqzdz+Y3Gd390aasrxAOZpLf/OWg= Received: (qmail 32196 invoked by alias); 25 Oct 2017 07:36:45 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 32153 invoked by uid 89); 25 Oct 2017 07:36:45 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-pf0-f195.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=z09pTgf+Y+J8Ec4dmuSnO6tKIvcCCRPeryf7RIgkZhQ=; b=jseFdu4w6vXg6RQnmNlTz9tHV5Bu/s97YhpPQM3QA0igq4UGhMc3BP96eVLEX56f/5 UfzgmZXOBJVEGMex8TL5NAxjTDCRPtEkLMgPvzWT8H4X7mzak/xsfgAId/3a74J/tSUO gnR3EtUyIMfXoQU7CdN9YYP3BZ/KiWOvliJDDHBUoNqC+CyGdVpBDuPtLTLGXBV3LIqT 9kcegTElnePS0dKkxrnHjrMLw5+yLo7lT7N9xF0xKae8tR9f+cW+lVPEAlxaoJVd5dKw RmkYml6zTVK9Vh0vwNLrF8rwPKHDMpaDzAJE8MDxNxJy9ZtTJ/PMKJxZmU9rvHUvM9rL uiIA== X-Gm-Message-State: AMCzsaVsodwiDFMlVB/qPBPaC5xunIZXWW/cE02quwy6mdMdo6PwXjtF j1mbJ1FlqY47iVHwZzQWSv5bTQ== X-Google-Smtp-Source: ABhQp+RGH/LuZ2pimtT7y7M00XsnroBzY5HfFGFYZuDq9Ri6TE7N+ceFC+FHWIXn3D9VufFxI+mooA== X-Received: by 10.84.235.69 with SMTP id g5mr1068352plt.239.1508917001886; Wed, 25 Oct 2017 00:36:41 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 1/7] [PowerPC64] Don't define __GI_ variant of isnan for static lib Date: Wed, 25 Oct 2017 18:06:18 +1030 Message-Id: In-Reply-To: References: In-Reply-To: References: It seems to me that libc.a should not contain any of the __GI_ symbols, and certainly --enable-multi-arch ought to not add to the list. At the end of this patch series we have the following in both --enable-multi-arch and --disable-multi-arch libc.a: 0000000000000000 T __GI___readdir64 0000000000000000 T __GI___fxstatat64 0000000000000000 T __GI_getrlimit 0000000000000000 T __GI___getrlimit * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S (hidden_def): Redefine only when SHARED. Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S index eba0d4f..fe2d4f1 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S @@ -28,8 +28,10 @@ #define __isnan __isnan_ppc64 -#undef hidden_def -#define hidden_def(name) \ - .globl __GI___isnan ; .set __GI___isnan,__isnan_ppc64 +#ifdef SHARED + #undef hidden_def + #define hidden_def(name) \ + .globl __GI___isnan ; .set __GI___isnan,__isnan_ppc64 +#endif #include From patchwork Wed Oct 25 07:36:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830124 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86323-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="RQrUm5YI"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMRL1s6Rz9sRW for ; Wed, 25 Oct 2017 18:37:18 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=xzdyiuZY RDRfmlwiEfNJm80xssYHHULiB22iQIkGQnr62MnMNLcxInPIrRTBjhBk51+4ctwt K+vR3vu0p7vwvttIwBOGJilAIn/ZGdSUxWwlSZQMgKaVFB8/MsdrVfbpcc4NrRrf 51OmUly/JL56OpzShMBu33YIDYF0g56tMYM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=LcdBh5efR9xHJW psSiEgTAXqQ38=; b=RQrUm5YI8udYoF/rLCNbW3jA7wJoFFSerOFbbfCI5kwy8I HplJ/5nO+Fx4bsNYP/WScY2BJMPqcjyS6k+HssMa92DOo35uklnNKbuMXwI8Pyr2 txywluM3b70FpoWlq/2pUQhxJoV/wr4mcz1LaUdpK+KAYYq9Iz5Rro5tRzUoI= Received: (qmail 32444 invoked by alias); 25 Oct 2017 07:36:47 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 32400 invoked by uid 89); 25 Oct 2017 07:36:47 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-pg0-f45.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=DY+NB+cJ/yuLM4U89mS7l/fIhwDdiLGCTrj6xXuiqas=; b=E/AzpnlBUtYL0FgsvxHyEIEpvKUZsR0FSU5St8oVI3ro8m6k6sqUSrDYhMzMc9d3rH ipWMcuDAIrfmMDqtsoiww8F5vkhMPiq7JrzKIeOiKSfRTMk+eMNmhJk/5quVoiFTi+4D 2kLHNtCBOKTlyUUs4jCkRrIjzuX0UNZ0vI8CNiiKGau8asLi/A8HWh+FoTOfIeKgH0lH FRHFVBeStCAKyOAVmpieYcklma0kK47OHHAyOkbMndcHECkWDQ+AZIC2dCIlKRsTz2TB eu6f6vy/nRxLF98sj95ST9oM9rA0jvXQPa4eez2HXCeP7JegQNQdfqQKZmSRHbThP6IJ IOnQ== X-Gm-Message-State: AMCzsaUWVgBIuiQSnBeG91T6soQkqNNdKZEi8wWKPZjTtDMJn9wnBowS us/GAHBLPIOKY9jfg8n3DKRGsQ== X-Google-Smtp-Source: ABhQp+QW7/4CcNaWUK/pt3eoguGme9eipOlPuW54J1Xz9XuZdyWnuz1+WLCSfeZ3hwDFkJVtqyyuLw== X-Received: by 10.98.139.8 with SMTP id j8mr1353842pfe.30.1508917004524; Wed, 25 Oct 2017 00:36:44 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 2/7] [PowerPC64] Remove duplicate define in stpncpy-power8.S Date: Wed, 25 Oct 2017 18:06:19 +1030 Message-Id: <4e53e8b7cc10839bafee7e8265b49ba587c5bb02.1508908224.git.amodra@gmail.com> In-Reply-To: References: In-Reply-To: References: USE_AS_STPNCPY is defined by sysdeps/powerpc/powerpc64/power8/stpncpy.S, included by this file. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Don't define USE_AS_STPNCPY. Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S index 9663659..9c71bb0 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S @@ -18,8 +18,6 @@ #include -#define USE_AS_STPNCPY - #define STPNCPY __stpncpy_power8 #undef libc_hidden_builtin_def From patchwork Wed Oct 25 07:36:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830125 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86324-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="LDciOFCu"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMRX2DtRz9sRW for ; Wed, 25 Oct 2017 18:37:28 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=SM0p29oS Sod2FIAo5FzpSksgxmURn4uIAeSo1dP4fyiHAcZaDeO4I40kRzqHt1dY1GrIYnCj dm+cB/pOZk013E4FQn4qB5+r+00LYFvnVAXAV8h+qTRKsT5zqJHg1bpVWfstbDmg N5sqwzR9BykBd2reMO9SSex9U6KvKtXIcWQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=rLaZxxkqLkpRz+ BwS5YeiP6TzXA=; b=LDciOFCu+JlEf+sFJesBaLTdz4L1rezvGR8PxAtADFUcxP pgpIVNOoohqP0JWgf04x4v2+xHnohM6ETRnKFjEmXSh1K3oeM8kKjjt0uHM6Sdy6 wP3EH7EVTem6oXo/Dnb7+LCyu23gfApEOn7jLPx+rlCDpxv4MSIqisCF23KHc= Received: (qmail 32705 invoked by alias); 25 Oct 2017 07:36:50 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 32676 invoked by uid 89); 25 Oct 2017 07:36:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-pf0-f177.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=NwCYSr6DAQMAcvMOeosDNeXEW52FUDO2QHoi8qMeBTU=; b=Gwgx29/Jn8TG2PeK663H4nGZtUZsoKvpDc0R7F3ueHg2H7Hir1AhW6v16ZQEyoUze9 IwDvgLup4MEGKtiAOccluNmy+Zn6d+nzZ0H+PLaO6W76FubhSJElyPRFrmI5/yMe1AzU STXWTCV2oh1wv2LtqMZlf2v7SeWN9q7k1gNk9+Xp8NVQgm5de4U1cqLMg++QX333wYKt yo9FXJMs/wk67Kw/8PqMFG68lI6aARry3K3KDAKLFIuZt+3PmGGtXLTs7xlfo24VdiCb 1K4RK4uYzFXFNzM0o6MH5sAjRFMUOLPOqDNKnipgfXPRVnv58TGcvDX9RfKuYf1cqegW gUgg== X-Gm-Message-State: AMCzsaWo64lXiPEKgb3noErgagBMv0DrEVmVsYFfFGX0R+Aemjba8OmD Aeby/664ziUieEP/UwxlgoHS0A== X-Google-Smtp-Source: ABhQp+TbsITV5GYAdLj8XDaK7ogn86adCn3BHryI5IZFZQ5VXwY91JQcnOD6F/sKp4wlYuJxGNgXKQ== X-Received: by 10.98.215.66 with SMTP id v2mr1354981pfl.24.1508917007132; Wed, 25 Oct 2017 00:36:47 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 3/7] [PowerPC64] Wrap str{, n}cmp-power{8, 9}.S in IS_IN(libc) Date: Wed, 25 Oct 2017 18:06:20 +1030 Message-Id: <4bbab4043c66fd834d3021fb394d1feb524d6130.1508908224.git.amodra@gmail.com> In-Reply-To: References: In-Reply-To: References: These functions aren't used in ld.so at the moment since we don't have strcmp or strncmp ifuncs for them there. Remove the ld.so bloat. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Wrap in IS_IN (libc). * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise. Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S index b2464a8..b0d2d37 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S @@ -18,9 +18,11 @@ #include +#if IS_IN (libc) #define STRCMP __strcmp_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) #include +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S index 48ea05d..7a8488a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S @@ -18,9 +18,11 @@ #include +#if IS_IN (libc) #define STRCMP __strcmp_power9 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) #include +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S index 3cbcaad..49b7adf 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S @@ -17,9 +17,11 @@ #include +#if IS_IN (libc) #define STRNCMP __strncmp_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) #include +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S index 6d0deaa..e1a961c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S @@ -17,9 +17,11 @@ #include +#if IS_IN (libc) #define STRNCMP __strncmp_power9 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) #include +#endif From patchwork Wed Oct 25 07:36:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830126 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86325-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="O8I61ZmQ"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMRn74rPz9sRW for ; Wed, 25 Oct 2017 18:37:41 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=kwuT8gdQ 0yKUtE/EERp4l91Q8BlBKEn2swTkCtamYzzkIzgk866BAQ0HDAgxoMqDmgidDQAf 7iivWFjhXxVLHG0kR2P8RyJ20d5sacisbkjosNaAV0n+yWAFA+YFBdT7Jqlyh5jx htkCC2x0fS4y0TeWNNbmmzIPTS96vMfGrcU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=HzPpr60jwxPxlH kyGISI9SqkL8A=; b=O8I61ZmQnjr1+LiT7nMhWEF7jjCrETf88toIjgfikLdEid Y/jiDs1O/x1A2zGiegQKs2w59ayhAC7xB6odRbd3qYZD5CaWUeCoIzAi8phtZae6 hbWf/hHuUcQokNhi7NDufrgCO3dXc5m7acSrb5lL8YJVBxY40xSwwy1HkCmO4= Received: (qmail 32959 invoked by alias); 25 Oct 2017 07:36:53 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 32918 invoked by uid 89); 25 Oct 2017 07:36:53 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=tweaking X-HELO: mail-pg0-f48.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=eYFXuh9qA4xoMaaqUlMZW7HNwEaY+HTeNep6Y/TuLRw=; b=LzxBpi+Unl10I8Ps78220fbqUbBgNx6p4YY9ADzpjKHikvKvyuBjaoY1I+b5fVWMhD KTFy3gKSBCNpYtgvDrUQLr4gp/RxIFjJ8I2VkQ74RRBqqKf8Z/p3rnqhcqfONw5SYnoW usJVhkQyTFJPn+lWeynBQg9k/a5HPj9jWbNUHV5fJVGH3kdbixXDiQTarF5hRZ5uJfbZ 4Gg0nYJJLWqY3W37QlLjzuL69NXnCYxemrltAf9+PLVNd/W7b15w+tjB0ZjlSRDY92lw IBK2ODLMdw5sDov8CfE+hMzSG93EfcvT+XsBt3U1atI/kotkwN6CCiYHJqPmYfsonrHm 0gyg== X-Gm-Message-State: AMCzsaVaGGg06JbAWtgZU6HPBP8YgRmkTuKNyQvHWnROUTYseLgoWL2n OXzc6VBQ3XwSnACJA0A/Va3ibg== X-Google-Smtp-Source: ABhQp+QeVHry8w0at8jjOsFvnFLHP/6tZurgo4twPu6Xd630YC1wFbrw5ITOnV8yDI4Q/tvOU2bfBQ== X-Received: by 10.99.127.18 with SMTP id a18mr1232621pgd.98.1508917009876; Wed, 25 Oct 2017 00:36:49 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 4/7] [PowerPC64] Tidy strcasecmp_l-power7.S symbols Date: Wed, 25 Oct 2017 18:06:21 +1030 Message-Id: In-Reply-To: References: In-Reply-To: References: The routine being assembled here is strcasecmp_l, so ask for that via __STRCMP and STRCMP defines. That change means tweaking the power7 override. Needed for later powerpc64le changes where we want the base symbols, not just a power7 variant. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S: (__STRCMP, STRCMP, __strcasecmp_l): Define. (__strcasecmp): Don't define. Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S index da4c405..72121bc 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S @@ -18,7 +18,7 @@ #include -#define __strcasecmp __strcasecmp_l_power7 +#define __strcasecmp_l __strcasecmp_l_power7 #undef weak_alias #define weak_alias(name, alias) @@ -27,5 +27,7 @@ #define libc_hidden_builtin_def(name) #define USE_IN_EXTENDED_LOCALE_MODEL +#define __STRCMP __strcasecmp_l +#define STRCMP strcasecmp_l #include From patchwork Wed Oct 25 07:36:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830127 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86326-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="O9luSc9u"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMS23Hzkz9sRW for ; Wed, 25 Oct 2017 18:37:54 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=HNFbA0uz WqVi3raaL4LIl9WC2HhHtLzmkzLgYFRhniFIVof8G9pQUy9kRnpmtA8Rli5dH01U 9CeCmOlZFq7DMTbJeYH0vvcDg+QsBwoRVraxCvhIErMLHmIWN7PnqPSZhfEmtrMT KhUKhTK40/NCKRYw6dzkCLJIVI3dVfPXRwA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=Ulxr0u58Vw33aI Qf1Dkzhirqfag=; b=O9luSc9ukg7RPNqpwMfvWaxskJwGUkf++H+r8YRMYxXo6T 4pBQfK+YkW0mCMGi7fnBTMdweSuMgZ6ZhUyUtnkY3VXFyw3ZN7/Fp1gRQzLRTBuJ w3B0wyrdMrewQ7121OA5cNlRy1Og3iccX3RSG/ugC0su3VANgdK7a7S0/vHo8= Received: (qmail 33192 invoked by alias); 25 Oct 2017 07:36:56 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 33147 invoked by uid 89); 25 Oct 2017 07:36:55 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=wanting, Hx-languages-length:1018 X-HELO: mail-pg0-f43.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=BY5tVhxoEWW8uKhMK0RIOEEdpqafjsW42IjPBoRDFQs=; b=HRtDTKIDiXZm3iKAJ5+SWH1NZqCpsGIGPqBbE423Zt9ruf7lSoNb7lm33zH4fJKTIA mQw21qtH1E8wrb3+/QZ4ieLV44BNp7YUz8xQfS0dciiwRTI57Xu9lOz5UPhMuxLUDgKV M2X6FzA9gAFSKZeI3HYS1Cw6126xpzcJk4ykeOrvURb/qLeI8+Djg6sxh50/cLeUj3RN 6F0n1kn4rx1D4dysTpz7IEigUelVBXf9uU+eMyz21vVSIprgcXRLVI+lEEt0Z5X0M4C2 Wz0UvWjxeG0MZ2ycL2pNHZVH08QuOb2vLVjgHb2koOjbvj/M/7nu6mVUUmU3fCcDlcJd +zxA== X-Gm-Message-State: AMCzsaWmwffsruiSLVmUG365vKMtm2hgZluHl5KeGbaQfN2A243vk2Nf a8+w4VmBX7IUiuxTp6JFCxj6FA== X-Google-Smtp-Source: ABhQp+QKSFCZWkvUHS8iHRksHVj/qeq2flTb46Y/BmrLDDafzzdj0zXimFBqM5tWUk1bBAmhqlETNg== X-Received: by 10.99.182.5 with SMTP id j5mr1183482pgf.71.1508917012481; Wed, 25 Oct 2017 00:36:52 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 5/7] [PowerPC64] strncase_l-power7.c should use strncase_l.c Date: Wed, 25 Oct 2017 18:06:22 +1030 Message-Id: In-Reply-To: References: In-Reply-To: References: This is another one where we'll be wanting the base symbols for powerpc64le rather than just a power7 variant. * sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c: Include string/strncase_l.c, not string/strncase.c. (USE_IN_EXTENDED_LOCALE_MODEL): Don't define. (libc_hidden_def): Redefine. Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c index f87ff6c..73b967d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c @@ -18,8 +18,10 @@ #include #define __strncasecmp_l __strncasecmp_l_power7 -#define USE_IN_EXTENDED_LOCALE_MODEL 1 + +#undef libc_hidden_def +#define libc_hidden_def(name) extern __typeof (strncasecmp_l) __strncasecmp_l_power7 attribute_hidden; -#include +#include From patchwork Wed Oct 25 07:36:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830128 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86327-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="tXl0FO9O"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMSJ3CK8z9t16 for ; Wed, 25 Oct 2017 18:38:08 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=mrckNMXn 9sbq+ancRgq1ioQqWTQ1Zp7gSxx1HbJtSJHjB2cx/I9zZTOVC/jnu+Vow7hParxW nd6GI167tCVRzdp6E/mmp7PQf3AXzQl3LBiy17dZz5JradI+8K2pI2MYWnE4gq2A BkoPY/Uxn6WLyOpu+rpljzL43QlITiaYoAA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=WJSW/rAGkpgMzG wtOrZLtUHZ0Rw=; b=tXl0FO9O7MLwPfpvjB46unysuJHT07ic4aArY0RniuO0px yDWQP2xB6CvZUxHbP37MWxKRsAAfvYqVUDztwKk7Q6v6A2VkutVgqMirWG/ZmliL cfNrDbQ19bERwCkAM1+4/eiqLpeylrxTMPDOHiVoigv1LfmLktnOjDplWQwtg= Received: (qmail 34246 invoked by alias); 25 Oct 2017 07:37:06 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 34196 invoked by uid 89); 25 Oct 2017 07:37:06 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-pg0-f54.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=ozskF8NiFDK6+ZrPQfpht/M1aonguQzmCb9yEype6gI=; b=Hi1exd6ShZ3jLVT4xSjdJS/3H4RzlsXuu0qsZzf+YcR+qL1vYkp2xWME1hlw4U6CDn hdn9xctM0PdfF2KlsJAfC305BK1ssiLAylUne00Rvh/gY8/gnS6uFkGjG1EDxro18C1L t4ZQ09u91r6iIrxO1Go2sA37JCdH3JSpkU2hoW3PQW+jYPM3WQWxIAf/6F+F4PgBhU5O abuUJsTUa8X9yH+gfoM6KCGIedlhcSntF73DG7TxRmTqy3U6YSKxKIWu9lvx5Xzh3SNh 3MtDWmW5BqcvFINB77th3MzOK4i/uVK8G0h5XopuqANJ8Ee8yvt6/vYsKXXhpAs9YTD0 hOBg== X-Gm-Message-State: AMCzsaV6fhunQb3e5xA2tAGcTO9pT8BcVxvZgvw9BdB0gwYSU6XSw7SK cPLjAl20M1HD5X4h2+kSk+BMsA== X-Google-Smtp-Source: ABhQp+Q0A6yFcBR++qAXgYVbzp78y8FaHm8yBCoPX1ZNBXWqeKp/NDl+8ENRhYKBKfxT8XKVKw0xuA== X-Received: by 10.101.82.202 with SMTP id z10mr1220018pgp.404.1508917016063; Wed, 25 Oct 2017 00:36:56 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 6/7] [PowerPC64] sysdep.h doesn't need to be included in multiarch files Date: Wed, 25 Oct 2017 18:06:23 +1030 Message-Id: In-Reply-To: References: In-Reply-To: References: When the .c/.S file neither uses nor modifies macros defined in sysdep.h there is no point to #include it. The same goes for math_ldbl_opt.h except that it includes shlib-compat.h, and if compat_symbol is redefined we need to include shlib-compat.h first. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Don't include sysdep.h. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memset-power4.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memset-power6.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memset-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S: Don't include sysdep.h and math_ldbl_opt.h. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S: Don't include sysdep.h and math_ldbl_opt.h. Include shlib-compat.h. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S: Likewise. Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S index 1e6cc51..c0c3adc 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef strong_alias #define strong_alias(a, b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S index bbea647..535298d 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S index c19bb42..ffff330 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S index 8e875ce..9ac2771 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S index c9d31da..e39dfc0 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S index d59fbfa..7150c32 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S index 3f4fbc9..f19f575 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S @@ -17,8 +17,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S index ee00a2c..29a59e9 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c index 635624c..195db12 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a, b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S index 9220383..8cdfc02 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S index fa878ab..686aa5a 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S index 24f2460..33640b4 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S index 5ec9a33..b842ab0 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S index 8b621de..c7b3065 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S index 3feea6e..84ab921 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S @@ -16,9 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S index 33a7e3d..914d0d1 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S index b630696..3545e20 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S index 18d368a..5437565 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S index 7f0eae0..ec231ed 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S index aa28309..f59e839 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S index b67d58e..2db67b0 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S index 03151b3..db84dc0 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef hidden_def #define hidden_def(name) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S index fe2d4f1..f09e811 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S index f9b1616..887b753 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S index b7f5276..69aed9c8 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S index b92dafb..c8011a4 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S index b8305ce..6be71aa 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(name, alias) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S index 1145aff..d301d7d 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(name, alias) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S index 8d6190d..5a2a2a6 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(name, alias) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S index 8e6f9ae..a2b3e38 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef compat_symbol #define compat_symbol(a,b,c,d) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S index 26d08a2..45de8e3 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S index a7c7492..e5bcd92 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S index 44a2b01..9751093 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S index 81501a1..b8a142e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S index 8f3b24c..a6b6314 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S index 3d01533..aaf80e5 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a, b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c index b2ff032..2bd8054 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a, b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S index 53d8cd5..83ed3c2 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S index 36e8fd0..a3f3a19 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S @@ -16,8 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S index e28de7c..7c64ef5 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S index b60242d..f397c43 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #undef weak_alias #define weak_alias(a,b) diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S index fedca9c..bf6a8fd 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCHR __memchr_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S index 30f8fe7..10a8420 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCHR __memchr_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S index e38b2a9..987e7d5 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCMP __memcmp_power4 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S index a9cc979..ffea13e 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCMP __memcmp_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S index b783703..41c291a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCMP __memcmp_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S index a942287..795f32c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCPY __memcpy_a2 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S index 39aa30c..448a9d6 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCPY __memcpy_cell #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S index 6e7fea3..768d835 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCPY __memcpy_power4 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S index 40bcdb1..9a0995f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCPY __memcpy_power6 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S index 222936a..503be8c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMCPY __memcpy_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S index 2dc644c..3cac3de 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if defined SHARED && IS_IN (libc) # define MEMCPY __memcpy_ppc diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S index a9435fa..90816ce 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMMOVE __memmove_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S index 08f1336..d0eb400 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMPCPY __mempcpy_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S index 052aa73..d35d8b3 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMRCHR __memrchr_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S index 0dcb9e7..469b129 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMRCHR __memrchr_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S index 3908e8e..2031e14 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMSET __memset_power4 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S index 4ddbd2e..2545ed8 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMSET __memset_power6 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S index 97f686b..e707762 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMSET __memset_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S index ea30353..45149e1 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define MEMSET __memset_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S index d79d728..c7bb422 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define RAWMEMCHR __rawmemchr_power7 #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S index 9353471..3baebfa 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STPCPY __stpcpy_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S index 6e6fa3e..e7ce628 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define USE_AS_STPNCPY #define STPNCPY __stpncpy_power7 diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S index 9c71bb0..f8a0f29 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STPNCPY __stpncpy_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S index 025c5a9..dc0f68d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define __strcasecmp __strcasecmp_power7 #undef weak_alias #define weak_alias(name, alias) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S index 9b62476..49cf3ff 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define __strcasecmp __strcasecmp_power8 #undef weak_alias #define weak_alias(name, alias) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S index 72121bc..6bad13a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define __strcasecmp_l __strcasecmp_l_power7 #undef weak_alias diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S index 2cfb5ae..61025ce 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCASESTR __strcasestr_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S index e64c0b7..7505c44 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCHR __strchr_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S index bbda7b0..ca01f88 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCHR __strchr_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S index 769f9f0..3bef338 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #ifdef SHARED # define STRCHR __strchr_ppc diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S index c8e2872..b934964 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCHRNUL __strchrnul_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S index 1cd39fc..e66cdfe 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCHRNUL __strchrnul_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S index 82d1b63..7ef0c91 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCMP __strcmp_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S index b0d2d37..ee4218c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if IS_IN (libc) #define STRCMP __strcmp_power8 diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S index 7a8488a..5cfee93 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if IS_IN (libc) #define STRCMP __strcmp_power9 diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S index 085e747..e4a63f5 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if defined SHARED && IS_IN (libc) # define STRCMP __strcmp_ppc diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S index 6c753b5..7c9378d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRCPY __strcpy_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S index 39b4cd8..1320145 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRSPN __strcspn_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S index 333496e..067c298 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRLEN __strlen_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S index b4deea5..f7972ff 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRLEN __strlen_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S index 13231b8..8d6cf52 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if defined SHARED && IS_IN (libc) # define STRLEN __strlen_ppc diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S index 8a24c34..3b5a8de 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define __strncasecmp __strncasecmp_power8 #undef weak_alias #define weak_alias(name, alias) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S index 01729a3..1385126 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S @@ -15,8 +15,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRNCMP __strncmp_power4 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S index a069d4b..32a5cfc 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S @@ -15,8 +15,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRNCMP __strncmp_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S index 49b7adf..5d8eeb4 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S @@ -15,8 +15,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if IS_IN (libc) #define STRNCMP __strncmp_power8 diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S index e1a961c..52934cf 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S @@ -15,8 +15,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if IS_IN (libc) #define STRNCMP __strncmp_power9 diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S index e4b93ae..4d4210f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S @@ -15,8 +15,6 @@ License along with the GNU C Library; if not, see . */ -#include - #if defined SHARED && IS_IN (libc) # define STRNCMP __strncmp_ppc diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S index a36e5dd..a65bb89 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRNCPY __strncpy_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S index 3edb2c6..3d16363 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRNCPY __strncpy_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S index 2f0a183..3f6a005 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRNLEN __strnlen_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S index ccea15d..9ed0f91 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define __strnlen __strnlen_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S index 10bab2e..73602f4 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRRCHR __strrchr_power7 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S index 63080f5..51adbb0 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRRCHR __strrchr_power8 #undef libc_hidden_builtin_def diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S index f8487f1..89e2e5b 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRSPN __strspn_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S index 900d3be..82a0e4c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S @@ -16,8 +16,6 @@ License along with the GNU C Library; if not, see . */ -#include - #define STRSTR __strstr_power7 #undef libc_hidden_builtin_def From patchwork Wed Oct 25 07:36:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 830129 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-86328-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="gxSg/qI+"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yMMSb6kNgz9sRW for ; Wed, 25 Oct 2017 18:38:23 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; q=dns; s=default; b=IkgChW6+ llD3YdeMTprmapqpKI5AvM+j1ESUmIiih/XUF1n8vUfl7CKJgx2FjmFcO3WzIUnN XtqYQ+nBlqXbEtuF6tkJ+9wXPlqyPKeoUqUnEp3n5h0TvX4eVJlGdOcP7I6+rbvm udbdmuHlpKcOqMnRNjwv75qGvuAKgEPXsSI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; s=default; bh=kFAI1+WMQxpyTs k6+fCG1NJX/k4=; b=gxSg/qI+fay8/3ziOwXwPdCcEEWtvDWsmMG5/7mr04e93v ecWdTFph7qUlg1q/UO10ZyuWAcWPqnmbOFmAZg90eW0/z0ITb18fUQbqiCi/IAOV j2V36iIlJXyVAzvQyYhBKpB2CNB1FccTH9SSTbSC3OFPow8UBRdS4hg7MCgLk= Received: (qmail 35819 invoked by alias); 25 Oct 2017 07:37:23 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 35564 invoked by uid 89); 25 Oct 2017 07:37:20 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=le, 1618, 3513 X-HELO: mail-pf0-f174.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=682KPUuzS9BKNdbbds5VFhVu1CAptcB+jSlyi6lFnt8=; b=MrIDkjp7Qn1YgP3rc0tE9CB0G/KeMbAOuztiADThcPrJHNM66Wut7rGkLUSX4psne7 R3fCiKYAInCgdpCOe57g9T/pkqpBohObU3bvV0G7Ge2iMTvC5Z2JS0oYxhnwonGwveSf tuW7LlEHyahelq/3xIKyvoritZkH/o2Fxf1t+KvMc5G3DQwLPH7/DOOWFtpUFYQ0ziyG QtzluQF1yq3IlzpLrebVzzWShQzD1qWU3yIQ3DW1FzUyUyWVu8fyTwxfPdT9rzEhyk5l 834DLaEt6J9laehROa0hvYA7ybGmMngSlpEPM01RpH9Eh3PlzvGAFfulxoOEiiuoa7wC gHsw== X-Gm-Message-State: AMCzsaUzNDqGKVkymLYM3w/+kGfpYn4HswelU1inlmmTrtaFfidSTvBw qqjkXT4xgql7mINstilIe70Xdw== X-Google-Smtp-Source: ABhQp+SLLn/rgeWkZvYHdIJAqOp+8QhksZ0t9rNpfHskR+3Q/JvkcQSWZ70F3iY/pvkKllt8aXlYkQ== X-Received: by 10.99.114.93 with SMTP id c29mr1215142pgn.421.1508917021016; Wed, 25 Oct 2017 00:37:01 -0700 (PDT) From: Alan Modra To: libc-alpha@sourceware.org Cc: Alan Modra Subject: [PATCH 7/7] [PowerPC64] Multi-arch powerpc64le base arch is power8 Date: Wed, 25 Oct 2017 18:06:24 +1030 Message-Id: In-Reply-To: References: In-Reply-To: References: This patch changes the base code support to power8, resulting in just two ifuncs being used on powerpc64le. The idea is a) If a file produces code that wouldn't be compiled with a -mcpu=power8 non-multiarch build, then we don't want to compile it for multiarch. That's done by modifying sysdep_routines in the Makefiles. b) If discarding older cpu support would then result in an ifunc that selects just one function, kill the ifunc, and modify the -.{c,S} file to produce the standard function symbol rather than the - version. c) Where an ifunc selects two or more variants, keep just those we want for powerpc64le. Since we apparently don't emit ifuncs for libc.a that means the base -.{c,S} needs to be modified to emit the standard function symbol when non-shared. There are a few wrinkles. __strstr_power7 calls __strstr_ppc, so strstr-ppc64 needs to be added to sysdep_routines. The patch also fixes bugs in ifunc-impl-list.c. * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep-CPPFLAGS): Define MULTI_ARCH_POWER8. (sysdep_calls): Exclude all but power8 and later or most recent routines if no power8 support, for MULTI_ARCH_POWER8. (libm-sysdep_routines): Likewise. * sysdeps/powerpc/powerpc64/multiarch/Makefile (sysdep_routines): Likewise, but include strstr-ppc64 for powerpc64le. (sysdep-CPPFLAGS): Define MULTI_ARCH_POWER8. * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Move placement of strcmp.c entry to SHARED section. Move strchrnul.c entry to !SHARED. Add MULTI_ARCH_POWER8 entries. * sysdeps/powerpc/powerpc64/multiarch/strcmp.c: Produce ifunc with just power8 and power9 variants when MULTI_ARCH_POWER8. * sysdeps/powerpc/powerpc64/multiarch/strncmp.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Don't produce anything when !MULTI_ARCH_POWER8. Arrange to emit __strcmp_power8 and __GI_strcmp for MULTI_ARCH_POWER8 SHARED, and strcmp when MULTI_ARCH_POWER8 !SHARED. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Formatting. * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c: Don't output __GI_strstr for MULTI_ARCH_POWER8. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c: Don't produce anything when MULTI_ARCH_POWER8. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/bcopy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/bzero.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcmp.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memmove.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/mempcpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memrchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memset.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpcpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasestr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcat.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchrnul.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcspn.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strlen.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncase.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncase_l.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncat.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strnlen.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strrchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strspn.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strstr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcschr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Don't define machine specific symbol or disable alias/compat/libc macros when MULTI_ARCH_POWER8. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c: Insert included file contents but don't include unnecessary header and don't define machine specific symbol or disable alias/compat/libc macros when MULTI_ARCH_POWER8. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c: Likewise. diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile index 73f2f69..5296ce7 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile @@ -1,35 +1,74 @@ +ifeq (,$(findstring -DMULTI_ARCH,$(sysdep-CPPFLAGS))) +ifneq (,$(filter %le,$(config-machine))) +sysdep-CPPFLAGS += -DMULTI_ARCH_POWER8=1 +endif +endif + ifeq ($(subdir),math) # These functions are built both for libc and libm because they're required # by printf. While the libc objects have the prefix s_, the libm ones are # prefixed with m_. -sysdep_calls := s_copysign-power6 s_copysign-ppc64 \ - s_finite-power8 s_finite-power7 s_finite-ppc64 \ - s_finitef-ppc64 \ - s_isinf-power8 s_isinf-ppc64 \ - s_isinff-ppc64 s_isinf-power7 \ - s_isnan-power8 s_isnan-power7 s_isnan-power6x s_isnan-power6 \ - s_isnan-power5 s_isnan-ppc64 \ - s_modf-power5+ s_modf-ppc64 \ - s_modff-power5+ s_modff-ppc64 +sysdep_calls := \ + s_copysign-power6 \ + s_finite-power8 \ + s_isinf-power8 \ + s_isnan-power8 \ + s_modf-power5+ \ + s_modff-power5+ + +ifeq (,$(findstring -DMULTI_ARCH_POWER8=1,$(sysdep-CPPFLAGS))) +sysdep_calls += \ + s_copysign-ppc64 \ + s_finite-power7 s_finite-ppc64 s_finitef-ppc64 \ + s_isinf-power7 s_isinf-ppc64 s_isinff-ppc64 \ + s_isnan-power7 s_isnan-power6x s_isnan-power6 s_isnan-power5 \ + s_isnan-ppc64 \ + s_modf-ppc64 \ + s_modff-ppc64 +endif sysdep_routines += $(sysdep_calls) -libm-sysdep_routines += s_llround-power6x \ - s_llround-power5+ s_llround-ppc64 s_ceil-power5+ \ - s_ceil-ppc64 s_ceilf-power5+ s_ceilf-ppc64 \ - s_floor-power5+ s_floor-ppc64 s_floorf-power5+ \ - s_floorf-ppc64 s_round-power5+ s_round-ppc64 \ - s_roundf-power5+ s_roundf-ppc64 s_trunc-power5+ \ - s_trunc-ppc64 s_truncf-power5+ s_truncf-ppc64 \ - s_llrint-power6x s_llrint-ppc64 \ - s_logb-power7 s_logbf-power7 \ - s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \ - s_logbl-ppc64 e_hypot-ppc64 \ - e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \ - s_llrint-power8 s_llround-power8 s_llroundf-ppc64 \ - e_expf-power8 e_expf-ppc64 \ - s_sinf-ppc64 s_sinf-power8 \ - s_cosf-ppc64 s_cosf-power8 \ - $(sysdep_calls:s_%=m_%) +libm-sysdep_routines += $(sysdep_calls:s_%=m_%) \ + e_expf-power8 \ + e_hypot-power7 \ + e_hypotf-power7 \ + s_ceil-power5+ \ + s_ceilf-power5+ \ + s_cosf-power8 \ + s_floor-power5+ \ + s_floorf-power5+ \ + s_llrint-power8 \ + s_llround-power8 \ + s_logb-power7 \ + s_logbf-power7 \ + s_logbl-power7 \ + s_round-power5+ \ + s_roundf-power5+ \ + s_sinf-power8 \ + s_trunc-power5+ \ + s_truncf-power5+ + +ifeq (,$(findstring -DMULTI_ARCH_POWER8=1,$(sysdep-CPPFLAGS))) +libm-sysdep_routines += \ + e_expf-ppc64 \ + e_hypot-ppc64 \ + e_hypotf-ppc64 \ + s_ceil-ppc64 \ + s_ceilf-ppc64 \ + s_cosf-ppc64 \ + s_floor-ppc64 \ + s_floorf-ppc64 \ + s_llrint-power6x s_llrint-ppc64 \ + s_llround-power6x s_llround-power5+ s_llround-ppc64 s_llroundf-ppc64 \ + s_logb-ppc64 \ + s_logbf-ppc64 \ + s_logbl-ppc64 \ + s_round-ppc64 \ + s_roundf-ppc64 \ + s_sinf-ppc64 \ + s_trunc-ppc64 \ + s_truncf-ppc64 +endif CFLAGS-s_logbf-power7.c = -mcpu=power7 CFLAGS-s_logbl-power7.c = -mcpu=power7 diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S index c0c3adc..928236f 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef strong_alias -#define strong_alias(a, b) +#ifndef MULTI_ARCH_POWER8 +# undef strong_alias +# define strong_alias(a, b) -#define __ieee754_expf __ieee754_expf_power8 +# define __ieee754_expf __ieee754_expf_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c index 5770936..c738c89 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c @@ -16,9 +16,10 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" extern __typeof (__ieee754_expf) __ieee754_expf_ppc64 attribute_hidden; extern __typeof (__ieee754_expf) __ieee754_expf_power8 attribute_hidden; @@ -29,3 +30,4 @@ libc_ifunc (__ieee754_expf, : __ieee754_expf_ppc64); strong_alias (__ieee754_expf, __expf_finite) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c index dbe9b33..5e85126 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c @@ -16,4 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# undef strong_alias +# define strong_alias(a, b) + +# define __ieee754_hypot __ieee754_hypot_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c index 6a3d60a..934d2ec 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__ieee754_hypot) __ieee754_hypot_ppc64 attribute_hidden; extern __typeof (__ieee754_hypot) __ieee754_hypot_power7 attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__ieee754_hypot, : __ieee754_hypot_ppc64); strong_alias (__ieee754_hypot, __hypot_finite) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c index 7058486..80e8f4d 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c @@ -16,4 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# undef strong_alias +# define strong_alias(a, b) + +# define __ieee754_hypotf __ieee754_hypotf_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c index 2c8112d..a728d8e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__ieee754_hypotf) __ieee754_hypotf_ppc64 attribute_hidden; extern __typeof (__ieee754_hypotf) __ieee754_hypotf_power7 attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__ieee754_hypotf, : __ieee754_hypotf_ppc64); strong_alias (__ieee754_hypotf, __hypotf_finite) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S index 535298d..7cb0201 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(a,b) -#undef strong_alias -#define strong_alias(a,b) -#undef compat_symbol -#define compat_symbol(a,b,c,d) +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a,b,c,d) -#define __ceil __ceil_power5plus +# define __ceil __ceil_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c index 968e8cb..9a7984d 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__ceil) __ceil_ppc64 attribute_hidden; extern __typeof (__ceil) __ceil_power5plus attribute_hidden; @@ -31,10 +32,11 @@ libc_ifunc (__ceil, weak_alias (__ceil, ceil) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__ceil, __ceill) weak_alias (__ceil, ceill) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) compat_symbol (libm, __ceil, ceill, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S index 9ac2771..45548df 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef weak_alias -#define weak_alias(a,b) +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a,b) -#define __ceilf __ceilf_power5plus +# define __ceilf __ceilf_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c index 7d4a028..2c2444c 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__ceilf) __ceilf_ppc64 attribute_hidden; extern __typeof (__ceilf) __ceilf_power5plus attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__ceilf, : __ceilf_ppc64); weak_alias (__ceilf, ceilf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S index 7150c32..92a0438 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S @@ -16,17 +16,19 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(a,b) -#undef strong_alias -#define strong_alias(a,b) -#undef compat_symbol -#define compat_symbol(a, b, c, d) -#undef hidden_def -#define hidden_def(name) +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) +# undef hidden_def +# define hidden_def(name) -#define __copysign __copysign_power6 +# define __copysign __copysign_power6 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c index 2bfb625..6c35ea5 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c @@ -16,15 +16,16 @@ License along with the GNU C Library; if not, see . */ +#ifndef MULTI_ARCH_POWER8 /* Redefine copysign so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias below. */ -#undef __copysign -#define __copysign __redirect_copysign -#include -#include -#undef __copysign -#include -#include "init-arch.h" +# undef __copysign +# define __copysign __redirect_copysign +# include +# include +# undef __copysign +# include +# include "init-arch.h" extern __typeof (__redirect_copysign) __copysign_ppc64 attribute_hidden; extern __typeof (__redirect_copysign) __copysign_power6 attribute_hidden; @@ -38,14 +39,15 @@ libc_ifunc (__libm_copysign, strong_alias (__libm_copysign, __copysign) weak_alias (__copysign, copysign) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE weak_alias (__copysign,copysignl) strong_alias(__copysign,__copysignl) -#endif -#if IS_IN (libm) -# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __copysign, copysignl, GLIBC_2_0); # endif -#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +# if IS_IN (libm) +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __copysign, copysignl, GLIBC_2_0); +# endif +# elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) compat_symbol (libc, __copysign, copysignl, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c index c9be2b6..12a3346 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c @@ -16,9 +16,10 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" /* It's safe to use double-precision implementation for single-precision. */ extern __typeof (__copysignf) __copysign_ppc64 attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__copysignf, : __copysign_ppc64); weak_alias (__copysignf, copysignf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S index 29a59e9..87aca8e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef weak_alias -#define weak_alias(a,b) +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a,b) -#define __cosf __cosf_power8 +# define __cosf __cosf_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c index acf2a59..ef162a6 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c @@ -16,9 +16,10 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" extern __typeof (__cosf) __cosf_ppc64 attribute_hidden; extern __typeof (__cosf) __cosf_power8 attribute_hidden; @@ -29,3 +30,4 @@ libc_ifunc (__cosf, : __cosf_ppc64); weak_alias (__cosf, cosf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S index 686aa5a..0b1c5af 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S @@ -16,17 +16,19 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef hidden_def -#define hidden_def(name) -#undef weak_alias -#define weak_alias(name, alias) -#undef strong_alias -#define strong_alias(name, alias) -#undef compat_symbol -#define compat_symbol(lib, name, symbol, ver) +# undef hidden_def +# define hidden_def(name) +# undef weak_alias +# define weak_alias(name, alias) +# undef strong_alias +# define strong_alias(name, alias) +# undef compat_symbol +# define compat_symbol(lib, name, symbol, ver) -#define __finite __finite_power8 +# define __finite __finite_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c index 7efc84b..6142ca8 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c @@ -16,29 +16,30 @@ License along with the GNU C Library; if not, see . */ -#define __finite __redirect___finite +#ifndef MULTI_ARCH_POWER8 +# define __finite __redirect___finite /* The following definitions, although not related to the 'double' version of 'finite', are required to guarantee macro expansions (e.g.: from __finitef to __redirect_finitef) in include/math.h, thus compensating for the unintended macro expansions in math/bits/mathcalls-helper-functions.h. */ -#define __finitef __redirect___finitef -#define __finitel __redirect___finitel -#define __finitef128 __redirect___finitef128 +# define __finitef __redirect___finitef +# define __finitel __redirect___finitel +# define __finitef128 __redirect___finitef128 -#include -#include -#include -#include "init-arch.h" +# include +# include +# include +# include "init-arch.h" extern __typeof (__finite) __finite_ppc64 attribute_hidden; extern __typeof (__finite) __finite_power7 attribute_hidden; extern __typeof (__finite) __finite_power8 attribute_hidden; -#undef __finite -#undef __finitef -#undef __finitel -#undef __finitef128 +# undef __finite +# undef __finitef +# undef __finitel +# undef __finitef128 libc_ifunc_redirected (__redirect___finite, __finite, (hwcap2 & PPC_FEATURE2_ARCH_2_07) @@ -49,21 +50,22 @@ libc_ifunc_redirected (__redirect___finite, __finite, weak_alias (__finite, finite) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__finite, __finitel) weak_alias (__finite, finitel) -#endif +# endif -#if IS_IN (libm) -# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +# if IS_IN (libm) +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) compat_symbol (libm, finite, finitel, GLIBC_2_0); -# endif -# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1) +# endif +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1) compat_symbol (libm, __finite, __finitel, GLIBC_2_1); -# endif -#else -# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) +# endif +# else +# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __finite, __finitel, GLIBC_2_0); compat_symbol (libc, finite, finitel, GLIBC_2_0); +# endif # endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c index cdd7824..ab6e9f1 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c @@ -16,16 +16,17 @@ License along with the GNU C Library; if not, see . */ -#define __finitef __redirect___finitef -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# define __finitef __redirect___finitef +# include +# include +# include "init-arch.h" extern __typeof (__finitef) __finitef_ppc64 attribute_hidden; /* The double-precision version also works for single-precision. */ extern __typeof (__finitef) __finite_power7 attribute_hidden; extern __typeof (__finitef) __finite_power8 attribute_hidden; -#undef __finitef +# undef __finitef libc_ifunc_redirected (__redirect___finitef, __finitef, (hwcap2 & PPC_FEATURE2_ARCH_2_07) @@ -35,3 +36,4 @@ libc_ifunc_redirected (__redirect___finitef, __finitef, : __finitef_ppc64); weak_alias (__finitef, finitef) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S index 33640b4..3a97f1b 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(a,b) -#undef strong_alias -#define strong_alias(a,b) -#undef compat_symbol -#define compat_symbol(a,b,c,d) +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a,b,c,d) -#define __floor __floor_power5plus +# define __floor __floor_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c index 6ab7a35..37ef5e7 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__floor) __floor_ppc64 attribute_hidden; extern __typeof (__floor) __floor_power5plus attribute_hidden; @@ -31,10 +32,11 @@ libc_ifunc (__floor, weak_alias (__floor, floor) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__floor, __floorl) weak_alias (__floor, floorl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) compat_symbol (libm, __floor, floorl, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S index c7b3065..60ae06e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef weak_alias -#define weak_alias(a,b) +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a,b) -#define __floorf __floorf_power5plus +# define __floorf __floorf_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c index ee96536..1b4d3ec 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__floorf) __floorf_ppc64 attribute_hidden; extern __typeof (__floorf) __floorf_power5plus attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__floorf, : __floorf_ppc64); weak_alias (__floorf, floorf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S index 3545e20..e46af1c 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S @@ -16,17 +16,19 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef hidden_def -#define hidden_def(name) -#undef weak_alias -#define weak_alias(name, alias) -#undef strong_alias -#define strong_alias(name, alias) -#undef compat_symbol -#define compat_symbol(lib, name, alias, ver) +# undef hidden_def +# define hidden_def(name) +# undef weak_alias +# define weak_alias(name, alias) +# undef strong_alias +# define strong_alias(name, alias) +# undef compat_symbol +# define compat_symbol(lib, name, alias, ver) -#define __isinf __isinf_power8 +# define __isinf __isinf_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c index b79bdd5..d5289f0 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c @@ -16,29 +16,30 @@ License along with the GNU C Library; if not, see . */ -#define __isinf __redirect___isinf +#ifndef MULTI_ARCH_POWER8 +# define __isinf __redirect___isinf /* The following definitions, although not related to the 'double' version of 'isinf', are required to guarantee macro expansions (e.g.: from __isinff to __redirect_isinff) in include/math.h, thus compensating for the unintended macro expansions in math/bits/mathcalls-helper-functions.h. */ -#define __isinff __redirect___isinff -#define __isinfl __redirect___isinfl -#define __isinff128 __redirect___isinff128 +# define __isinff __redirect___isinff +# define __isinfl __redirect___isinfl +# define __isinff128 __redirect___isinff128 -#include -#include -#include -#include "init-arch.h" +# include +# include +# include +# include "init-arch.h" extern __typeof (__isinf) __isinf_ppc64 attribute_hidden; extern __typeof (__isinf) __isinf_power7 attribute_hidden; extern __typeof (__isinf) __isinf_power8 attribute_hidden; -#undef __isinf -#undef __isinff -#undef __isinfl -#undef __isinff128 +# undef __isinf +# undef __isinff +# undef __isinfl +# undef __isinff128 libc_ifunc_redirected (__redirect___isinf, __isinf, (hwcap2 & PPC_FEATURE2_ARCH_2_07) @@ -49,14 +50,15 @@ libc_ifunc_redirected (__redirect___isinf, __isinf, weak_alias (__isinf, isinf) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__isinf, __isinfl) weak_alias (__isinf, isinfl) -#endif +# endif -#if !IS_IN (libm) -# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) +# if !IS_IN (libm) +# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0); compat_symbol (libc, isinf, isinfl, GLIBC_2_0); +# endif # endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c index 439e0b8..7d8a2d3 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c @@ -16,17 +16,18 @@ License along with the GNU C Library; if not, see . */ -#define __isinff __redirect___isinff -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# define __isinff __redirect___isinff +# include +# include +# include +# include "init-arch.h" extern __typeof (__isinff) __isinff_ppc64 attribute_hidden; /* The double-precision version also works for single-precision. */ extern __typeof (__isinff) __isinf_power7 attribute_hidden; extern __typeof (__isinff) __isinf_power8 attribute_hidden; -#undef __isinff +# undef __isinff libc_ifunc_redirected (__redirect___isinff, __isinff, (hwcap2 & PPC_FEATURE2_ARCH_2_07) @@ -36,3 +37,4 @@ libc_ifunc_redirected (__redirect___isinff, __isinff, : __isinff_ppc64); weak_alias (__isinff, isinff) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S index db84dc0..f6ccbbe 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S @@ -16,17 +16,19 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef hidden_def -#define hidden_def(name) -#undef weak_alias -#define weak_alias(name, alias) -#undef strong_alias -#define strong_alias(name, alias) -#undef compat_symbol -#define compat_symbol(lib, name, symbol, ver) +# undef hidden_def +# define hidden_def(name) +# undef weak_alias +# define weak_alias(name, alias) +# undef strong_alias +# define strong_alias(name, alias) +# undef compat_symbol +# define compat_symbol(lib, name, symbol, ver) -#define __isnan __isnan_power8 +# define __isnan __isnan_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c index a8127e8..b9ea291 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c @@ -16,21 +16,22 @@ License along with the GNU C Library; if not, see . */ -#define __isnan __redirect___isnan +#ifndef MULTI_ARCH_POWER8 +# define __isnan __redirect___isnan /* The following definitions, although not related to the 'double' version of 'isnan', are required to guarantee macro expansions (e.g.: from __isnanf to __redirect_isnanf) in include/math.h, thus compensating for the unintended macro expansions in math/bits/mathcalls-helper-functions.h. */ -#define __isnanf __redirect___isnanf -#define __isnanl __redirect___isnanl -#define __isnanf128 __redirect___isnanf128 +# define __isnanf __redirect___isnanf +# define __isnanl __redirect___isnanl +# define __isnanf128 __redirect___isnanf128 -#include -#include -#include -#include "init-arch.h" +# include +# include +# include +# include "init-arch.h" extern __typeof (__isnan) __isnan_ppc64 attribute_hidden; extern __typeof (__isnan) __isnan_power5 attribute_hidden; @@ -38,10 +39,10 @@ extern __typeof (__isnan) __isnan_power6 attribute_hidden; extern __typeof (__isnan) __isnan_power6x attribute_hidden; extern __typeof (__isnan) __isnan_power7 attribute_hidden; extern __typeof (__isnan) __isnan_power8 attribute_hidden; -#undef __isnan -#undef __isnanf -#undef __isnanl -#undef __isnanf128 +# undef __isnan +# undef __isnanf +# undef __isnanl +# undef __isnanf128 libc_ifunc_redirected (__redirect___isnan, __isnan, (hwcap2 & PPC_FEATURE2_ARCH_2_07) @@ -58,14 +59,15 @@ libc_ifunc_redirected (__redirect___isnan, __isnan, weak_alias (__isnan, isnan) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__isnan, __isnanl) weak_alias (__isnan, isnanl) -#endif +# endif -#if !IS_IN (libm) -# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +# if !IS_IN (libm) +# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0); compat_symbol (libc, isnan, isnanl, GLIBC_2_0); +# endif # endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c index 958c373..d4fd10e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c @@ -16,8 +16,9 @@ License along with the GNU C Library; if not, see . */ -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include "init-arch.h" /* The double-precision implementation also works for the single one. */ extern __typeof (__isnanf) __isnan_ppc64 attribute_hidden; @@ -42,3 +43,4 @@ libc_ifunc_hidden (__isnanf, __isnanf, hidden_def (__isnanf) weak_alias (__isnanf, isnanf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S index 69aed9c8..7633405 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(a,b) -#undef strong_alias -#define strong_alias(a,b) -#undef compat_symbol -#define compat_symbol(a,b,c,d) +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a,b,c,d) -#define __llrint __llrint_power8 +# define __llrint __llrint_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c index 8db494c..8977d29 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c @@ -16,17 +16,18 @@ License along with the GNU C Library; if not, see . */ +#ifndef MULTI_ARCH_POWER8 /* Redefine lrint/__lrint so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias below. */ -#define lrint __hidden_lrint -#define __lrint __hidden___lrint +# define lrint __hidden_lrint +# define __lrint __hidden___lrint -#include -#include -#undef lrint -#undef __lrint -#include -#include "init-arch.h" +# include +# include +# undef lrint +# undef __lrint +# include +# include "init-arch.h" extern __typeof (__llrint) __llrint_ppc64 attribute_hidden; extern __typeof (__llrint) __llrint_power6x attribute_hidden; @@ -40,21 +41,22 @@ libc_ifunc (__llrint, : __llrint_ppc64); weak_alias (__llrint, llrint) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__llrint, __llrintl) weak_alias (__llrint, llrintl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) compat_symbol (libm, __llrint, llrintl, GLIBC_2_1); -#endif +# endif /* long has the same width as long long on PowerPC64. */ strong_alias (__llrint, __lrint) weak_alias (__lrint, lrint) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__lrint, __lrintl) weak_alias (__lrint, lrintl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) compat_symbol (libm, __lrint, lrintl, GLIBC_2_1); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c index 330fe96..96dd545 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c @@ -15,15 +15,17 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ + +#ifndef MULTI_ARCH_POWER8 /* Redefine lrintf/__lrintf so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias below. */ -#define lrintf __hidden_lrintf -#define __lrintf __hidden___lrintf +# define lrintf __hidden_lrintf +# define __lrintf __hidden___lrintf -#include -#undef lrintf -#undef __lrintf -#include "init-arch.h" +# include +# undef lrintf +# undef __lrintf +# include "init-arch.h" extern __typeof (__llrintf) __llrint_ppc64 attribute_hidden; extern __typeof (__llrintf) __llrint_power6x attribute_hidden; @@ -44,3 +46,4 @@ libc_ifunc (__llrintf, weak_alias (__llrintf, llrintf) strong_alias (__llrintf, __lrintf) weak_alias (__lrintf, lrintf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S index d301d7d..72a4957 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S @@ -16,16 +16,18 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(name, alias) -#undef strong_alias -#define strong_alias(name, alias) -#undef compat_symbol -#define compat_symbol(lib, name, alias, ver) +# undef weak_alias +# define weak_alias(name, alias) +# undef strong_alias +# define strong_alias(name, alias) +# undef compat_symbol +# define compat_symbol(lib, name, alias, ver) -#define __llround __llround_power6x -#define __lround __lround_power6x +# define __llround __llround_power6x +# define __lround __lround_power6x +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S index 5a2a2a6..a9541ec 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(name, alias) -#undef strong_alias -#define strong_alias(name, alias) -#undef compat_symbol -#define compat_symbol(lib, name, alias, ver) +# undef weak_alias +# define weak_alias(name, alias) +# undef strong_alias +# define strong_alias(name, alias) +# undef compat_symbol +# define compat_symbol(lib, name, alias, ver) -#define __llround __llround_power8 +# define __llround __llround_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c index cb1a446..1f906e2 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c @@ -16,13 +16,14 @@ License along with the GNU C Library; if not, see . */ -#define lround __hidden_lround -#define __lround __hidden___lround +#ifndef MULTI_ARCH_POWER8 +# define lround __hidden_lround +# define __lround __hidden___lround -#include -#include -#include -#include "init-arch.h" +# include +# include +# include +# include "init-arch.h" extern __typeof (__llround) __llround_ppc64 attribute_hidden; extern __typeof (__llround) __llround_power5plus attribute_hidden; @@ -40,24 +41,25 @@ libc_ifunc (__llround, weak_alias (__llround, llround) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE weak_alias (__llround, llroundl) strong_alias (__llround, __llroundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) compat_symbol (libm, __llround, llroundl, GLIBC_2_1); compat_symbol (libm, llround, lroundl, GLIBC_2_1); -#endif +# endif /* long has the same width as long long on PPC64. */ -#undef lround -#undef __lround +# undef lround +# undef __lround strong_alias (__llround, __lround) weak_alias (__llround, lround) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__llround, __llroundl) weak_alias (__llround, llroundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) compat_symbol (libm, __lround, lroundl, GLIBC_2_1); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c index 1e34b5d..3bfe2c4 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c @@ -15,15 +15,17 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ + +#ifndef MULTI_ARCH_POWER8 /* Redefine lroundf/__lroundf so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias below. */ -#define lroundf __hidden_lroundf -#define __lroundf __hidden___lroundf +# define lroundf __hidden_lroundf +# define __lroundf __hidden___lroundf -#include -#undef lroundf -#undef __lroundf -#include "init-arch.h" +# include +# undef lroundf +# undef __lroundf +# include "init-arch.h" extern __typeof (__llroundf) __llroundf_ppc64 attribute_hidden; extern __typeof (__llroundf) __llround_power6x attribute_hidden; @@ -44,3 +46,4 @@ libc_ifunc (__llroundf, weak_alias (__llroundf, llroundf) strong_alias (__llroundf, __lroundf) weak_alias (__lroundf, lroundf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c index 73b5e2d..0907fb2 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c @@ -16,4 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include + +# undef weak_alias +# define weak_alias(a, b) +# undef strong_alias +# define strong_alias(a, b) +# undef compat_symbol +# define compat_symbol(lib, name, alias, ver) + +# define __logb __logb_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c index d70919e..c9f412e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__logb) __logb_ppc64 attribute_hidden; extern __typeof (__logb) __logb_power7 attribute_hidden; @@ -31,11 +32,12 @@ libc_ifunc (__logb, weak_alias (__logb, logb) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__logb, __logbl) weak_alias (__logb, logbl) -#endif +# endif -#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) +# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0) compat_symbol (libm, logb, logbl, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c index 02e0431..e04cc06 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c @@ -16,4 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a, b) + +# define __logbf __logbf_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c index 1cacc8a..deecfcc 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__logbf) __logbf_ppc64 attribute_hidden; extern __typeof (__logbf) __logbf_power7 attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__logbf, : __logbf_ppc64); weak_alias (__logbf, logbf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c index 60ec533..fa7201b 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c @@ -16,4 +16,8 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# define __logbl __logbl_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c index 63b9c81..49a5ded 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__logbl) __logbl_ppc64 attribute_hidden; extern __typeof (__logbl) __logbl_power7 attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__logbl, : __logbl_ppc64); long_double_symbol (libm, __logbl, logbl); +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c index c923f84..6dcd22e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c @@ -16,4 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include + +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a,b,c,d) + +# define __modf __modf_power5plus +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c index 3e79b2b..3f8dbde 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__modf) __modf_ppc64 attribute_hidden; extern __typeof (__modf) __modf_power5plus attribute_hidden; @@ -31,14 +32,15 @@ libc_ifunc (__modf, weak_alias (__modf, modf) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__modf, __modfl) weak_alias (__modf, modfl) -#endif -#if IS_IN (libm) -# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __modf, modfl, GLIBC_2_0); # endif -#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +# if IS_IN (libm) +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __modf, modfl, GLIBC_2_0); +# endif +# elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) compat_symbol (libc, __modf, modfl, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c index 22dbf53..1741c9d 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c @@ -16,4 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a,b) + +# define __modff __modff_power5plus +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c index f57939c..b0248a1 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c @@ -16,8 +16,9 @@ License along with the GNU C Library; if not, see . */ -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include "init-arch.h" extern __typeof (__modff) __modff_ppc64 attribute_hidden; extern __typeof (__modff) __modff_power5plus attribute_hidden; @@ -28,3 +29,4 @@ libc_ifunc (__modff, : __modff_ppc64); weak_alias (__modff, modff) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S index e5bcd92..c2f45cd 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(a,b) -#undef strong_alias -#define strong_alias(a,b) -#undef compat_symbol -#define compat_symbol(a,b,c,d) +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a,b,c,d) -#define __round __round_power5plus +# define __round __round_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c index d440f6f..bf6257a 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__round) __round_ppc64 attribute_hidden; extern __typeof (__round) __round_power5plus attribute_hidden; @@ -31,10 +32,11 @@ libc_ifunc (__round, weak_alias (__round, round) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__round, __roundl) weak_alias (__round, roundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) compat_symbol (libm, __round, roundl, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S index b8a142e..220adb4 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef weak_alias -#define weak_alias(a,b) +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a,b) -#define __roundf __roundf_power5plus +# define __roundf __roundf_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c index 09609d3..7d4c85d 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__roundf) __roundf_ppc64 attribute_hidden; extern __typeof (__roundf) __roundf_power5plus attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__roundf, : __roundf_ppc64); weak_alias (__roundf, roundf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S index aaf80e5..b8bb32a 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef weak_alias -#define weak_alias(a, b) +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a, b) -#define __sinf __sinf_power8 +# define __sinf __sinf_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c index 6d7d6ce..3c60a15 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c @@ -16,9 +16,10 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" extern __typeof (__sinf) __sinf_ppc64 attribute_hidden; extern __typeof (__sinf) __sinf_power8 attribute_hidden; @@ -29,3 +30,4 @@ libc_ifunc (__sinf, : __sinf_ppc64); weak_alias (__sinf, sinf) +#endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S index 83ed3c2..6c908db 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#undef weak_alias -#define weak_alias(a,b) -#undef strong_alias -#define strong_alias(a,b) -#undef compat_symbol -#define compat_symbol(a,b,c,d) +# undef weak_alias +# define weak_alias(a,b) +# undef strong_alias +# define strong_alias(a,b) +# undef compat_symbol +# define compat_symbol(a,b,c,d) -#define __trunc __trunc_power5plus +# define __trunc __trunc_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c index 54844d5..691fb20 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__trunc) __trunc_ppc64 attribute_hidden; extern __typeof (__trunc) __trunc_power5plus attribute_hidden; @@ -31,10 +32,11 @@ libc_ifunc (__trunc, weak_alias (__trunc, trunc) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__trunc, __truncl) weak_alias (__trunc, truncl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +# endif +# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) compat_symbol (libm, __trunc, truncl, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S index 7c64ef5..b230d51 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#undef weak_alias -#define weak_alias(a,b) +#ifndef MULTI_ARCH_POWER8 +# undef weak_alias +# define weak_alias(a,b) -#define __truncf __truncf_power5plus +# define __truncf __truncf_power5plus +#endif #include diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c index 2c46525..104416f 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c @@ -16,10 +16,11 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include +# include "init-arch.h" extern __typeof (__truncf) __truncf_ppc64 attribute_hidden; extern __typeof (__truncf) __truncf_power5plus attribute_hidden; @@ -30,3 +31,4 @@ libc_ifunc (__truncf, : __truncf_ppc64); weak_alias (__truncf, truncf) +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile index dea49ac..badf5a7 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile @@ -1,44 +1,88 @@ +ifeq (,$(findstring -DMULTI_ARCH,$(sysdep-CPPFLAGS))) +ifneq (,$(filter %le,$(config-machine))) +sysdep-CPPFLAGS += -DMULTI_ARCH_POWER8=1 +endif +endif + ifeq ($(subdir),string) -sysdep_routines += memcpy-power7 memcpy-a2 memcpy-power6 memcpy-cell \ - memcpy-power4 memcpy-ppc64 \ - memcmp-power8 memcmp-power7 memcmp-power4 memcmp-ppc64 \ - memset-power7 memset-power6 memset-power4 \ - memset-ppc64 memset-power8 \ - mempcpy-power7 mempcpy-ppc64 \ - memchr-power8 memchr-power7 memchr-ppc64 \ - memrchr-power8 memrchr-power7 memrchr-ppc64 \ - rawmemchr-power7 rawmemchr-ppc64 \ - strlen-power7 strlen-ppc64 \ - strnlen-power8 strnlen-power7 strnlen-ppc64 \ - strcasecmp-power7 strcasecmp_l-power7 \ - strncase-power7 strncase_l-power7 \ - strncmp-power9 strncmp-power8 strncmp-power7 \ - strncmp-power4 strncmp-ppc64 \ - strchr-power8 strchr-power7 strchr-ppc64 \ - strchrnul-power8 strchrnul-power7 strchrnul-ppc64 \ - strcpy-power8 strcpy-power7 strcpy-ppc64 stpcpy-power8 \ - stpcpy-power7 stpcpy-ppc64 \ - strrchr-power8 strrchr-power7 strrchr-ppc64 \ - strncat-power8 strncat-power7 strncat-ppc64 \ - strncpy-power7 strncpy-ppc64 \ - stpncpy-power8 stpncpy-power7 stpncpy-ppc64 \ - strcmp-power9 strcmp-power8 strcmp-power7 strcmp-ppc64 \ - strcat-power8 strcat-power7 strcat-ppc64 \ - memmove-power7 memmove-ppc64 wordcopy-ppc64 bcopy-ppc64 \ - strncpy-power8 strstr-power7 strstr-ppc64 \ - strspn-power8 strspn-ppc64 strcspn-power8 strcspn-ppc64 \ - strlen-power8 strcasestr-power8 strcasestr-ppc64 \ - strcasecmp-ppc64 strcasecmp-power8 strncase-ppc64 \ - strncase-power8 +sysdep_routines += \ + memchr-power8 \ + memcmp-power8 \ + memcpy-power7 \ + memmove-power7 \ + mempcpy-power7 \ + memrchr-power8 \ + memset-power8 \ + rawmemchr-power7 \ + stpcpy-power8 \ + stpncpy-power8 \ + strcasecmp-power8 \ + strcasecmp_l-power7 \ + strcasestr-power8 \ + strcat-power8 \ + strchr-power8 \ + strchrnul-power8 \ + strcmp-power9 strcmp-power8 \ + strcpy-power8 \ + strcspn-power8 \ + strlen-power8 \ + strncase-power8 \ + strncase_l-power7 \ + strncat-power8 \ + strncmp-power9 strncmp-power8 \ + strncpy-power8 \ + strnlen-power8 \ + strrchr-power8 \ + strspn-power8 \ + strstr-power7 strstr-ppc64 + +ifeq (,$(findstring -DMULTI_ARCH_POWER8=1,$(sysdep-CPPFLAGS))) +sysdep_routines += \ + bcopy-ppc64 \ + memchr-power7 memchr-ppc64 \ + memcmp-power7 memcmp-power4 memcmp-ppc64 \ + memcpy-power6 memcpy-power4 memcpy-a2 memcpy-cell memcpy-ppc64 \ + memmove-ppc64 \ + mempcpy-ppc64 \ + memrchr-power7 memrchr-ppc64 \ + memset-power7 memset-power6 memset-power4 memset-ppc64 \ + rawmemchr-ppc64 \ + stpcpy-power7 stpcpy-ppc64 \ + stpncpy-power7 stpncpy-ppc64 \ + strcasecmp-power7 strcasecmp-ppc64 \ + strcasestr-ppc64 \ + strcat-power7 strcat-ppc64 \ + strchr-power7 strchr-ppc64 \ + strchrnul-power7 strchrnul-ppc64 \ + strcmp-power7 strcmp-ppc64 \ + strcpy-power7 strcpy-ppc64 \ + strcspn-ppc64 \ + strlen-power7 strlen-ppc64 \ + strncase-power7 strncase-ppc64 \ + strncat-power7 strncat-ppc64 \ + strncmp-power7 strncmp-power4 strncmp-ppc64 \ + strncpy-power7 strncpy-ppc64 \ + strnlen-power7 strnlen-ppc64 \ + strrchr-power7 strrchr-ppc64 \ + strspn-ppc64 \ + wordcopy-ppc64 +endif CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops endif ifeq ($(subdir),wcsmbs) -sysdep_routines += wcschr-power7 wcschr-power6 wcschr-ppc64 \ - wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc64 \ - wcscpy-power7 wcscpy-power6 wcscpy-ppc64 \ +sysdep_routines += \ + wcschr-power7 \ + wcsrchr-power7 \ + wcscpy-power7 +ifeq (,$(findstring -DMULTI_ARCH_POWER8=1,$(sysdep-CPPFLAGS))) +sysdep_routines += \ + wcschr-power6 wcschr-ppc64 \ + wcsrchr-power6 wcsrchr-ppc64 \ + wcscpy-power6 wcscpy-ppc64 +endif CFLAGS-wcschr-power7.c += -mcpu=power7 CFLAGS-wcschr-power6.c += -mcpu=power6 diff --git a/sysdeps/powerpc/powerpc64/multiarch/bcopy.c b/sysdeps/powerpc/powerpc64/multiarch/bcopy.c index 05d46e2..1657ff2 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/bcopy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/bcopy.c @@ -16,8 +16,9 @@ License along with the GNU C Library; if not, see . */ -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include "init-arch.h" extern __typeof (bcopy) __bcopy_ppc attribute_hidden; /* __bcopy_power7 symbol is implemented at memmove-power7.S */ @@ -27,3 +28,4 @@ libc_ifunc (bcopy, (hwcap & PPC_FEATURE_HAS_VSX) ? __bcopy_power7 : __bcopy_ppc); +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/bzero.c b/sysdeps/powerpc/powerpc64/multiarch/bzero.c index 83b224b..a759d79 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/bzero.c +++ b/sysdeps/powerpc/powerpc64/multiarch/bzero.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c index 6a88536..c04e1db 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c @@ -48,7 +48,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, else if (hwcap & PPC_FEATURE_POWER5) hwcap |= PPC_FEATURE_POWER4; -#ifdef SHARED +#ifndef MULTI_ARCH_POWER8 +# ifdef SHARED /* Support sysdeps/powerpc/powerpc64/multiarch/memcpy.c. */ IFUNC_IMPL (i, name, memcpy, IFUNC_IMPL_ADD (array, i, memcpy, hwcap & PPC_FEATURE_HAS_VSX, @@ -108,6 +109,20 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strlen, 1, __strlen_ppc)) + /* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */ + IFUNC_IMPL (i, name, strcmp, + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap2 & PPC_FEATURE2_ARCH_3_00, + __strcmp_power9) + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap2 & PPC_FEATURE2_ARCH_2_07, + __strcmp_power8) + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap & PPC_FEATURE_HAS_VSX, + __strcmp_power7) + IFUNC_IMPL_ADD (array, i, strcmp, 1, + __strcmp_ppc)) + /* Support sysdeps/powerpc/powerpc64/multiarch/strncmp.c. */ IFUNC_IMPL (i, name, strncmp, IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_3_00, @@ -131,6 +146,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __strchr_power7) IFUNC_IMPL_ADD (array, i, strchr, 1, __strchr_ppc)) +# endif /* Support sysdeps/powerpc/powerpc64/multiarch/strchrnul.c. */ IFUNC_IMPL (i, name, strchrnul, @@ -142,7 +158,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __strchrnul_power7) IFUNC_IMPL_ADD (array, i, strchrnul, 1, __strchrnul_ppc)) -#endif /* Support sysdeps/powerpc/powerpc64/multiarch/memcmp.c. */ IFUNC_IMPL (i, name, memcmp, @@ -267,7 +282,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, wcschr, 1, __wcschr_ppc)) - /* Support sysdeps/powerpc/powerpc64/multiarch/wcschr.c. */ + /* Support sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c. */ IFUNC_IMPL (i, name, wcsrchr, IFUNC_IMPL_ADD (array, i, wcsrchr, hwcap & PPC_FEATURE_HAS_VSX, @@ -333,20 +348,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, stpncpy, 1, __stpncpy_ppc)) - /* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */ - IFUNC_IMPL (i, name, strcmp, - IFUNC_IMPL_ADD (array, i, strcmp, - hwcap2 & PPC_FEATURE2_ARCH_3_00, - __strcmp_power9) - IFUNC_IMPL_ADD (array, i, strcmp, - hwcap2 & PPC_FEATURE2_ARCH_2_07, - __strcmp_power8) - IFUNC_IMPL_ADD (array, i, strcmp, - hwcap & PPC_FEATURE_HAS_VSX, - __strcmp_power7) - IFUNC_IMPL_ADD (array, i, strcmp, 1, - __strcmp_ppc)) - /* Support sysdeps/powerpc/powerpc64/multiarch/strcat.c. */ IFUNC_IMPL (i, name, strcat, IFUNC_IMPL_ADD (array, i, strcat, @@ -390,6 +391,29 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __strcasestr_power8) IFUNC_IMPL_ADD (array, i, strcasestr, 1, __strcasestr_ppc)) +#endif + +#ifdef MULTI_ARCH_POWER8 +# ifdef SHARED + /* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */ + IFUNC_IMPL (i, name, strcmp, + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap2 & PPC_FEATURE2_ARCH_3_00, + __strcmp_power9) + IFUNC_IMPL_ADD (array, i, strcmp, 1, + __strcmp_power8)) + + /* Support sysdeps/powerpc/powerpc64/multiarch/strncmp.c. */ + IFUNC_IMPL (i, name, strncmp, + IFUNC_IMPL_ADD (array, i, strncmp, + hwcap2 & PPC_FEATURE2_ARCH_3_00, + __strncmp_power9) + IFUNC_IMPL_ADD (array, i, strncmp, 1, + __strncmp_power8)) +# endif + (void) hwcap; + (void) hwcap2; +#endif return i; } diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S index 10a8420..a96b3ab 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define MEMCHR __memchr_power8 +#ifndef MULTI_ARCH_POWER8 +# define MEMCHR __memchr_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) -#undef weak_alias -#define weak_alias(name,alias) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# undef weak_alias +# define weak_alias(name,alias) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr.c b/sysdeps/powerpc/powerpc64/multiarch/memchr.c index fa2cfd5..309557d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memchr.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" @@ -36,6 +36,8 @@ libc_ifunc (__memchr, weak_alias (__memchr, memchr) libc_hidden_builtin_def (memchr) -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S index 41c291a..d36e28e 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define MEMCMP __memcmp_power8 +#ifndef MULTI_ARCH_POWER8 +# define MEMCMP __memcmp_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) -#undef weak_alias -#define weak_alias(name,alias) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# undef weak_alias +# define weak_alias(name,alias) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c index 0d315d5..d27e6cf 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define memcmp __redirect_memcmp # include # include @@ -39,6 +39,8 @@ libc_ifunc_redirected (__redirect_memcmp, memcmp, : (hwcap & PPC_FEATURE_POWER4) ? __memcmp_power4 : __memcmp_ppc); -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S index 503be8c..3cab727 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define MEMCPY __memcpy_power7 +#ifndef MULTI_ARCH_POWER8 +# define MEMCPY __memcpy_power7 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c index 9f4286c..afd3444 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c @@ -19,7 +19,7 @@ /* Define multiple versions only for the definition in lib and for DSO. In static binaries we need memcpy before the initialization happened. */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 /* Redefine memcpy so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias, below. */ # undef memcpy @@ -49,7 +49,7 @@ libc_ifunc (__libc_memcpy, ? __memcpy_power4 : __memcpy_ppc); -#undef memcpy +# undef memcpy strong_alias (__libc_memcpy, memcpy); libc_hidden_ver (__libc_memcpy, memcpy); #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S index 90816ce..5d62f4b 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S @@ -16,12 +16,14 @@ License along with the GNU C Library; if not, see . */ -#define MEMMOVE __memmove_power7 +#ifndef MULTI_ARCH_POWER8 +# define MEMMOVE __memmove_power7 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#undef bcopy -#define bcopy __bcopy_power7 +# undef bcopy +# define bcopy __bcopy_power7 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove.c b/sysdeps/powerpc/powerpc64/multiarch/memmove.c index db2bbc7..8a04000 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memmove.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memmove.c @@ -19,7 +19,7 @@ /* Define multiple versions only for the definition in lib and for DSO. In static binaries we need memmove before the initialization happened. */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 /* Redefine memmove so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias, below. */ # undef memmove @@ -37,9 +37,11 @@ libc_ifunc (__libc_memmove, ? __memmove_power7 : __memmove_ppc); -#undef memmove +# undef memmove strong_alias (__libc_memmove, memmove); libc_hidden_ver (__libc_memmove, memmove); -#else +#endif + +#if !(defined SHARED && IS_IN (libc)) && !defined MULTI_ARCH_POWER8 # include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S index d0eb400..1c53f50 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define MEMPCPY __mempcpy_power7 +#ifndef MULTI_ARCH_POWER8 +# define MEMPCPY __mempcpy_power7 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) -#undef weak_alias -#define weak_alias(name, alias) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# undef weak_alias +# define weak_alias(name, alias) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c index 92391d3..4fff7a6 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define mempcpy __redirect_mempcpy # define __mempcpy __redirect___mempcpy # define NO_MEMPCPY_STPCPY_REDIRECT @@ -38,6 +38,8 @@ libc_ifunc_redirected (__redirect___mempcpy, __mempcpy, : __mempcpy_ppc); weak_alias (__mempcpy, mempcpy) -#else +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S index 469b129..0a07006 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define MEMRCHR __memrchr_power8 +#ifndef MULTI_ARCH_POWER8 +# define MEMRCHR __memrchr_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) -#undef weak_alias -#define weak_alias(name,alias) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# undef weak_alias +# define weak_alias(name,alias) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c index 7d52af0..d0bc18c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" @@ -35,6 +35,8 @@ libc_ifunc (__memrchr, : __memrchr_ppc); weak_alias (__memrchr, memrchr) -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S index 45149e1..c0160b2 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S @@ -16,12 +16,14 @@ License along with the GNU C Library; if not, see . */ -#define MEMSET __memset_power8 +#ifndef MULTI_ARCH_POWER8 +# define MEMSET __memset_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#undef __bzero -#define __bzero __bzero_power8 +# undef __bzero +# define __bzero __bzero_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset.c b/sysdeps/powerpc/powerpc64/multiarch/memset.c index a5d9b3e..ec92cd0 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memset.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 /* Redefine memset so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias, below. */ # undef memset @@ -47,7 +47,7 @@ libc_ifunc (__libc_memset, ? __memset_power4 : __memset_ppc); -#undef memset +# undef memset strong_alias (__libc_memset, memset); libc_hidden_ver (__libc_memset, memset); #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S index c7bb422..e0f1990 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see . */ -#define RAWMEMCHR __rawmemchr_power7 +#ifndef MULTI_ARCH_POWER8 +# define RAWMEMCHR __rawmemchr_power7 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c index 8bfd58d..3ac9a80 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define __rawmemchr __redirect___rawmemchr # include # include @@ -34,6 +34,8 @@ libc_ifunc_redirected (__redirect___rawmemchr, __rawmemchr, : __rawmemchr_ppc); weak_alias (__rawmemchr, rawmemchr) -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S index 3baebfa..c277d6f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STPCPY __stpcpy_power8 +#ifndef MULTI_ARCH_POWER8 +# define STPCPY __stpcpy_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c index aa01adb..37eb603 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define __NO_STRING_INLINES # define NO_MEMPCPY_STPCPY_REDIRECT # include @@ -37,6 +37,8 @@ libc_ifunc_hidden (__stpcpy, __stpcpy, weak_alias (__stpcpy, stpcpy) libc_hidden_def (__stpcpy) libc_hidden_def (stpcpy) -#else +#endif + +#if !(defined SHARED && IS_IN (libc)) && !defined MULTI_ARCH_POWER8 # include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S index f8a0f29..6710352 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S @@ -16,14 +16,16 @@ License along with the GNU C Library; if not, see . */ -#define STPNCPY __stpncpy_power8 +#ifndef MULTI_ARCH_POWER8 +# define STPNCPY __stpncpy_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#define MEMSET __memset_power8 -#ifdef SHARED -#define MEMSET_is_local +# define MEMSET __memset_power8 +# ifdef SHARED +# define MEMSET_is_local +# endif #endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c index e9b37dc..2281faa 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define stpncpy __redirect_stpncpy # define __stpncpy __redirect___stpncpy # include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S index 49cf3ff..4f7890d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define __strcasecmp __strcasecmp_power8 -#undef weak_alias -#define weak_alias(name, alias) +#ifndef MULTI_ARCH_POWER8 +# define __strcasecmp __strcasecmp_power8 +# undef weak_alias +# define weak_alias(name, alias) -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c index dcb4ef4..8ba4556 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c @@ -16,9 +16,10 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" extern __typeof (__strcasecmp) __libc_strcasecmp; @@ -34,3 +35,4 @@ libc_ifunc (__libc_strcasecmp, : __strcasecmp_ppc); weak_alias (__libc_strcasecmp, strcasecmp) +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S index 6bad13a..0a9c6b7 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S @@ -16,13 +16,15 @@ License along with the GNU C Library; if not, see . */ -#define __strcasecmp_l __strcasecmp_l_power7 +#ifndef MULTI_ARCH_POWER8 +# define __strcasecmp_l __strcasecmp_l_power7 -#undef weak_alias -#define weak_alias(name, alias) +# undef weak_alias +# define weak_alias(name, alias) -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #define USE_IN_EXTENDED_LOCALE_MODEL #define __STRCMP __strcasecmp_l diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c index 10b8f2e..4310ead 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c @@ -16,17 +16,19 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # define strcasecmp_l __strcasecmp_l_ppc extern __typeof (__strcasecmp_l) __strcasecmp_l_ppc attribute_hidden; extern __typeof (__strcasecmp_l) __strcasecmp_l_power7 attribute_hidden; #endif -#include +#if !defined MULTI_ARCH_POWER8 +# include +#endif #undef strcasecmp_l -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include "init-arch.h" diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S index 61025ce..f53931f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S @@ -16,18 +16,20 @@ License along with the GNU C Library; if not, see . */ -#define STRCASESTR __strcasestr_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRCASESTR __strcasestr_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) /* The following definitions are used in strcasestr optimization. */ /* strlen is used to calculate len of r4. */ -#define STRLEN __strlen_power8 +# define STRLEN __strlen_power8 /* strnlen is used to check if len of r3 is more than r4. */ -#define STRNLEN __strnlen_power7 +# define STRNLEN __strnlen_power7 /* strchr is used to check if first char of r4 is present in r3. */ -#define STRCHR __strchr_power8 +# define STRCHR __strchr_power8 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c b/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c index 9e6a16d..2acd054 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" @@ -32,6 +32,8 @@ libc_ifunc (__strcasestr, : __strcasestr_ppc); weak_alias (__strcasestr, strcasestr) -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c index f138bee..411e01f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c @@ -15,16 +15,19 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#define STRCAT __strcat_power8 +# define STRCAT __strcat_power8 -#undef libc_hidden_def -#define libc_hidden_def(name) +# undef libc_hidden_def +# define libc_hidden_def(name) extern typeof (strcpy) __strcpy_power8; extern typeof (strlen) __strlen_power8; -#define strcpy __strcpy_power8 -#define strlen __strlen_power8 +# define strcpy __strcpy_power8 +# define strlen __strlen_power8 +#endif + #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat.c b/sysdeps/powerpc/powerpc64/multiarch/strcat.c index 3336aed..2f0ce52 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcat.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcat.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define strcat __redirect_strcat # include # include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S index ca01f88..e43a994 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STRCHR __strchr_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRCHR __strchr_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr.c b/sysdeps/powerpc/powerpc64/multiarch/strchr.c index 5731058..9f031ef 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strchr.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define strchr __redirect_strchr /* Omit the strchr inline definitions because it would redefine strchr. */ # define __NO_STRING_INLINES diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S index e66cdfe..642eee3 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STRCHRNUL __strchrnul_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRCHRNUL __strchrnul_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c b/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c index 1e9018f..c397f6d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" @@ -35,6 +35,8 @@ libc_ifunc (__strchrnul, : __strchrnul_ppc); weak_alias (__strchrnul, strchrnul) -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S index 7ef0c91..471d8f5 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STRCMP __strcmp_power7 +#if IS_IN (libc) +# define STRCMP __strcmp_power7 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#include +# include +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S index ee4218c..1d194e2 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S @@ -17,10 +17,20 @@ . */ #if IS_IN (libc) -#define STRCMP __strcmp_power8 - -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# ifndef MULTI_ARCH_POWER8 +# define STRCMP __strcmp_power8 +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# else +# ifdef SHARED +# define STRCMP __strcmp_power8 +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) \ + .globl __GI_##name; __GI_##name = __##name##_power8 +# endif +# endif +#endif -#include +#if IS_IN (libc) || defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S index 5cfee93..86e4443 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S @@ -17,10 +17,10 @@ . */ #if IS_IN (libc) -#define STRCMP __strcmp_power9 +# define STRCMP __strcmp_power9 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#include +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c index fc10205..c7f88f1 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c @@ -32,11 +32,16 @@ extern __typeof (strcmp) __strcmp_power9 attribute_hidden; # undef strcmp libc_ifunc_redirected (__redirect_strcmp, strcmp, - (hwcap2 & PPC_FEATURE2_ARCH_3_00) - ? __strcmp_power9 : - (hwcap2 & PPC_FEATURE2_ARCH_2_07) + (hwcap2 & PPC_FEATURE2_ARCH_3_00) + ? __strcmp_power9 +# ifndef MULTI_ARCH_POWER8 + : (hwcap2 & PPC_FEATURE2_ARCH_2_07) ? __strcmp_power8 : (hwcap & PPC_FEATURE_HAS_VSX) - ? __strcmp_power7 - : __strcmp_ppc); + ? __strcmp_power7 + : __strcmp_ppc +# else + : __strcmp_power8 +# endif + ); #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S index 7c9378d..a7403888 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STRCPY __strcpy_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRCPY __strcpy_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy.c index 0da53e3..addf6ba 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define strcpy __redirect_strcpy # include # include @@ -25,7 +25,7 @@ extern __typeof (strcpy) __strcpy_ppc attribute_hidden; extern __typeof (strcpy) __strcpy_power7 attribute_hidden; extern __typeof (strcpy) __strcpy_power8 attribute_hidden; -#undef strcpy +# undef strcpy libc_ifunc_redirected (__redirect_strcpy, strcpy, (hwcap2 & PPC_FEATURE2_ARCH_2_07) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S index 1320145..f251178 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S @@ -16,8 +16,10 @@ License along with the GNU C Library; if not, see . */ -#define STRSPN __strcspn_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +#ifndef MULTI_ARCH_POWER8 +# define STRSPN __strcspn_power8 +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c index a6df885..8791f75 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c @@ -16,11 +16,12 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" -#undef strcspn +# undef strcspn extern __typeof (strcspn) __libc_strcspn; extern __typeof (strcspn) __strcspn_ppc attribute_hidden; @@ -33,3 +34,4 @@ libc_ifunc (__libc_strcspn, weak_alias (__libc_strcspn, strcspn) libc_hidden_builtin_def (strcspn) +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S index f7972ff..4bac46f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STRLEN __strlen_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRLEN __strlen_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen.c b/sysdeps/powerpc/powerpc64/multiarch/strlen.c index a5a7b59..b4b9b60 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strlen.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strlen.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if defined SHARED && IS_IN (libc) +#if defined SHARED && IS_IN (libc) && !defined MULTI_ARCH_POWER8 /* Redefine strlen so that the compiler won't complain about the type mismatch with the IFUNC selector in strong_alias, below. */ # undef strlen @@ -38,7 +38,7 @@ libc_ifunc (__libc_strlen, ? __strlen_power7 : __strlen_ppc); -#undef strlen +# undef strlen strong_alias (__libc_strlen, strlen) libc_hidden_ver (__libc_strlen, strlen) #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S index 3b5a8de..1930c83 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define __strncasecmp __strncasecmp_power8 -#undef weak_alias -#define weak_alias(name, alias) +#ifndef MULTI_ARCH_POWER8 +# define __strncasecmp __strncasecmp_power8 +# undef weak_alias +# define weak_alias(name, alias) -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase.c b/sysdeps/powerpc/powerpc64/multiarch/strncase.c index 197f713..7cc75d8 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncase.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase.c @@ -16,9 +16,10 @@ License along with the GNU C Library; if not, see . */ -#include -#include -#include "init-arch.h" +#ifndef MULTI_ARCH_POWER8 +# include +# include +# include "init-arch.h" extern __typeof (__strncasecmp) __libc_strncasecmp; @@ -34,3 +35,4 @@ libc_ifunc (__libc_strncasecmp, : __strncasecmp_ppc); weak_alias (__libc_strncasecmp, strncasecmp) +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c index 73b967d..540874a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c @@ -15,13 +15,15 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#define __strncasecmp_l __strncasecmp_l_power7 +# define __strncasecmp_l __strncasecmp_l_power7 -#undef libc_hidden_def -#define libc_hidden_def(name) +# undef libc_hidden_def +# define libc_hidden_def(name) extern __typeof (strncasecmp_l) __strncasecmp_l_power7 attribute_hidden; +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c b/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c index 6c2429c..7fa6a77 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c @@ -16,17 +16,19 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # define strncasecmp_l __strncasecmp_l_ppc extern __typeof (__strncasecmp_l) __strncasecmp_l_ppc attribute_hidden; extern __typeof (__strncasecmp_l) __strncasecmp_l_power7 attribute_hidden; #endif -#include +#if !defined MULTI_ARCH_POWER8 +# include +#endif #undef strncasecmp_l -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include "init-arch.h" diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c index 1ec1259..2ba8ed0 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c @@ -15,17 +15,19 @@ License along with the GNU C Library; if not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# include -#define STRNCAT __strncat_power8 +# define STRNCAT __strncat_power8 extern __typeof (strncat) __strncat_power8 attribute_hidden; extern __typeof (strlen) __strlen_power8 attribute_hidden; extern __typeof (strnlen) __strnlen_power8 attribute_hidden; extern __typeof (memcpy) __memcpy_power7 attribute_hidden; -#define strlen __strlen_power8 -#define __strnlen __strnlen_power8 -#define memcpy __memcpy_power7 +# define strlen __strlen_power8 +# define __strnlen __strnlen_power8 +# define memcpy __memcpy_power7 +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat.c b/sysdeps/powerpc/powerpc64/multiarch/strncat.c index 72f2833..02a2b56 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncat.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncat.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S index 5d8eeb4..3c7032d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S @@ -16,10 +16,20 @@ . */ #if IS_IN (libc) -#define STRNCMP __strncmp_power8 - -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# ifndef MULTI_ARCH_POWER8 +# define STRNCMP __strncmp_power8 +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# else +# ifdef SHARED +# define STRNCMP __strncmp_power8 +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) \ + .globl __GI_##name; __GI_##name = __##name##_power8 +# endif +# endif +#endif -#include +#if IS_IN (libc) || defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S index 52934cf..e096428 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S @@ -16,10 +16,10 @@ . */ #if IS_IN (libc) -#define STRNCMP __strncmp_power9 +# define STRNCMP __strncmp_power9 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#include +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c index 14122c6..8c83162 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c @@ -35,13 +35,18 @@ extern __typeof (strncmp) __strncmp_power9 attribute_hidden; /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle ifunc symbol properly. */ libc_ifunc_redirected (__redirect_strncmp, strncmp, - (hwcap2 & PPC_FEATURE2_ARCH_3_00) - ? __strncmp_power9 : - (hwcap2 & PPC_FEATURE2_ARCH_2_07) + (hwcap2 & PPC_FEATURE2_ARCH_3_00) + ? __strncmp_power9 +# ifndef MULTI_ARCH_POWER8 + : (hwcap2 & PPC_FEATURE2_ARCH_2_07) ? __strncmp_power8 : (hwcap & PPC_FEATURE_HAS_VSX) - ? __strncmp_power7 - : (hwcap & PPC_FEATURE_POWER4) - ? __strncmp_power4 - : __strncmp_ppc); + ? __strncmp_power7 + : (hwcap & PPC_FEATURE_POWER4) + ? __strncmp_power4 + : __strncmp_ppc +# else + : __strncmp_power8 +# endif + ); #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S index 3d16363..cb9a03e 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S @@ -16,15 +16,17 @@ License along with the GNU C Library; if not, see . */ -#define STRNCPY __strncpy_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRNCPY __strncpy_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) /* memset is used to pad the end of the string. */ -#define MEMSET __memset_power8 -#ifdef SHARED -#define MEMSET_is_local +# define MEMSET __memset_power8 +# ifdef SHARED +# define MEMSET_is_local +# endif #endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy.c b/sysdeps/powerpc/powerpc64/multiarch/strncpy.c index bb63c18..195e657 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define strncpy __redirect_strncpy /* Omit the strncpy inline definitions because it would redefine strncpy. */ # define __NO_STRING_INLINES @@ -38,5 +38,4 @@ libc_ifunc_redirected (__redirect_strncpy, strncpy, : (hwcap & PPC_FEATURE_HAS_VSX) ? __strncpy_power7 : __strncpy_ppc); - #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S index 9ed0f91..91096e6 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S @@ -16,11 +16,13 @@ License along with the GNU C Library; if not, see . */ -#define __strnlen __strnlen_power8 +#ifndef MULTI_ARCH_POWER8 +# define __strnlen __strnlen_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) -#undef weak_alias -#define weak_alias(name, alias) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +# undef weak_alias +# define weak_alias(name, alias) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen.c b/sysdeps/powerpc/powerpc64/multiarch/strnlen.c index 7f89132..2850667 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strnlen.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen.c @@ -16,7 +16,8 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 + # define strnlen __redirect_strnlen # define __strnlen __redirect___strnlen # include @@ -28,6 +29,7 @@ extern __typeof (__strnlen) __strnlen_power7 attribute_hidden; extern __typeof (__strnlen) __strnlen_power8 attribute_hidden; # undef strnlen # undef __strnlen + libc_ifunc_redirected (__redirect___strnlen, __strnlen, (hwcap2 & PPC_FEATURE2_ARCH_2_07) ? __strnlen_power8 : @@ -35,7 +37,8 @@ libc_ifunc_redirected (__redirect___strnlen, __strnlen, ? __strnlen_power7 : __strnlen_ppc); weak_alias (__strnlen, strnlen) +#endif -#else -#include +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S index 51adbb0..a581f24 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S @@ -16,9 +16,11 @@ License along with the GNU C Library; if not, see . */ -#define STRRCHR __strrchr_power8 +#ifndef MULTI_ARCH_POWER8 +# define STRRCHR __strrchr_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr.c b/sysdeps/powerpc/powerpc64/multiarch/strrchr.c index 0f94c9d..f648f4d 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strrchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define strrchr __redirect_strrchr # include # include @@ -26,7 +26,7 @@ extern __typeof (strrchr) __strrchr_ppc attribute_hidden; extern __typeof (strrchr) __strrchr_power7 attribute_hidden; extern __typeof (strrchr) __strrchr_power8 attribute_hidden; -#undef strrchr +# undef strrchr /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle ifunc symbol properly. */ diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S index 89e2e5b..0c4a00e 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S @@ -16,8 +16,10 @@ License along with the GNU C Library; if not, see . */ -#define STRSPN __strspn_power8 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +#ifndef MULTI_ARCH_POWER8 +# define STRSPN __strspn_power8 +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) +#endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn.c b/sysdeps/powerpc/powerpc64/multiarch/strspn.c index 0957482..0b1449f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strspn.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strspn.c @@ -16,11 +16,12 @@ License along with the GNU C Library; if not, see . */ +#ifndef MULTI_ARCH_POWER8 # include # include # include "init-arch.h" -#undef strspn +# undef strspn extern __typeof (strspn) __libc_strspn; extern __typeof (strspn) __strspn_ppc attribute_hidden; @@ -33,3 +34,4 @@ libc_ifunc (__libc_strspn, weak_alias (__libc_strspn, strspn) libc_hidden_builtin_def (strspn) +#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S index 82a0e4c..218e09f 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S @@ -16,18 +16,20 @@ License along with the GNU C Library; if not, see . */ -#define STRSTR __strstr_power7 +#ifndef MULTI_ARCH_POWER8 +# define STRSTR __strstr_power7 -#undef libc_hidden_builtin_def -#define libc_hidden_builtin_def(name) +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) -#define STRLEN __strlen_power7 -#define STRNLEN __strnlen_power7 -#define STRCHR __strchr_power7 -#ifdef SHARED -#define STRLEN_is_local -#define STRNLEN_is_local -#define STRCHR_is_local +# define STRLEN __strlen_power7 +# define STRNLEN __strnlen_power7 +# define STRCHR __strchr_power7 +# ifdef SHARED +# define STRLEN_is_local +# define STRNLEN_is_local +# define STRCHR_is_local +# endif #endif #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c index 37add12..2ce8638 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c @@ -17,13 +17,17 @@ #include -#define STRSTR __strstr_ppc #if IS_IN (libc) && defined(SHARED) # undef libc_hidden_builtin_def -# define libc_hidden_builtin_def(name) \ - __hidden_ver1(__strstr_ppc, __GI_strstr, __strstr_ppc); +# ifndef MULTI_ARCH_POWER8 +# define libc_hidden_builtin_def(name) \ + __hidden_ver1(__strstr_ppc, __GI_strstr, __strstr_ppc); +# else +# define libc_hidden_builtin_def(name) +# endif #endif extern __typeof (strstr) __strstr_ppc attribute_hidden; +#define STRSTR __strstr_ppc #include diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr.c b/sysdeps/powerpc/powerpc64/multiarch/strstr.c index d903b27..3235406 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strstr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strstr.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define strstr __redirect_strstr # include # include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c index 8f4de0e..a1c6baf 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c +++ b/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c @@ -16,4 +16,11 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# define WCSCHR __wcschr_power7 + +# undef libc_hidden_def +# define libc_hidden_def(name) +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcschr.c b/sysdeps/powerpc/powerpc64/multiarch/wcschr.c index ca373e0..20289bb 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/wcschr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/wcschr.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # define wcschr __redirect_wcschr # define __wcschr __redirect___wcschr # include @@ -36,8 +36,10 @@ libc_ifunc_redirected (__redirect___wcschr, __wcschr, ? __wcschr_power6 : __wcschr_ppc); weak_alias (__wcschr, wcschr) -#else -#undef libc_hidden_def -#define libc_hidden_def(a) -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# undef libc_hidden_def +# define libc_hidden_def(a) +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c index 47ba73b..5ad7cba 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c +++ b/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c @@ -16,4 +16,8 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# define WCSCPY __wcscpy_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c b/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c index 13e44af..6d73551 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c +++ b/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" @@ -31,6 +31,8 @@ libc_ifunc (wcscpy, (hwcap & PPC_FEATURE_ARCH_2_05) ? __wcscpy_power6 : __wcscpy_ppc); -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c index fa25aa0..003fcd7 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c +++ b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c @@ -16,4 +16,8 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ -#include +#ifndef MULTI_ARCH_POWER8 +# define WCSRCHR __wcsrchr_power7 +#endif + +#include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c index 07590f5..cbcc35a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c +++ b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#if IS_IN (libc) +#if IS_IN (libc) && !defined MULTI_ARCH_POWER8 # include # include # include "init-arch.h" @@ -31,6 +31,8 @@ libc_ifunc (wcsrchr, (hwcap & PPC_FEATURE_ARCH_2_05) ? __wcsrchr_power6 : __wcsrchr_ppc); -#else -#include +#endif + +#if !IS_IN (libc) && !defined MULTI_ARCH_POWER8 +# include #endif