Dear Team, Just a gentle ping on this patch. Could someone please take a look when time permits?
Please let me know if there are any comments or if any further changes are required. Thanks, Naropanth Srikar Rao On Fri, Sep 25, 2026 at 2:54 PM Naropanth Srikar Rao < [email protected]> wrote: > From: nsrikarrao <[email protected]> > > On AIX (powerpc-ibm-aix*), IEEE 128-bit float is not enabled, meaning > rs6000/t-float128 and rs6000/t-linux are excluded from tmake_file. > Consequently, the _BitInt conversion routines from soft-fp/ and rs6000/ > were never added to LIB2ADD on AIX targets. > > This causes unresolved symbol link errors when running _BitInt testcases > in the GCC testsuite (e.g., bitint-123.c, bitint-28.c, and > bitint-ibm128-to-bitint.c) > due to missing symbols like __floatbitintdf and __fixtfbitint. > > Fix this by explicitly adding the soft-fp SFmode/DFmode and IBM 128-bit > double-double TFmode _BitInt conversion routines to rs6000/t-ibm-ldouble, > and exporting the corresponding symbols in libgcc-ibm-ldouble.ver. > > libgcc/ChangeLog: > > * config/rs6000/t-ibm-ldouble: Add soft-fp SFmode/DFmode and > rs6000 IBM 128-bit TFmode _BitInt conversion sources to LIB2ADD. > * config/rs6000/libgcc-ibm-ldouble.ver: Export __floatbitintsf, > __fixsfbitint, __floatbitintdf, __fixdfbitint, __floatbitinttf, > and __fixtfbitint. > > === gcc Summary === > > -# of expected passes 149039 > -# of unexpected failures 170 > +# of expected passes 149074 > +# of unexpected failures 158 > # of unexpected successes 18 > # of expected failures 1389 > -# of unresolved testcases 49 > +# of unresolved testcases 27 > # of unsupported tests 4915 > --- > libgcc/config/rs6000/libgcc-ibm-ldouble.ver | 6 ++++++ > libgcc/config/rs6000/t-ibm-ldouble | 15 +++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/libgcc/config/rs6000/libgcc-ibm-ldouble.ver > b/libgcc/config/rs6000/libgcc-ibm-ldouble.ver > index b27b4b49249..37a77c2163f 100644 > --- a/libgcc/config/rs6000/libgcc-ibm-ldouble.ver > +++ b/libgcc/config/rs6000/libgcc-ibm-ldouble.ver > @@ -4,4 +4,10 @@ GCC_3.4.4 { > __gcc_qsub > __gcc_qmul > __gcc_qdiv > + __floatbitintsf > + __fixsfbitint > + __floatbitintdf > + __fixdfbitint > + __floatbitinttf > + __fixtfbitint > } > diff --git a/libgcc/config/rs6000/t-ibm-ldouble > b/libgcc/config/rs6000/t-ibm-ldouble > index b13278498ec..d75e453f0cb 100644 > --- a/libgcc/config/rs6000/t-ibm-ldouble > +++ b/libgcc/config/rs6000/t-ibm-ldouble > @@ -1,6 +1,21 @@ > # GCC 128-bit long double support routines. > LIB2ADD += $(srcdir)/config/rs6000/ibm-ldouble.c > > +# Binary SFmode/DFmode _BitInt conversions from soft-fp/ > +rs6000_aix_bitint_bin_funcs = fixsfbitint floatbitintsf \ > + fixdfbitint floatbitintdf > +LIB2ADD += $(addprefix $(srcdir)/soft-fp/, \ > + $(addsuffix .c,$(rs6000_aix_bitint_bin_funcs))) > + > +# IBM extended double (__ibm128) <-> _BitInt conversions > +ibm128_bitint_funcs = floatbitinttf-ibm128 fixtfbitint-ibm128 > +LIB2ADD += $(addprefix $(srcdir)/config/rs6000/, \ > + $(addsuffix .c,$(ibm128_bitint_funcs))) > + > +ibm128_bitint_objs = $(addsuffix $(objext),$(ibm128_bitint_funcs)) \ > + $(addsuffix _s$(objext),$(ibm128_bitint_funcs)) > +$(ibm128_bitint_objs) : INTERNAL_CFLAGS += -Wno-psabi -I$(srcdir)/soft-fp > -I$(srcdir)/config/rs6000 > + > HOST_LIBGCC2_CFLAGS += -mlong-double-128 > > SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ibm-ldouble.ver > -- > 2.51.2 > >
