From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/2081 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: feature request: flag to disable math library build Date: Thu, 11 Oct 2012 19:28:58 -0400 Message-ID: <20121011232858.GA254@brightrain.aerifal.cx> References: <5077024E.6080104@barfooze.de> <20121011181709.GK24157@port70.net> <20121011193738.GL24157@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1349998663 26924 80.91.229.3 (11 Oct 2012 23:37:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 11 Oct 2012 23:37:43 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-2082-gllmg-musl=m.gmane.org@lists.openwall.com Fri Oct 12 01:37:50 2012 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1TMSK5-0008Kg-0Z for gllmg-musl@plane.gmane.org; Fri, 12 Oct 2012 01:37:49 +0200 Original-Received: (qmail 32755 invoked by uid 550); 11 Oct 2012 23:37:42 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 32747 invoked from network); 11 Oct 2012 23:37:42 -0000 Content-Disposition: inline In-Reply-To: <20121011193738.GL24157@port70.net> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:2081 Archived-At: On Thu, Oct 11, 2012 at 09:37:38PM +0200, Szabolcs Nagy wrote: > * Szabolcs Nagy [2012-10-11 20:17:09 +0200]: > > if you don't like such hacks then you can add > > > > SRCS:=$(filter-out src/complex/%,$(SRCS)) > > SRCS:=$(filter-out src/math/%,$(SRCS)) > > > > to your config.mak > > > > i'm not sure how safe is this: libc uses some math > > functions (at least stdio uses frexpl for printf) > > these are the math functions used by other parts > of libc (mostly float scan and print): > > M = \ > __fpclassifyl \ > copysign \ > copysignl \ > fabs \ > fmod \ > fmodl \ > frexp \ > frexpl \ > scalbn \ > scalbnl \ > > so you need > > SRCS := $(SRCS) $(M:%=src/math/%.c) > > (not tested) Note that this breaks if any of the above functions ever depend on other math functions or internal math modules, not to mention if the set of math functions used by the other part of the library ever changes. I'm generally opposed to this kind of feature switching because it has huge maintenance cost keeping track of all possible configurations and ensuring none of them are broken. I think the problem of extreme slowness building on emulated or low-end hardware could be better addressed by using distcc, cross compiling, or other approaches that leverage a more-powerful cpu instead of omitting parts of libc. (Anyway, isn't musl only a tiny percentage of the total build time?) Rich