Sorry for the late answer. Thanks for prodding me on irc.

On Sat, Feb 23, 2019 at 06:36:39PM -0800, Emilio Cobos Álvarez wrote:
> Hey,
> 
> I have a use-case for inline variables, and it's not 100% clear to me
> how up-to-date is [1], so asking this mailing-list directly.
> 
> Looks like they're supported from clang 3.9 [2] and gcc 7 [3].
> 
> We're requiring clang 4.0+ to build already, and IIUC we don't build
> with MSVC anymore. But looks like we still support gcc 6 (which I guess
> means I can't use them right now).
> 
> Is that right? If so, how far are we from requiring gcc 7 to build?

According to [1], the only main distro that would have a hard time
_building_ Firefox with such a requirement and that is not EOL is Debian
9.

Now, two things that do not appear yet on that table, because I haven't
added them, is rustc and nasm.

As only the ESR version really has any sort of impact on Debian stable,
and the next ESR is, afaik, going to be 68, the requirements for rustc
and nasm for that version are going to be, respectively, (probably) 1.33
and 2.13. Neither of those is available in Debian 9, so Debian will have
to backport those anyways. In the process of backporting rustc, they'll
have to backport a recent llvm too (probably 7, maybe 8), which will
mechanically bring a newer version of clang. So, with my Debian hat on,
even if a backport of a more recent version of GCC is not made for ESR68
(there's precedent on using a "gcc-mozilla" package to build Firefox, so
that's also a possibility), there's going to be a recent enough version
of clang to build Firefox (and even then, Debian 9 has clang-4 too).

So... with both my Debian and Mozilla hats on, I think we can reasonably
bump the requirement to GCC 7.

However, there have been hurdles in the past with GCC 7 on Mozilla CI,
but IIRC that was related to trying to _ship_ those builds. We still do
have builds using GCC for various reasons, but we don't ship them, so
that should be fine. We _do_ have jobs that use a GCC plugin that may
not be ready to be updated to GCC 7, though.

So, I'd say, change all occurrences of linux64-gcc-6 with linux64-gcc-7
under taskcluster/ci, change the minimum GCC version supported in
build/moz.configure/toolchain.configure, and do a try build including
all the build types you changed the toolchain dependencies of, and see
how it goes. And file bugs if things don't go well :).

Cheers,

Mike

1. 
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Linux_compatibility_matrix
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to