From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: forcing local build from a package definition Date: Sun, 26 Oct 2014 00:25:16 +0200 Message-ID: <87r3xvpz1v.fsf@gnu.org> References: <87ppdhxpl7.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xi9li-0001WO-4n for guix-devel@gnu.org; Sat, 25 Oct 2014 18:25:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xi9lc-00036L-G1 for guix-devel@gnu.org; Sat, 25 Oct 2014 18:25:06 -0400 Received: from hera.aquilenet.fr ([2a01:474::1]:40569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xi9lc-00036H-8r for guix-devel@gnu.org; Sat, 25 Oct 2014 18:25:00 -0400 In-Reply-To: (Federico Beffa's message of "Sat, 25 Oct 2014 08:23:30 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Federico Beffa Cc: Guix-devel Federico Beffa skribis: > Let me try to better explain the problem: ATLAS needs to know the > exact type of CPU on which it is running for best performance. This is > because it tries to make best use of all available features: > Say, you have a recent CPU with 8 cores and instructions set including > SSE1 SSE2 SSE3. If you specify this type of CPU, ATLAS will build a > library with procedures which make use of 8 parallel threads and try > to exploit all available instructions at best. However, the library > will not run on an older CPU, say, with no SSE3. And perform poorly on > a two cores CPU. I think ATLAS should do like GMP, libc, etc.: build all the possible variants, and then use IFUNC or a similar mechanism to select the right variant at load time. That doesn=E2=80=99t answer your initial question, though. For now, I think it=E2=80=99s OK to let it do its configure-time tuning and add a statement = in the description about substitutes, unless other packages depend on it (in the former case, people would be installing it explicitly, so they would most likely know what they=E2=80=99re doing.) WDYT? Thanks, Ludo=E2=80=99.