From mboxrd@z Thu Jan 1 00:00:00 1970 From: csanchezdll@gmail.com (Carlos =?utf-8?Q?S=C3=A1nchez?= de La Lama) Subject: Re: Cross-building bootstrap binaries fail in current master Date: Fri, 21 Oct 2016 14:17:45 +0200 Message-ID: <7tvawl7v6e.fsf@gmail.com> References: <7tmvhzxubh.fsf@gmail.com> <87eg3bb04s.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]:32835) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bxYlk-0004YU-NX for guix-devel@gnu.org; Fri, 21 Oct 2016 08:17:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bxYlh-0003q5-HV for guix-devel@gnu.org; Fri, 21 Oct 2016 08:17:52 -0400 In-Reply-To: <87eg3bb04s.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 20 Oct 2016 15:50:11 +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" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org Hi! > Regardless, cross-building =E2=80=98bootstrap-tarballs=E2=80=99 to one of= the supported > target triplets works on master: > > --8<---------------cut here---------------start------------->8--- > $ ./pre-inst-env guix build bootstrap-tarballs --target=3Dmips64el-linux-= gnu -n > substitute: updating list of substitutes from 'https://mirror.hydra.gnu.o= rg'... 100.0% > The following files would be downloaded: > /gnu/store/lwn9v9jhsllffpc3d4kii8bldw4hfppa-bootstrap-tarballs-0 > /gnu/store/6cm18hfwbp8c1mf6wha28f0b0axlcm8k-guile-static-stripped-tarb= all-2.0.11 > /gnu/store/f790i196x1ms2ym13pvbazldzicqv4k9-glibc-stripped-tarball-2.23 > /gnu/store/jj007dw6gc31hnn1qq3yz7rz1ai1z0fa-gcc-stripped-tarball-4.9.3 > /gnu/store/niqxni4hhjr2wvlabn92z1asqb7xcnsx-static-binaries-tarball-0 > /gnu/store/pskf0y5q3j5a3k30c0czd2xymwp4224i-binutils-static-stripped-t= arball-2.25.1 > $ git describe > v0.11.0-1764-g3ad7dce > --8<---------------cut here---------------end--------------->8--- > > See: > > https://hydra.gnu.org/job/gnu/master/mips64el-linux-gnu.bootstrap-tarba= lls-0.x86_64-linux > https://hydra.gnu.org/job/gnu/master/mips64el-linux-gnuabi64.bootstrap-= tarballs-0.x86_64-linux For efraim and for myself, guix build --target=3Dmips64el-linux-gnu bootrap-tarballs got broken with commit b9bc6e842066b066ebdf9eaf75d41753598d75b5 After some digging, I think I have found the root cause. That commit introduces a (otherwise fine) replacement for expat, but this triggers a problem: After package-cross-derivation has (sucesfully) cross-built the un-grafted bootstrap-tarballs derivation, it tries to resolve grafts, using (bag-grafts), which does: --8<---------------cut here---------------start------------->8--- (define target-grafts (if target (let ((->graft (input-cross-graft store target system))) (fold-bag-dependencies (lambda (package grafts) (match (->graft package) (#f grafts) (graft (cons graft grafts)))) '() bag #:native? #f)) --8<---------------cut here---------------end--------------->8--- Now, (fold-bag-dependencies) goes trhough *all* the dependencies, down to make-boot0. The replacement in expat causes this loop to apply (package-cross-derivation) to them, including those which are not cross-compilable, at which point building fails (make-boot0). Probably building with --no-grafts is a suitable work-around, or cross-building expat beforehand (thus I won't need grafting) but I am leaving my store untoched for a while to be able to produce a proper fix. BR Carlos