From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH 10/10] gnu: base: Added glibc-for-target macro. Date: Mon, 25 May 2015 15:13:38 +0200 Message-ID: <87vbfg3im5.fsf@gnu.org> References: <87zj4z8lgn.fsf@gnu.org> 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]:42249) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YwsCP-00039L-DZ for Guix-devel@gnu.org; Mon, 25 May 2015 09:13:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YwsCL-0001x7-CT for Guix-devel@gnu.org; Mon, 25 May 2015 09:13:45 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42257) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YwsCL-0001x1-A6 for Guix-devel@gnu.org; Mon, 25 May 2015 09:13:41 -0400 In-Reply-To: (Manolis Ragkousis's message of "Fri, 22 May 2015 12:02:01 +0300") 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: Manolis Ragkousis Cc: Guix-devel Manolis Ragkousis skribis: > The problem is that when trying to build %gcc-static from > make-bootstrap.scm I get: > > make[2]: Entering directory > '/tmp/nix-build-gcc-static-4.8.4.drv-0/build/i686-pc-gnu/libgcc' > # If this is the top-level multilib, build all the other > DEFINES=3D'' HEADERS=3D'' \ > ../../../gcc-4.8.4/libgcc/mkheader.sh > tmp-libgcc_tm.h > make[2]: *** No rule to make target > '../../../gcc-4.8.4/libgcc/../libdecnumber/no/decimal32.c', needed by > 'decimal32.o'. Stop. > make[2]: *** Waiting for unfinished jobs.... > # multilibs. > > This happens because glibc-for-bootstrap return the wrong glibc, which > gcc-static is trying to use. The problem in =E2=80=98make-bootstrap.scm=E2=80=99 is that %glibc-stripped= and all the %*-bootstrap-tarball variables are evaluated at the top level, thus based on the default values of %current-system and %current-target-system ("x86_64-linux" and #f here, whereas you would like "i686-gnu" for the latter.) One solution would be to turn all of these into procedures. That way, %current-target-system would have the value you expect, and so =E2=80=98glibc-for-bootstrap=E2=80=99 & co. would use =E2=80=98glibc/hurd= =E2=80=99. Does that make sense? Let me know how that works. Thanks, Ludo=E2=80=99.