On 8/12/24 10:30 AM, Laur Aliste wrote:
Bash Version: 5.2 Patch Level: 21 Release Status: releaseDescription: One of my old script that's been in use for 10+ years is using built-in bash printf for rounding float value to int via `printf`; as of today (Aug 12) it started returning erroneous and inconsistent results. Note it doesn't require float input value - trying to format full integers reproduces the problem the same.
It's probably a bug with configure, which a gcc update has triggered. I've attached a patch.
Bash version hasn't been updated for ages so assuming it has to be
a dependency issue.
My question is why the (admittedly old) gnulib replacement strtod/strtold
is messing things up.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/*** ../bash-20231106/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-20231106/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);
;
OpenPGP_signature.asc
Description: OpenPGP digital signature
