Re: Fedora 33 System-Wide Change proposal: CompilerPolicy Change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/06/20 10:23 +0200, Tomáš Popela wrote:
On Fri, Jun 5, 2020 at 9:56 AM Kevin Kofler <kevin.kofler@xxxxxxxxx> wrote:

I am opposed to this change. Chromium and Firefox build fine with GCC. I
think that a distribution should be built with a consistent toolchain
wherever possible.


Kevin, that's not true at all. Maybe it looks like it builds fine for you,
because all the fixes get to you, but I as a co-maintainer of Chromium in
Fedora and ex-maintainer of Chromium in RHEL can say that most of the time
I spent fixing GCC problems. Just look at the current SPEC file and search
for gcc there.. There are several gcc related bugs -
https://src.fedoraproject.org/rpms/chromium/blob/master/f/chromium.spec. Or
even better look at
https://bugs.chromium.org/p/chromium/issues/detail?id=819294 where the GCC

The very first one there is just a bug in Chromium: using a type
without including the header that defines it. There are several others
like that (relying on unique_ptr bing declared implicitly, relying on
nullptr_t being declared implicitly ...)

Those are upstream bugs and should be fixed. Period.

Otherwise chromium will become a ghetto^W monoculture that can't be
built with anything except one compiler. And maybe one day a change in
libc++ would have broken chromium anyway.

"libstdc++: do not assume unique_ptr has ostream operator"

It would be nice if somebody had reported this to libstdc++ as a bug,
so it could be fixed. That was found in chromium over a year ago. Sigh.
I'll fix that on Monday (I have the day off today) but if it had been
reported last year it could have been fixed in GCC 9 and 10 by now.

"Explicit specialization in non-namespace scope is not allowed in C++,
and GCC breaks build because of that."

"The notation for initialization of structs referring to its properties
is invalid in C++. This is not accepted in GCC."

So chromium is using non-standard C++.

Part of the problem seems to be that upstream are not good citizens in
the open source community. Improving the portability of the code (and
also finding GCC bugs and so improving GCC) is a Good Thing™.

related patches are tracked. In the end I realized that I really don't have
time to fix all the time some GCC related issues so I moved the RHEL 6
Chromium package to use clang to save some of my time so I could devote it
somewhere else.

That's fair. But those issues *should* get fixed, by someone. If they
don't, we all lose out. But I totally get that you need to be able to
build it and ship it, and using Clang allows that. I just fear that if
nobody finds the issues, the whole ecosystem suffers.

tl;dr This is a chromium problem, not just a GCC problem. Fixing those
portability problems is an investment and reduces technical debt.

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux