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 27 September 2017 at 05:49, R0b0t1 <r030t1@gmail.com> wrote:
> 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.

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.

Define "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,

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
very far.

> 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
this vagueness.


> 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]