PSA: Building Firefox 61+ with GCC will soon require version GCC 6.1+

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

PSA: Building Firefox 61+ with GCC will soon require version GCC 6.1+

Jeff Gilbert-2
Bug 1444274 will bump our minimum GCC version to 6.1. GCC-7 will
continue to work.

If you build with GCC instead of Clang on Linux, I've been told that
the system gcc package for Ubuntu 16.04 LTS is gcc-5, so very soon
you'll need to install a gcc-6 package to continue to build.

With a bump to GCC 6, along with the bump to vs2017, we should be able
to start relying on c++14 features. This will help out with tracking
upstream projects which are starting to rely in c++14, as well as
letting us phase in new tools into our c++ toolbox. (relaxed constexpr
is a big one)
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds
Reply | Threaded
Open this post in threaded view
|

Re: PSA: Building Firefox 61+ with GCC will soon require version GCC 6.1+

Jeff Gilbert-2
I have updated our table:
https://developer.mozilla.org/en-US/docs/Mozilla/Using_CXX_in_Mozilla_code

On Mon, Apr 2, 2018 at 5:30 PM, Jeff Gilbert <[hidden email]> wrote:

> Bug 1444274 will bump our minimum GCC version to 6.1. GCC-7 will
> continue to work.
>
> If you build with GCC instead of Clang on Linux, I've been told that
> the system gcc package for Ubuntu 16.04 LTS is gcc-5, so very soon
> you'll need to install a gcc-6 package to continue to build.
>
> With a bump to GCC 6, along with the bump to vs2017, we should be able
> to start relying on c++14 features. This will help out with tracking
> upstream projects which are starting to rely in c++14, as well as
> letting us phase in new tools into our c++ toolbox. (relaxed constexpr
> is a big one)
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds
Reply | Threaded
Open this post in threaded view
|

Re: PSA: Building Firefox 61+ with GCC will soon require version GCC 6.1+

Nicholas Nethercote
In reply to this post by Jeff Gilbert-2
Thank you for working on this, jgilbert.

I tried to take advantage of C++14's relaxed constexpr for bug 1451278, but I'm getting one test job failure on automation, visible here:


It's the "spidermonkey-sm-rust-bindings-linux64/debug" job, which is presumably still using an old version of GCC. It's a tier 2 job. Does anyone know if it's important, and if so, how it should be updated?

Thanks.

Nick

On Tue, Apr 3, 2018 at 10:30 AM, Jeff Gilbert <[hidden email]> wrote:
Bug 1444274 will bump our minimum GCC version to 6.1. GCC-7 will
continue to work.

If you build with GCC instead of Clang on Linux, I've been told that
the system gcc package for Ubuntu 16.04 LTS is gcc-5, so very soon
you'll need to install a gcc-6 package to continue to build.

With a bump to GCC 6, along with the bump to vs2017, we should be able
to start relying on c++14 features. This will help out with tracking
upstream projects which are starting to rely in c++14, as well as
letting us phase in new tools into our c++ toolbox. (relaxed constexpr
is a big one)
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds


_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds
Reply | Threaded
Open this post in threaded view
|

Re: PSA: Building Firefox 61+ with GCC will soon require version GCC 6.1+

Mike Hommey
On Thu, Apr 05, 2018 at 06:53:52PM +1000, Nicholas Nethercote wrote:
> Thank you for working on this, jgilbert.
>
> I tried to take advantage of C++14's relaxed constexpr for bug 1451278, but
> I'm getting one test job failure on automation, visible here:
>
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=bcd8e01989d987268cfb6beb7f86e948eae3730d&selectedJob=172004924

That's a funny error. But the most important bit of information is
missing, so one can only conjecture.

So, cmake is used to build jsglue.cpp for the rust js crate. It properly
uses GCC 6.4 from the right directory, yet fails to build. GCC 6.4
*defaults* to C++14, so I can only conjecture that cmake is explicitly
passing some argument that makes it use an older C++ version, because
the log doesn't say what command line was used to invoke GCC.

(If someone feels like removing the use of cmake, be my guest, we surely
don't want that to slip in when those bindings become necessary for
gecko ; ironically, it's used to build *one* file. Why the rust cc crate
is not used instead is beyond me)

Mike
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds