From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: [PATCH] Add Julia. Date: Tue, 24 Mar 2015 18:14:06 +0100 Message-ID: References: <87384vqtwh.fsf@netris.org> <87pp7yphom.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34207) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YaSPG-0001YC-6o for guix-devel@gnu.org; Tue, 24 Mar 2015 13:14:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YaSPB-0006bA-71 for guix-devel@gnu.org; Tue, 24 Mar 2015 13:14:22 -0400 Received: from pegasus.bbbm.mdc-berlin.de ([141.80.25.20]:42680) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YaSPA-0006aq-Tb for guix-devel@gnu.org; Tue, 24 Mar 2015 13:14:17 -0400 In-Reply-To: <87pp7yphom.fsf@netris.org> 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: Mark H Weaver Cc: guix-devel Mark H Weaver writes: > Mark H Weaver writes: > >> Ricardo Wurmus writes: >> >>> From 41550ffafa8da05b2cf8dfad66d44e6f43c9042c Mon Sep 17 00:00:00 2001 >>> From: Ricardo Wurmus >>> Date: Fri, 20 Mar 2015 11:26:23 +0100 >>> Subject: [PATCH 2/2] gnu: Add Julia. >>> >>> * gnu/packages/julia.scm: New file. >>> * gnu-system.am (GNU_SYSTEM_MODULES): Add it. >> >> Hydra was unable to successfully build Julia on any platform. See: >> >> http://hydra.gnu.org/build/339221 >> http://hydra.gnu.org/build/339192 > > The illegal instruction errors are in openblas, which is marked > non-substitutable because it apparently builds itself customized to the > CPU on the build machine. So, I guess openblas might have been built on > a build slave with more processor features than the one used to build > Julia. > > Perhaps the answer is that Julia shouldn't be built by Hydra, because > one of its transitive inputs is non-substitutable. I encountered build failures trying to install openblas on a virtual machine (works fine on my workstation). While looking for a solution I stumbled upon the openblas make flag "DYNAMIC_ARCH=1" which asks openblas to build modules for all(?) supported CPUs. After modifying the openblas package in this manner it was built on the virtual machine without issues and I could use it with Julia (so far without problems). May I suggest adding passing the "DYNAMIC_ARCH=1" flag in openblas instead of propagating non-substitutability to Julia? When built with "DYNAMIC_ARCH=1" the CPU type can be picked with the environment variable OPENBLAS_CORETYPE=. If I'm not mistaken this makes substitutions for openblas possible. What do you think? ~~ Ricardo