This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Exhaustive Instructions for Toolchain Generation


On Tue, Sep 26, 2017 at 4:30 PM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On 26 September 2017 at 22:05, R0b0t1 <r030t1@gmail.com> wrote:
>> Hello,
>>
>> 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
issues.

>> 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,[1] but it does not seem like there is any way
to do it via configure.

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.

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.
> https://gcc.gnu.org/install/specific.html

I did not know this page existed, 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.

Thank you,
     R0b0t1


[1]: http://www.tldp.org/HOWTO/Glibc2-HOWTO-6.html


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]