[llvm-dev] unable to compile llvm with gcc 4.7.4

Flamedoge via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 17 11:09:12 PDT 2016


Just for the interest of discussion, I find it completely weird and
interesting that GCC needs to build itself 3 times to fully bootstrap. Has
there been any interest in looking at a single compile build? I don't
exactly know the limitations, but my naive thinking is that C++14 compiler
source parsed by C++14 capable compiler and codegen'd to C99 (or older)
source should make it compilable by older compilers. Is this just a
delusion or an actually useful idea?

Regards,
Kevin

On Mon, Oct 17, 2016 at 7:24 AM, Bruce Hoult via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I think this 3 stage bootstrap is just a fact of modern life, and progress
> of languages. In fact I think you're getting away lightly, and I'm amazed
> you could use only a 2-stage bootstrap from a very simple C compiler until
> now!!
>
> The good news: it should be a very very long time before you need a 4
> stage bootstrap :-)
>
>
> On Mon, Oct 17, 2016 at 2:02 PM, Sylvain Bertrand via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hi,
>>
>> The problem is modern c++. I can have a reasonable system boostrape-ed
>> with (tinycc/alternative C compiler), but only in the gcc world since
>> a modern c++ compiler is only bootsrape-able from near any C compiler
>> there. clang and llvm are unable to do it. That why I would need to
>> get 2 gccs: "any C compiler" -> gcc 4.7.4 -> gcc recent_version ->
>> llvm.
>>
>> On Fri, Oct 14, 2016 at 4:02 PM, Renato Golin <renato.golin at linaro.org>
>> wrote:
>> > On 13 October 2016 at 12:56,  <sylvain.bertrand at gmail.com> wrote:
>> >> It's my custom distro. My goal is to make it boostrap-able with tinycc
>> (or any
>> >> little C compiler alternative) as a one-man reasonable job. With the
>> removal of
>> >> gcc 4.7 support now official, I would need to have a 3 step bootstrap,
>> adding a
>> >> modern gcc (which is guaranted to compile with iso c++98-ish gcc
>> 4.7.4, feature
>> >> that clang cannot guaranted anymore).
>> >
>> > Hi Sylvain,
>> >
>> > I have to say, after a while thinking about your use case, I cannot
>> > come up with a better solution than a 3-stage build. :(
>> >
>> > Maybe you need to step back a bit and ask yourself: what would be the
>> > system changes to adopt GCC 4.8 natively instead of tinycc.
>> >
>> > What distributions do is to compile the base GCC they'll use first,
>> > making sure all the correct libraries in all the correct versions are
>> > bundles in the right places, then use that toolchain for *everything*.
>> >
>> > You seem comfortable enough building GCC 4.7, I assume as a side
>> > package, like BSD ports. I'm also assuming you already need GCC (for
>> > packages other than LLVM), then why not make GCC your system compiler?
>> >
>> > The dependencies will already be there anyway, and I don't think GCC
>> > 4.8's libraries are much bigger than 4.7, so it does seem like an
>> > overall gain.
>> >
>> > Of course, it'll mean you'll have to test your packages with GCC 4.8,
>> > but assuming they already use tinycc or GCC 4.7, I hope you'll have
>> > very little additional problems.
>> >
>> > Would any of that help?
>> >
>> > cheers,
>> > --renato
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161017/b1ea3c52/attachment.html>


More information about the llvm-dev mailing list