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

Reply via email to