On Wed, Mar 11, 2015 at 10:21 AM, Ehsan Akhgari <ehsan.akhg...@gmail.com>
wrote:

On 2015-03-11 7:35 AM, Brian Smith wrote:
>
>> Mike Hommey <m...@glandium.org> wrote:
>>
>>> Brian Smith wrote:
>>>
>>>> It is very inconvenient to have a minimum supported compiler version
>>>> that we cannot even do test builds with using tryserver.
>>>>
>>>
>>> Why this sudden requirement when our *current* minimum "supported"
>>> version is 4.6 and 4.6 is nowhere close to that on try. That is also
>>> true for older requirements we had for gcc. That is also true for clang
>>> on OSX, and that was also true for the short period we had MSVC 2012 as
>>> a minimum on Windows. I'm not saying this is an ideal situation, but I'd
>>> like to understand why gcc needs to suddenly be treated differently.
>>>
>>
>> The current situation is very inconvenient. To improve it, all
>> compilers should be treated the same: Code that builds on
>> mozilla-inbound/central/tryserver is good enough to land, as far as
>> supported compiler versions are concerned. So, for example, if clang
>> 3.7 is what is used on the builders, then clang 3.6 would be
>> unsupported. And the same with GCC and MSVC.
>>
>
> In my ideal world, instead of spending time debating what compilers we
> should use, we would stop relying on the system compiler, and build on all
> platforms with known good compilers of our choosing.  That of course
> requires some build system work to get the compilers installed etc and
> unfortunately I don't think we have anyone lined up to do that work. But if
> we ever got there, we could have total control over what compilers are used
> to build our code, so we would not be affected by external factors such as
> distros' compiler choice.


I would prefer the default build mode construct a chroot or Docker
environment [that is the same environment Mozilla uses in automation] and
we build in that. This build environment would be defined inside
mozilla-central in such a way that it is reproducible over time. e.g.
update your source repo to a commit from March 2015 and you automatically
get the build environment that was used in March 2015. Another aspect of
this switch is it gets us much closer to deterministic and reproducible
builds.

This is achievable today. Bug 1133877 tracks an aspect of it.

What I don't know is:

1) Who will write the code
2) Whether distros will use our official build environments.

I suspect distros will have concerns about using our build environment
(which is essentially a bare bones OS install) verbatim due to concerns
like dependency hell and other things that distros worry about. Those
reasons are valid.

So I guess we trend towards supporting 2 build modes: Mozilla's official
build environment via containers/chroots (preferred) or "host native" (for
the people who insist on using it). Only "host native" exists today and it
is a PITA.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to