From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66932 invoked by alias); 11 Jan 2019 16:19:06 -0000 Mailing-List: contact libc-stable-help@sourceware.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: List-Archive: Sender: libc-stable-owner@sourceware.org Received: (qmail 66920 invoked by uid 89); 11 Jan 2019 16:19:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KHOP_DYNAMIC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=picked, H*r:sendmail, plt, PLT X-Spam-Status: No, score=-25.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KHOP_DYNAMIC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0a-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.156.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 11 Jan 2019 16:19:03 +0000 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id x0BGE0DK088082 for ; Fri, 11 Jan 2019 11:19:02 -0500 Received: from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153]) by mx0a-001b2d01.pphosted.com with ESMTP id 2pxvdk8cec-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 11 Jan 2019 11:19:01 -0500 Received: from localhost by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 11 Jan 2019 16:19:01 -0000 Received: from b03cxnp08028.gho.boulder.ibm.com (9.17.130.20) by e35.co.us.ibm.com (192.168.1.135) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Fri, 11 Jan 2019 16:18:59 -0000 Received: from b03ledav005.gho.boulder.ibm.com (b03ledav005.gho.boulder.ibm.com [9.17.130.236]) by b03cxnp08028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x0BGIwg519333174 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Fri, 11 Jan 2019 16:18:58 GMT Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5571DBE051 for ; Fri, 11 Jan 2019 16:18:58 +0000 (GMT) Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B3103BE053 for ; Fri, 11 Jan 2019 16:18:56 +0000 (GMT) Received: from shinano (unknown [9.85.206.230]) by b03ledav005.gho.boulder.ibm.com (Postfix) with SMTP for ; Fri, 11 Jan 2019 16:18:56 +0000 (GMT) Received: by shinano (sSMTP sendmail emulation); Fri, 11 Jan 2019 14:18:55 -0200 From: Tulio Magno Quites Machado Filho To: libc-stable@sourceware.org Subject: [2.26 COMMITTED] [BZ #21745] powerpc: build some IFUNC math functions for libc and libm Date: Tue, 01 Jan 2019 00:00:00 -0000 X-Mailer: git-send-email 2.14.5 X-TM-AS-GCONF: 00 x-cbid: 19011116-0012-0000-0000-000016F81CF7 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00010385; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000274; SDB=6.01144989; UDB=6.00596220; IPR=6.00925258; MB=3.00025086; MTD=3.00000008; XFM=3.00000015; UTC=2019-01-11 16:19:00 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19011116-0013-0000-0000-000055C79408 Message-Id: <20190111161848.27924-1-tuliom@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-01-11_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901110133 X-SW-Source: 2019-01/txt/msg00015.txt.bz2 From: Tulio Magno Quites Machado Filho Some math functions have to be distributed in libc because they're required by printf. libc and libm require their own builds of these functions, e.g. libc functions have to call __stack_chk_fail_local in order to bypass the PLT, while libm functions have to call __stack_chk_fail. While math/Makefile treat the generic cases, i.e. s_isinff, the multiarch Makefile has to treat its own files, i.e. s_isinff-ppc64. [BZ #21745] * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: [$(subdir) = math] (sysdep_calls): New variable. Has the previous contents of sysdep_routines, but re-sorted.. [$(subdir) = math] (sysdep_routines): Re-use the contents from sysdep_calls. [$(subdir) = math] (libm-sysdep_routines): Remove the functions defined in sysdep_calls and replace by the respective m_* names. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: (compat_symbol): Undefine to avoid duplicated compat symbols in libc. (cherry picked from commit 61c45f250528dae431391823a9766053e61ccde1) --- ChangeLog | 14 +++++++++ sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile | 36 ++++++++++++---------- .../powerpc64/fpu/multiarch/s_isnan-ppc64.S | 3 ++ 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4b18e27288..7d99754ec6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2019-01-11 Tulio Magno Quites Machado Filho + + [BZ #21745] + * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: + [$(subdir) = math] (sysdep_calls): New variable. Has the + previous contents of sysdep_routines, but re-sorted.. + [$(subdir) = math] (sysdep_routines): Re-use the contents from + sysdep_calls. + [$(subdir) = math] (libm-sysdep_routines): Remove the functions + defined in sysdep_calls and replace by the respective m_* names. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: + (compat_symbol): Undefine to avoid duplicated compat symbols in + libc. + 2019-01-02 Florian Weimer [BZ #24018] diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile index d6f14f360a..73f2f69377 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile @@ -1,33 +1,35 @@ ifeq ($(subdir),math) -sysdep_routines += s_isnan-power7 s_isnan-power6x s_isnan-power6 \ - s_isnan-power5 s_isnan-ppc64 s_copysign-power6 \ - s_copysign-ppc64 s_finite-power7 s_finite-ppc64 \ - s_finitef-ppc64 s_isinff-ppc64 s_isinf-power7 \ - s_isinf-ppc64 s_modf-power5+ s_modf-ppc64 \ - s_modff-power5+ s_modff-ppc64 s_isnan-power8 \ - s_isinf-power8 s_finite-power8 +# 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 -libm-sysdep_routines += s_isnan-power7 s_isnan-power6x s_isnan-power6 \ - s_isnan-power5 s_isnan-ppc64 s_llround-power6x \ +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_copysign-power6 s_copysign-ppc64 s_llrint-power6x \ - s_llrint-ppc64 s_finite-power7 s_finite-ppc64 \ - s_finitef-ppc64 s_isinff-ppc64 s_isinf-power7 \ - s_isinf-ppc64 s_logb-power7 s_logbf-power7 \ + s_llrint-power6x s_llrint-ppc64 \ + s_logb-power7 s_logbf-power7 \ s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \ - s_logbl-ppc64 s_modf-power5+ s_modf-ppc64 \ - s_modff-power5+ s_modff-ppc64 e_hypot-ppc64 \ + s_logbl-ppc64 e_hypot-ppc64 \ e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \ - s_isnan-power8 s_isinf-power8 s_finite-power8 \ 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 + s_cosf-ppc64 s_cosf-power8 \ + $(sysdep_calls:s_%=m_%) CFLAGS-s_logbf-power7.c = -mcpu=power7 CFLAGS-s_logbl-power7.c = -mcpu=power7 diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S index ee219c14be..eba0d4ff5e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S @@ -23,6 +23,9 @@ #define weak_alias(a,b) #undef strong_alias #define strong_alias(a,b) +#undef compat_symbol +#define compat_symbol(a,b,c,d) + #define __isnan __isnan_ppc64 #undef hidden_def -- 2.14.5