On Sun, 16 Jan 2022 19:27:44 +0100
Jakub Jelinek <ja...@redhat.com> wrote:

> 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).

is it right, that the attribute appears only in static libs? I did a
scratch build for glib2
(https://koji.fedoraproject.org/koji/taskinfo?taskID=81396901) and
"readelf -A libglib-2.0.so.0.7100.0" shows nothing,
but "readelf -A libglib-2.0.a" returns "Tag_GNU_Power_ABI_FP: hard
float, 128-bit IEEE long double" for some *.o files in the archive.


                Dan
_______________________________________________
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