From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id GOp3K+E041+2FwAA0tVLHw (envelope-from ) for ; Wed, 23 Dec 2020 12:15:29 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id aGhdJ+E0419tZAAAB5/wlQ (envelope-from ) for ; Wed, 23 Dec 2020 12:15:29 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 736CA94036A for ; Wed, 23 Dec 2020 12:15:29 +0000 (UTC) Received: from localhost ([::1]:59114 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ks33A-0002bg-3Z for larch@yhetil.org; Wed, 23 Dec 2020 07:15:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39756) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ks32b-0002Zj-Im; Wed, 23 Dec 2020 07:14:53 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48794) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ks32Z-0005lO-PI; Wed, 23 Dec 2020 07:14:51 -0500 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=51914 helo=dundal.janneke.lilypond.org) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ks32Z-0005f6-0Q; Wed, 23 Dec 2020 07:14:51 -0500 From: Jan Nieuwenhuizen To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: wip-arm-bootstrap: Reduced binary seed bootstrap Organization: AvatarAcademy.nl References: <87ft40vevv.fsf@gnu.org> <87v9ctzxjd.fsf@gnu.org> X-Url: http://AvatarAcademy.nl Date: Wed, 23 Dec 2020 13:14:49 +0100 In-Reply-To: <87v9ctzxjd.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Tue, 22 Dec 2020 16:10:46 +0100") Message-ID: <87im8s1zye.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org, bug-mes@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.83 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 736CA94036A X-Spam-Score: -2.83 X-Migadu-Scanner: scn0.migadu.com X-TUID: VajFfkuMfkzS Ludovic Court=C3=A8s writes: Hi! > Jan Nieuwenhuizen skribis: > >> I pushed an initial wip-arm-bootstrap that builds up to tcc-boot: >> >> ./pre-inst-env guix build -e '(@@ (gnu packages commencement) tcc-boot)' >> >> >> Danny did a terrific job on armhf-linux support for GNU Mes and we are >> getting close to release v0.23. What's known to be missing is "setjmp" >> support for tcc/gcc. And, of course, for the Reduced binary seed >> bootstrap to work on ARM! > > Woohoo, thumbs up for this great milestone, hackers! =F0=9F=8E=89 Thanks!! >> Anyway, the problem I'm looking at now is that while tcc-boot builds on >> an ARM box, it does not build on aarch64-linux, i.e. this >> >> ./pre-inst-env guix build --system=3Darmhf-linux \ >> -e '(@@ (gnu packages commencement) tcc-boot0)' >> >> fails on overdrive1. > > That=E2=80=99s =E2=80=9Cinteresting=E2=80=9D. Did you eventually find a = lead? Yes, I added '|| BOOTSTRAP' in tccelf.c: --8<---------------cut here---------------start------------->8--- #if defined (TCC_ARM_EABI) || BOOTSTRAP ehdr.e_ident[EI_OSABI] =3D 0; ehdr.e_flags =3D EF_ARM_EABI_VER4; if (file_type =3D=3D TCC_OUTPUT_EXE || file_type =3D=3D TCC_OUTPUT_DLL) ehdr.e_flags |=3D EF_ARM_HASENTRY; if (s1->float_abi =3D=3D ARM_HARD_FLOAT) ehdr.e_flags |=3D EF_ARM_VFP_FLOAT; else ehdr.e_flags |=3D EF_ARM_SOFT_FLOAT; #else ehdr.e_ident[EI_OSABI] =3D ELFOSABI_ARM; #endif --8<---------------cut here---------------end--------------->8--- this should be investigated a bit further. Compiling with TCC_ARM_EABI fails (which should work, really), but for this linking stage we need it set to produce an aarch64-linux-compatible ELF header. Dunno! > Thanks for the update, it=E2=80=99s exciting! You're welcome! Meanwhile, I built gcc-core-mesboot0 (2.95.3). However, that's using bash from %bootstrap-coreutils&co. The last thing I did was to investigate into bash-2.05b and found that bash depends on a working setjmp/longjmp for tinycc. I tried several versions of macro substitution on x86 instead of setjmp/longjmp, but that doesn't seem possible: subshells and such. So Danny, would you like to look at that? Greetings, Janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com