From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 5442B3945C30 for ; Tue, 5 May 2020 00:07:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5442B3945C30 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=joseph_myers@mentor.com IronPort-SDR: tAGYOeysL8WNGtAuUK1tU0GX9MZgZExGLWh2s4FrWLn3gm4ikNrSBQacVjK2DH9R2xNpeUIjy6 pWrZHhi/7tXiT11CA6DSTu/2c+1+WByRH/7qLjIArwKvYu9iNMvbk1N3Icsa5l3655Bqckwg1X BEaejkIb847AdKSyRH2lBo0v3xWFAUa2zqgl6jTFMzieNopgOcuhp4MltqhuWcvXTSlbV719in nKZD3YbqHonfxH5m1bM6bf25P5wizVVt8dCQqB+CUYgb5dqZUnXNvyME+HTlgi8KDfWIHEQ90S BLk= X-IronPort-AV: E=Sophos;i="5.73,353,1583222400"; d="scan'208";a="48456223" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 04 May 2020 16:07:43 -0800 IronPort-SDR: 1zeQQeVPCAesMLWvLjlq7S2wChMWF184bxNDWqjy/S6kNIthL6h/bU6wsS6ojgWebc9JRZp3Ij roJOkxmK4rZrc4wrYtjE9dccJIpJGIBAsA0XQ7vw4XcXzrnNalcsFdmJKmkMiXtA9bdmWCv8HG mxOKxkk5qWlctIp6akGCs9H31o5jov/ZwOfE3zhM2NgddlAoa1WzlbA7ig5z0FneXHq05zFoOc hlyw1NR3bOINTrQIbb+JpiM1+zRTeCkKogGg/QJW53bUfIq0DQgow8SvpW9dXYmMpCJWCwksb+ 8os= Date: Tue, 5 May 2020 00:07:37 +0000 From: Joseph Myers X-X-Sender: jsm28@digraph.polyomino.org.uk To: "Paul E. Murphy" CC: Subject: Re: [PATCH 4/4] powerpc64le: ifunc (almost) all *f128 routines in multiarch mode In-Reply-To: <85f946d6be11c064d5da352b245a9cbb28d0a639.1588628261.git.murphyp@linux.vnet.ibm.com> Message-ID: References: <85f946d6be11c064d5da352b245a9cbb28d0a639.1588628261.git.murphyp@linux.vnet.ibm.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-06.mgc.mentorg.com (139.181.222.6) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2020 00:07:47 -0000 On Mon, 4 May 2020, Paul E. Murphy via Libc-alpha wrote: > A set of additional headers are included which primarily rely > on asm redirects to rename, and less frequently macro renames > where an asm redirect is not possible. These intercept several > common headers to install redirect and disable macros at specific > times. This works surprisingly well. Notably, some ugliness > occurs when header inclusion must be coerced at certain times > before turning off aliasing and plt bypass wrappers. > > Notably, the only special case is s_significandf128.c. It is > doubly special as exists to support ldouble redirects, and > exposes subtle difference between makefile rules and search path > orders. Commentary is inlined. > > Admittedly, this makes shared maintenance a tiny bit more > difficult, but lays groundwork for supporting more optimized > float128 routines which very overtly assume a soft-fp runtime. > Changes to internal float128 API should fail at compile time, > thus build-many-glibcs.py should readily catch any divergence. Please ensure that every new macro (F128_MP_REDIR_R, F128_MP_REDIR, F128_C_REDIR, F128_TRIG_REDIR, etc.) has a detailed comment explaining its semantics and when it should be used. Some detailed documentation is also needed, in a checked-in file, maybe sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile, not just in a commit message, of the overall design of this ifunc system. That documentation needs to make clear what the rules are that determine, for any new libm function (so no compat symbols involved), exactly what redirects etc. should be present in what files for this ifunc system to work correctly for that function. > +# Only enable this for generic (P8 or older) multiarch builds > +ifeq ($(cflags-cpu),"") > +do_f128_multiarch = yes Although not a requirement for this patch, I'd like to remind people that --with-cpu= (which sets cflags-cpu) is an obsolescent way of configuring CPU optimizations and automatic detection of the CPU selected by $CC $CFLAGS $CPPFLAGS is preferred. See for a previous submission of a patch (needing revision) to start moving powerpc to the preferred system. -- Joseph S. Myers joseph@codesourcery.com