This is the mail archive of the
mailing list for the GCC project.
Re: Exhaustive Instructions for Toolchain Generation
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: R0b0t1 <r030t1 at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Wed, 27 Sep 2017 06:34:00 +0100
- Subject: Re: Exhaustive Instructions for Toolchain Generation
- Authentication-results: sourceware.org; auth=none
- References: <CAAD4mYhF0JAkvLcBzHCocB9L5iTd5XU9K33WHeDsJo=_GxqfLg@mail.gmail.com> <CAH6eHdSLuB=uZ4Hseb-CQeT9=E8JTb8=J3yHxBu2DLm7kq=2DA@mail.gmail.com> <CAAD4mYinDcV_Avb9_KwLEmofAiSri_2kHiQrfdu1=LZL0+L3YA@mail.gmail.com>
On 27 September 2017 at 05:49, R0b0t1 <firstname.lastname@example.org> wrote:
> On Tue, Sep 26, 2017 at 4:30 PM, Jonathan Wakely <email@example.com> wrote:
>> On 26 September 2017 at 22:05, R0b0t1 <firstname.lastname@example.org> wrote:
>>> I am having problems understanding the build instructions for GCC. I
>>> can almost always produce toolchains which function but I can find
>>> programs or scripts which do more or less the same thing that produce
>>> nonfunctional toolchains or which abort at some stage of compilation.
>>> (To clarify: I have no problem compiling the project, but I need help
>>> knowing all options which must be configured.)
>> What does "knowing all options which must be configured" mean?
>> Must be configured for what?
> For a working, "self contained" toolchain (no dependencies outside of
> some directory). I'm sorry I can't be more specific, that is part of
> the problem.
> It is possible I am aware of all steps that anyone else is aware of.
> If that is the case perhaps I am experiencing bugs or configuration
>>> This is related to my questions about generating an arm-none-eabi
>>> toolchain, however I also wish to build targets for
>>> x86_64-pc-linux-gnu, aarch64-unknown-linux-gnu,
>>> powerpc64le-unknown-linux-gnu, etc.
>>> Broadly, I have the following questions:
>>> 1) What is the complete list of dependencies for a GCC based
>>> toolchain? I am led to believe it is: zlib, gmp, mpfr, mpc, isl,
>>> expat, binutils, gcc, glibc, and gdb.
>> https://gcc.gnu.org/install/prerequisites.html should be clear.
>> isl is optional, it's not required. expat is not needed. zlib is not
>> needed, because the source for it is included in the GCC tree.
> Thank you, this explains some earlier confusion I had about there
> being no --with-zlib switch, but I still wonder why it is not present
> (c.f. gmp, mpfr, etc.).
> I am still left with the question of how to link GCC with a
> nonstandard libc. Instructions for doing this with miscellaneous
> programs are available, but it does not seem like there is any way
> to do it via configure.
Build it with a compiler that uses the libc you want to use.
> Are you (or anyone else) able to make a recommendation?
> I have tried to refer to each project's documentation and the Linux
> From Scratch documentation, but they do not seem to plan for precisely
> what I am doing.
You haven't explained what you're doing. You're being very vague, so
it's not clear what you're trying to do.
> E.g. I would like to compile most non-system programs against
> non-system libraries and run them as my user. I can do this and don't
> mean to ask general questions on this list. However, the main problem
> existing solutions have is that do not seem to configure GCC properly.
>>> 2) How do I specify each of the above to be reliant on the versions of
>>> other programs that it may depend on being used for the toolchain?
>>> Ideally these toolchains would not use system libraries if CHOST is
>>> the same as BHOST.
>>> 3) Are there any architecture specific options for any of the possible targets?
>> Read the docs.
> I did not know this page existed,
It's linked to from the start of https://gcc.gnu.org/install/ which is
linked to from https://gcc.gnu.org/ so you don't seem to have looked
> but it seems more like errata. It
> doesn't give helpful pointers as to configuration you may need to
> accomplish X. It may be that what I am looking for does not exist,
> which I expected may be the case.
It would depend what X is. I don't see how anyone can help you with
> Thank you,
> : http://www.tldp.org/HOWTO/Glibc2-HOWTO-6.html