On Fri, Jan 14, 2022 at 04:07:08PM +0100, Dan HorĂ¡k wrote:
> 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.
a quick&dirty scan of /usr/lib64 on my F-34 workstation shows
many ./libQt5*
many ./libLLVM*
./libgobject-2.0
./libgio-2.0
./libglib-2.0
./libexiv2-xmp
./libhwy
./python3.9/site-packages/numpy/*
./libSDL2
./libiberty
./clang/12.0.1/lib/libclang_rt.builtins-powerpc64le.a
./ghdl/llvm/libgrt.a
./libc
as users of the Tag_GNU_Power_ABI_FP attribute. A vast majority of the
hits are "Tag_GNU_Power_ABI_FP: hard float, unspecified long double"
Translated to packages it is qt5-*, llvm + clang, numpy, SDL2, glib2,
exiv2, glibc, highway
The -mabi=ieeelongdouble defaulting gcc is now in the
f36-build-side-49600 side-tag (gcc -0.5.1.fc36, same as -0.5.fc36 in
rawhide except for the different ppc64le default ABI).
Jakub