From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: Re: SOLVED: Re: gcc-4.7.4: libgcc2.h:157: error: unable to emulate 'TF' Date: Wed, 11 Jul 2018 21:23:27 +0200 Message-ID: <87zhyxk24w.fsf@gnu.org> References: <87sh4sny8j.fsf@gnu.org> <5B43A955.7090904@mutluit.com> <87muv0nqoi.fsf@gnu.org> <5B442D84.8030805@mutluit.com> <87sh4rm8nb.fsf@gnu.org> <87601mna30.fsf@gnu.org> <5B452C86.6090003@mutluit.com> <87pnztln99.fsf_-_@gnu.org> <5B46473B.8050701@mutluit.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org In-Reply-To: <5B46473B.8050701@mutluit.com> (U. Mutlu's message of "Wed, 11 Jul 2018 20:06:51 +0200") To: "U.Mutlu" Cc: gcc-help@gcc.gnu.org, guix-devel@gnu.org List-Id: guix-devel.gnu.org U.Mutlu writes: >> Thanks! I'm very grateful for your help. I succeeded in building >> gcc-4.7.4 from almost no binary seeds[0] for GuixSD! > > Congrats! :-) Thanks! > Can you give us some info on your project? (mes?) Mes[0] aims to help create full source bootstrapping for GNU/Linux distributions such as GuixSD[1] as part of the bootstrappable builds[2] effort. It consists of a mutual self-hosting Scheme interpreter written in ~5,000LOC of simple C and a Nyacc-based C compiler written in Scheme. > As I could figure out, GuixSD is a (new) GNU package manager, right? Correct. Guix is the packagage manager, GuixSD (for System Distribution) is GNU's GNU/Linux distribution built around it. > I think you mentioned TCC, scheme, own header files etc. This MesCC compiler comes with three sizes of Mes lib C: libc for building mes.c, libc+tcc for building TCC. Then, there is libc+gnu that is used together with TCC to build binutils-2.20a and gcc-2.95.3. > Did you still had to use also the old gcc 2.95.3 ? We are using gcc 2.95.3 as the first GCC compiler mainly because (after many experiments with versions from 1.40 to 4.1) it proved the most "bootstrappable" GCC. GCC 3 introduces a dependency on dirent, e.g., that our naive C library does not support. If we make our libc+gnu richer then we can probably target a newer GCC, but it's not obvious to me what the bootstrap consequences of that are. > What's the goal, and why especially that target version gcc 4.7.4 ? GCC 4.7.4 is currently used as one of the bootstrap binaries of GuixSD. Also, it's the most recent GCC compiler that can be considered to be directly bootstrappable. I don't consider building a c++ bootstrap compiler ;-) The goal is to replace the x86 bootstrap of GNU/Linux distributions, using a bootstrap [mostly] from source instead of what currently happens: seeding it with a very large blob of bootstrap binaries. GuixSD seems the best place to develop this in. > Just a little bit curious about your complicated looking project :-) Thanks for showing interest! Greetings, janneke [0] http://gitlab.com/janneke/mes [1] https://www.gnu.org/software/guix [2] http://bootstrappable.org --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com