From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Cross-building bootstrap binaries fail in current master Date: Mon, 31 Oct 2016 22:59:02 +0100 Message-ID: <87k2conpsp.fsf@gnu.org> References: <7tmvhzxubh.fsf@gmail.com> <87eg3bb04s.fsf@gnu.org> <7tvawl7v6e.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <7tvawl7v6e.fsf@gmail.com> ("Carlos =?utf-8?Q?S=C3=A1nchez?= de La Lama"'s message of "Fri, 21 Oct 2016 14:17:45 +0200") 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: Carlos =?utf-8?Q?S=C3=A1nchez?= de La Lama Cc: guix-devel@gnu.org, bug-guix@gnu.org List-Id: bug-guix.gnu.org Hi Carlos, csanchezdll@gmail.com (Carlos S=C3=A1nchez de La Lama) skribis: >> Regardless, cross-building =E2=80=98bootstrap-tarballs=E2=80=99 to one o= f 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.= org'... 100.0% >> The following files would be downloaded: >> /gnu/store/lwn9v9jhsllffpc3d4kii8bldw4hfppa-bootstrap-tarballs-0 >> /gnu/store/6cm18hfwbp8c1mf6wha28f0b0axlcm8k-guile-static-stripped-tar= ball-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-= tarball-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-tarb= alls-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: > > (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)) > > 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). Indeed, looks like a genuine bug. Cc=E2=80=99ing bug-guix so we can keep tr= ack of it. > 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. Yeah, I=E2=80=99d suggest using --no-grafts until this is fixed. Thanks, Ludo=E2=80=99.