On Sat, Jan 22, 2022 at 11:22 AM Jakub Jelinek <jakub@redhat.com> wrote:
On Sat, Jan 22, 2022 at 09:56:24AM -0500, Kaleb Keithley wrote:
> I know you want FTBFS bugs now for gcc-12 issues, but let me run this by
> you first and I will open a BZ if necessary.
>
> For ceph I've hacked up a fix for all the other gcc-12isms in ceph and now
> it fails to build on ppc64le[1] with
> ...
>
> /usr/bin/ld: /builddir/build/BUILD/ceph-16.2.7/build/redhat-linux-build/lib/libceph-common.so.2:
> undefined reference to `int
> fmt::v8::detail::format_float<__ieee128>(__ieee128, int,
> fmt::v8::detail::float_specs, fmt::v8::detail::buffer<char>&)'
> /usr/bin/ld: /builddir/build/BUILD/ceph-16.2.7/build/redhat-linux-build/lib/libceph-common.so.2:
> undefined reference to `int
> fmt::v8::detail::snprintf_float<__ieee128>(__ieee128, int,
> fmt::v8::detail::float_specs, fmt::v8::detail::buffer<char>&)'
> collect2: error: ld returned 1 exit status

That looks like libceph-common.so.2 being linked against a library that
has long double in its public ABI and has not been rebuilt.
Once the dependence is rebuilt, packages depending on it need to be rebuilt.

The long double change is an ABI change, so this is kind of expected.
Mass rebuild unfortunately doesn't go according to the dependency graph (and
unfortunately it isn't a tree, there are cycles).

Indeed. fmt has not been rebuilt, or more accurately, it failed in the mass rebuild. Specifically the ppc64le build failed.  see https://koji.fedoraproject.org/koji/taskinfo?taskID=81489199

--

Kaleb