BASH PATCH REPORT
                            =================

Bash-Release:   5.2
Patch-ID:       bash52-033

Bug-Reported-by:        Florian Weimer <[email protected]>
Bug-Reference-ID:       <[email protected]>
Bug-Reference-URL:      https://lists.gnu.org/archive/html/bug-bash/2023-11/msg00104.html

Bug-Description:

A typo in the autoconf test for strtold causes false negatives for strtold
being available and working when compiled with gcc-14.

Patch (apply with `patch -p0'):

*** ../bash-5.2-patched/configure.ac    Fri Aug 11 14:52:31 2023
--- configure.ac        Tue Nov 21 12:00:25 2023
***************
*** 899,903 ****
               [AC_LANG_PROGRAM(
               [[#include <stdlib.h>]],
!               [[long double r; char *foo, bar; r = strtold(foo, &bar);]]
       )],
       [bash_cv_strtold_broken=no],[bash_cv_strtold_broken=yes])
--- 900,904 ----
               [AC_LANG_PROGRAM(
               [[#include <stdlib.h>]],
!               [[long double r; char *foo, *bar; r = strtold(foo, &bar);]]
       )],
       [bash_cv_strtold_broken=no],[bash_cv_strtold_broken=yes])

*** ../bash-5.2-patched/configure       Fri Aug 18 16:27:53 2023
--- configure   Tue Nov 21 12:00:30 2023
***************
*** 15923,15927 ****
 main (void)
 {
! long double r; char *foo, bar; r = strtold(foo, &bar);

   ;
--- 15932,15936 ----
 main (void)
 {
! long double r; char *foo, *bar; r = strtold(foo, &bar);

   ;

*** ../bash-5.2-patched/builtins/printf.def     Fri Jun 24 10:09:50 2022
--- builtins/printf.def Tue Aug 13 10:36:55 2024
***************
*** 710,714 ****

                   p = getfloatmax ();
!                   f = mklong (start, "L", 1);
                   PF (f, p);
                 }
--- 710,714 ----

                   p = getfloatmax ();
!                   f = mklong (start, FLOATMAX_CONV, USE_LONG_DOUBLE);
                   PF (f, p);
                 }

*** ../bash-5.2/patchlevel.h    2020-06-22 14:51:03.000000000 -0400
--- patchlevel.h        2020-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
    looks for to find the patch level (for the sccs version string). */

! #define PATCHLEVEL 32

 #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
    looks for to find the patch level (for the sccs version string). */

! #define PATCHLEVEL 33

 #endif /* _PATCHLEVEL_H_ */