On Mon, 17 Jan 2022 at 14:01, Ben Beasley <c...@musicinmybrain.net> wrote:

> Skimming through Koschei, here are a sampling of regressions that seem
> to be associated with GCC 12. Some of these are in packages I maintain
> directly; others are via @neuro-sig.
>
> With a few exceptions, I have triaged these only to the extent of
> confirming the problem appeared at the same time as GCC 12 and noting
> the initial error. I mostly haven’t gotten around to filing or searching
> for bugs, upstream or downstream.
>
> Explicit deletion of the
> std::string(nullptr_t)/std::string_view(nullptr_t) constructors seems
> like it is going to be a popular cause of FTBFS in C++ packages. Use of
> this constructor mostly happens implicitly. I think explicit use of the
> default constructor, e.g. std::string_view(), will usually be the
> simplest correct substitute.
>

All such uses were undefined behaviour (and should have thrown an exception
at runtime if the code was ever executed. Fixing those is good.


> New compilation errors:
>
> COPASI: “error: passing 'const CDataVectorN<CCopasiTask>' as 'this'
> argument discards qualifiers [-fpermissive]”
>

What's the context? Is that being used as a comparison function in a std::
container or something?


>
> grpc: initializing std::string_view/absl::string_view with nullptr –
> fixed and PR sent upstream
>
> python-steps: “static assertion failed: key equality predicate must be
> invocable with two arguments of key type” via
> c++/12/bits/hashtable_policy.h
>

Maybe a variant of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103923



>
> vxl: “error: conversion from 'int' to 'std::__cxx11::basic_string<char>'
> is ambiguous” – looks like an attempt to initialize a string by
> std::string(nullptr), which is now explicitly deleted
> (“basic_string(nullptr_t) = delete”)
>

If it's actually initializing it with nullptr, that's just undefined (and
going to be ill-formed in C++23) and the code should be fixed.

If it's like the nlohmann:json case, I need to investigate more whether
it's a defect in the C++23 spec or the code should be fixed.




>
> On 1/14/22 09:31, Jakub Jelinek wrote:
> > Hi!
> >
> > gcc 12 snapshot has landed as the system compiler into rawhide today.
> > GCC 12 is going to enter its stage4 development phase (only regression
> > and documentation bugfixes allowed) on Monday 17th, so there should be
> > just those bugfixes and not new features etc. anymore.
> > https://gcc.gnu.org/gcc-12/changes.html lists important changes,
> > most important is probably that vectorization is enabled at -O2 now
> > which is the option with most of the distribution is built with.
> >
> > https://gcc.gnu.org/gcc-12/porting_to.html is so far incomplete and
> lists
> > some cases where people need to adjust their code.  Other things
> > include the usual C++ header changes, where previously some standard
> > header included some other header as an implementation detail but it
> doesn't
> > any longer and so code that relied on such indirect include that isn't
> > required by the standard needs to include the header that provides
> whatever
> > it relies on.  Or e.g. packages using -Werror where new warnings are
> > reported with the newer compiler and -Werror results in build failures.
> >
> > If there are bugs on the compiler side, please let me know immediately,
> > so that those bugs can be fixed before the mass rebuild next week.
> >
> > Another important thing I wanted to say is that we'd like to switch
> > ppc64le from the numerically problematic IBM extended long double to
> > IEEE 754 quad long double.  This is an ABI change.  Some libraries
> > are already built so that they support both ABIs at the same time,
> > including glibc, libstdc++, libgcc, libgfortran etc.
> > For other libraries and binaries, the compiler, assembler and linker
> > will notice if they use long double and flag them as using either
> > IBM or IEEE long double and linker (or I think dynamic linker too)
> > might complain when things are mixed.
> > Right now the rawhide gcc still defaults to -mabi=ibmlongdouble
> > but the glibc/gcc libraries are built compatibly with both.
> > We'd like to configure gcc shortly before the mass rebuild with
> > --with-long-double-format=ieee so that it will default to
> > -mabi=ieeelongdouble, probably on a side-tag build first, and it
> > will be highly desirable to rebuild at least some of the most commonly
> > used library packages in the order of dependencies there, otherwise
> > I'd be afraid the mass rebuild could fail for way too many packages
> > (as the mass rebuild doesn't do dependency order rebuilds but just
> > goes through packages alphabetically or so).
> > Any suggestions on which packages have commonly used library packages
> > that use long double?
> > readelf -A on libraries on ppc64le prints either nothing (either
> > the library is thought not to use long double or supports both ABIs
> > transparently or hasn't been rebuilt for some years), or
> > Attribute Section: gnu
> > File Attributes
> >    Tag_GNU_Power_ABI_FP: hard float, 128-bit IBM long double
> > for libraries (or binaries or object files) that use IBM long double
> > only or
> > Attribute Section: gnu
> > File Attributes
> >    Tag_GNU_Power_ABI_FP: hard float, 128-bit IEEE long double
> > for IEEE long doubles.
> > So I think we want to rebuild on a side-tag packages that
> > provide shared libraries used by hundreds of other packages that
> > are
> >    Tag_GNU_Power_ABI_FP: hard float, 128-bit IBM long double
> > right now.
> >
> >       Jakub
> > _______________________________________________
> > devel mailing list -- devel@lists.fedoraproject.org
> > To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> > 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@lists.fedoraproject.org
> > Do not reply to spam on the list, report it:
> https://pagure.io/fedora-infrastructure
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> 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@lists.fedoraproject.org
> Do not reply to spam on the list, report it:
> https://pagure.io/fedora-infrastructure
>
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to