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  <meiss...@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? 



>             if (TARGET_IEEEQUAD)
>               warning (OPT_Wpsabi, "Using IEEE extended precision "
>                        "%<long double%>");
> -- 
> 2.22.0
> 
> 

Reply via email to