https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?h=gawk-5.4-stable&id=bf85f8a3175af703597082d4c7e0abc2066a44d3 https://lists.gnu.org/archive/html/bug-gawk/2026-07/msg00019.html From bf85f8a3175af703597082d4c7e0abc2066a44d3 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Tue, 14 Jul 2026 10:14:50 +0300 Subject: Workaround fix for systems without MPFR and GMP. --- awk.h | 23 ++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/awk.h b/awk.h index dbad0d81..f4a84300 100644 --- a/awk.h +++ b/awk.h @@ -406,17 +406,24 @@ typedef struct exp_node { } nodep; struct { -#ifdef HAVE_MPFR union { AWKNUM fltnum; +#ifdef HAVE_MPFR mpfr_t mpnum; mpz_t mpi; - } nm; - int rndmode; #else - AWKNUM fltnum; - int for_alignment_only; // especially on 32-bit -#endif + // 7/2026: + // This is a workaround for systems that build + // gawk without MPFR and GMP. The NODE struct + // desperately needs to be refactored. +#if SIZEOF_VOID_P == 4 + char alignment[28]; +#else // SIZEOF_VOID_P != 4 + char alignment[48]; +#endif // SIZEOF_VOID_P != 4 +#endif // HAVE_MPFR + } nm; + int rndmode; // only used for MPFR. char *sp; size_t slen; int idx; @@ -561,10 +568,8 @@ typedef struct exp_node { #ifdef HAVE_MPFR #define mpg_numbr sub.val.nm.mpnum #define mpg_i sub.val.nm.mpi -#define numbr sub.val.nm.fltnum -#else -#define numbr sub.val.fltnum #endif +#define numbr sub.val.nm.fltnum #define typed_re sub.val.typre /* -- cgit v1.3