Upstream Yocto Bringing in GCC 10

Patrick Williams patrick at stwcx.xyz
Wed Jun 3 06:09:58 AEST 2020


On Tue, Jun 02, 2020 at 06:32:34PM +0000, Khetan, Sharad wrote:
> From: openbmc <openbmc-bounces+sharad.khetan=intel.com at lists.ozlabs.org> On Behalf Of Adrian Ambrozewicz
> Sent: Tuesday, June 02, 2020 1:19 AM
> W dniu 5/26/2020 o 17:57, Patrick Williams pisze:

> >I can imagine some companies or communities might choose to be careful in that matter. I was just wondering if there is some 'BKM' which states 'experimental (unstable?) implementations are prohibited from use until marked by software vendor as stable'. Maybe that's my problem - I could be confusing 'experimental' with 'unstable' after all:)
> 
> If experimental means potentially unstable, I would say we avoid such implementation in the OpenBMC. We need to keep OpenBMC stable and such new language / compiler features may be pretty gnarly to debug by the users.

Just a few thoughts:

1. We've not historically had this distinction / restriction.  We've
   tended to use the latest C++ standard soon after it is available in our
   Yocto compiler toolchain and even used std::experimental pieces.
    * Yocto supported GCC7 (C++17 support) in April 2018 and we enabled
      it in October 2018.
    * We used mapbox::variant with C++14, which was a C++14
    * implementation of the proposed C++17 API, and then used std::variant
      when it was available.
    * We still have code referring to std::experimental::filesystem
      which has almost identical API as std::filesystem.

2. "Vendors" don't really give us an indication of stability, so we'd
   need to define one.  Today, GCC's C++20 status is a simple "no
   support" (red), "partial support" (yellow), "done" (green).  Most of
   the C++20 support is in GCC-10 which we are now using.
    * https://gcc.gnu.org/projects/cxx-status.html

3. I suspect most of our locally written code is "less stable" than
   anything coming out of GCC simply by nature of how many users and tests
   they have.  Most of the C++ features accepted by the standard
   committees have an implementation in at least 1 of the big 3
   compilers (MS-VS, GCC, Clang) and so there is code around to use for
   test suites.

-- 
Patrick Williams
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20200602/8f9fdd8c/attachment-0001.sig>


More information about the openbmc mailing list