PowerPC: Allow C/C++ to change long double type on GLIBC 2.32.
Segher Boessenkool
segher@kernel.crashing.org
Thu Oct 29 20:08:07 GMT 2020
On Thu, Oct 29, 2020 at 02:11:47PM -0500, will schmidt wrote:
> On Thu, 2020-10-29 at 13:05 -0400, Michael Meissner wrote:
> > On Mon, Oct 26, 2020 at 05:48:48PM -0500, will schmidt wrote:
> > > On Thu, 2020-10-22 at 18:15 -0400, Michael Meissner via Gcc-patches
> > > wrote:
> > > > PowerPC: Allow C/C++ to change long double type on GLIBC 2.32.
> > > >
> > > > This is a new patch. It turns off the warning about switching
> > > > the long double
> > > > type via compile line if the GLIBC is 2.32 or newer. It only
> > > > does this if the
> > > > languages are C or C++, since those language libraries support
> > > > switching the
> > > > long double type. Other languages like Fortran don't have any
> > > > current support
> > > > to provide both sets of interfaces to the library.
> > > >
> > > > 2020-10-21 Michael Meissner <meissner@linux.ibm.com>
> > > >
> > > > * config/rs6000/rs6000.c (rs6000_option_override_internal):
> > > > Allow
> > > > long double type to be changed for C/C++ if glibc 2.32 or
> > > > newer.
> > > > ---
> > > > gcc/config/rs6000/rs6000.c | 10 ++++++++--
> > > > 1 file changed, 8 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/gcc/config/rs6000/rs6000.c
> > > > b/gcc/config/rs6000/rs6000.c
> > > > index 50039c0a53d..940c15f3265 100644
> > > > --- a/gcc/config/rs6000/rs6000.c
> > > > +++ b/gcc/config/rs6000/rs6000.c
> > > > @@ -4158,10 +4158,16 @@ rs6000_option_override_internal (bool
> > > > global_init_p)
> > > >
> > > > if (rs6000_ieeequad != TARGET_IEEEQUAD_DEFAULT &&
> > > > TARGET_LONG_DOUBLE_128)
> > > > {
> > > > + /* Determine if the user can change the default long double
> > > > type at
> > > > + compilation time. Only C and C++ support this, and you
> > > > need GLIBC
> > > > + 2.32 or newer. Only issue one warning. */
> > > > static bool warned_change_long_double;
> > > > - if (!warned_change_long_double)
> > > > +
> > > > + if (!warned_change_long_double
> > > > + && (!OPTION_GLIBC
> > > > + || (!lang_GNU_C () && !lang_GNU_CXX ())
> > > > + || ((TARGET_GLIBC_MAJOR * 1000) + TARGET_GLIBC_MINOR)
> > > > < 2032))
> > > > {
> > > > - warned_change_long_double = true;
> > >
> > > Does this need to be added back elsewhere?
> >
> > At the present time, we are not contemplating adding the full support
> > to enable
> > configuring GCC to use IEEE 128-bit long double in GCC 10 or
> > earlier. This may
> > change depending on customer demands.
> >
>
> My question was/is specific with the removal of the assignment
>
> - warned_change_long_double = true;
>
> I didn't see where that line or an equvalent was added back. It's
> either set elsewhere (ok), or no longer used.
It isn't set anywhere else.
Mike, the patch is okay for trunk with that line restored. Thanks!
(And thanks for spotting the problem Will!)
Segher
More information about the Gcc-patches
mailing list