Hi Alex,

Thanks for the suggestion and for your guidance throughout. I really
appreciate your patience and how friendly and helpful the feedback has been.

I just wanted to check if you would prefer that I resend the patch using
the -v2 option so it's clearly marked as an updated version, or if it's
fine to proceed as is for now.

Please let me know your preference.

Thanks,
Aditya

On Fri, May 29, 2026, 12:38 AM Alexander Kanavin <[email protected]>
wrote:

> Thanks, this is good.
>
> It also helps to use -vN option when re-sending a patch or a patchset.
> The header will change to [PATCH v2] ... and so on, so it's easy to
> see which is the latest version.
>
> Alex
>
> On Thu, 28 May 2026 at 20:57, Aditya GS <[email protected]> wrote:
> >
> > Backport upstream fix to improve stability of randtest.sh by
> > retrying when sigma is too small, avoiding intermittent failures.
> >
> > https://bugzilla.yoctoproject.org/show_bug.cgi?id=16254
> >
> > Signed-off-by: Aditya GS <[email protected]>
> > ---
> >  .../gawk/files/randtest-fix.patch             | 139 ++++++++++++++++++
> >  meta/recipes-extended/gawk/gawk_5.3.0.bb      |   1 +
> >  2 files changed, 140 insertions(+)
> >  create mode 100644 meta/recipes-extended/gawk/files/randtest-fix.patch
> >
> > diff --git a/meta/recipes-extended/gawk/files/randtest-fix.patch
> b/meta/recipes-extended/gawk/files/randtest-fix.patch
> > new file mode 100644
> > index 0000000000..0b813e667e
> > --- /dev/null
> > +++ b/meta/recipes-extended/gawk/files/randtest-fix.patch
> > @@ -0,0 +1,139 @@
> > +From f2250f4bc864913437619af7a9834a1c24915acd Mon Sep 17 00:00:00 2001
> > +From: "Arnold D. Robbins" <[email protected]>
> > +Date: Thu, 28 May 2026 09:52:41 -0400
> > +Subject: [PATCH] Improve test/randtest.sh.
> > +
> > +Backport upstream fix to improve stability of randtest.sh by retrying
> > +when sigma is too small, avoiding intermittent failures.
> > +
> > +Upstream-Status: Backport
> > +[
> https://cgit.git.savannah.gnu.org/cgit/gawk.git/commit/?id=f2250f4bc864913437619af7a983
> > +
> > +---
> > +
> > +diff --git a/test/randtest.sh b/test/randtest.sh
> > +index 597376a8..6ae6f830 100755
> > +--- a/test/randtest.sh
> > ++++ b/test/randtest.sh
> > +@@ -45,68 +45,77 @@ $AWK 'BEGIN{
> > +     nsamples=('$NSAMPLES');
> > +     max_allowed_sigma=('$MAX_ALLOWED_SIGMA');
> > +     nruns=('$NRUNS');
> > +-    for(tau=0;tau<nsamples/2;tau++) corr[tau]=0;
> > ++    max_retries=5
> > +
> > +-    for(run=0;run<nruns;run++) {
> > +-      sum=0;
> > ++    for (retry=0; retry<max_retries; retry++) {
> > ++        for(tau=0; tau<nsamples/2; tau++) corr[tau]=0;
> > +
> > +-      # Fill an array with a sequence of samples that are a
> > +-      # function of pairs of rand() values.
> > ++        for(run=0; run<nruns; run++) {
> > ++            sum=0;
> > +
> > +-      for(i=0;i<nsamples;i++) {
> > +-         samp[i]=((rand()-0.5)*(rand()-0.5))^2;
> > +-         sum=sum+samp[i];
> > +-         }
> > ++          # Fill an array with a sequence of samples that are a
> > ++          # function of pairs of rand() values.
> > +
> > +-      # Subtract off the mean of the sequence:
> > ++            for(i=0; i<nsamples; i++) {
> > ++                samp[i]=((rand()-0.5)*(rand()-0.5))^2;
> > ++              sum=sum+samp[i];
> > ++            }
> > +
> > +-      mean=sum/nsamples;
> > +-      for(i=0;i<nsamples;i++) samp[i]=samp[i]-mean;
> > ++          # Subtract off the mean of the sequence:
> > +
> > +-      # Calculate an autocorrelation function on the sequence.
> > +-      # Because the values of rand() should be independent, there
> > +-      # should be no peaks in the autocorrelation.
> > ++          mean=sum/nsamples;
> > ++          for(i=0;i<nsamples;i++) samp[i]=samp[i]-mean;
> > +
> > +-      for(tau=0;tau<nsamples/2;tau++) {
> > +-          sum=0;
> > +-          for(i=0;i<nsamples/2;i++) sum=sum+samp[i]*samp[i+tau];
> > +-          corr[tau]=corr[tau]+sum;
> > +-          }
> > ++          # Calculate an autocorrelation function on the sequence.
> > ++          # Because the values of rand() should be independent, there
> > ++          # should be no peaks in the autocorrelation.
> > +
> > +-      }
> > +-    # Normalize the autocorrelation to the tau=0 value.
> > ++            for(tau=0; tau<nsamples/2; tau++) {
> > ++              sum=0;
> > ++              for(i=0;i<nsamples/2;i++) sum=sum+samp[i]*samp[i+tau];
> > ++              corr[tau]=corr[tau]+sum;
> > ++            }
> > +
> > +-    max_corr=corr[0];
> > +-    for(tau=0;tau<nsamples/2;tau++) corr[tau]=corr[tau]/max_corr;
> > ++        }
> > ++        # Normalize the autocorrelation to the tau=0 value.
> > +
> > +-    # OPTIONALLY Print out the autocorrelation values:
> > ++        max_corr=corr[0];
> > ++        for(tau=0;tau<nsamples/2;tau++) corr[tau]=corr[tau]/max_corr;
> > +
> > +-    # for(tau=0;tau<nsamples/2;tau++) print tau, corr[tau] >
> "pairpower_corr.data";
> > ++        # OPTIONALLY Print out the autocorrelation values:
> > +
> > +-    # Calculate the sigma for the non-zero tau values:
> > ++        # for(tau=0;tau<nsamples/2;tau++) print tau, corr[tau] >
> "pairpower_corr.data";
> > +
> > +-    power_sum=0;
> > ++        # Calculate the sigma for the non-zero tau values:
> > +
> > +-    for(tau=1;tau<nsamples/2;tau++) power_sum=power_sum+(corr[tau])^2;
> > ++        power_sum=0;
> > +
> > +-    sigma=sqrt(power_sum/(nsamples/2-1));
> > ++        for(tau=1;tau<nsamples/2;tau++)
> power_sum=power_sum+(corr[tau])^2;
> > +
> > +-    # See if any of the correlations exceed a reasonable number of
> sigma:
> > ++        sigma=sqrt(power_sum/(nsamples/2-1));
> > +
> > +-    passed=1;
> > +-    for(tau=1;tau<nsamples/2;tau++) {
> > +-      if ( abs(corr[tau])/sigma > max_allowed_sigma ) {
> > +-          print "Tau=", tau ", Autocorr=", corr[tau]/sigma, "sigma";
> > +-          passed=0;
> > +-          }
> > ++        if (sigma < 1e-6) {
> > ++            print "Sigma too small, retrying run", retry
> > ++            continue
> > +         }
> > +-    if(!passed) {
> > +-      print "Test failed."
> > +-      exit(1);
> > ++
> > ++        # See if any of the correlations exceed a reasonable number of
> sigma:
> > ++
> > ++        for(tau=1;tau<nsamples/2;tau++) {
> > ++            if (abs(corr[tau])/sigma > max_allowed_sigma) {
> > ++                print "Tau=", tau ", Autocorr=", corr[tau]/sigma,
> "sigma";
> > ++                print "Test failed."
> > ++                exit 1
> > ++            }
> > +         }
> > +-    else exit (0);
> > ++
> > ++        exit 0
> > +     }
> > +
> > ++    print "Test failed after retries due to unstable sigma"
> > ++    exit 1
> > ++}
> > ++
> > + function abs(abs_input) { return(sqrt(abs_input^2)) ; }
> > + '
> > +
> > +--
> > +2.34.1
> > +
> > diff --git a/meta/recipes-extended/gawk/gawk_5.3.0.bb
> b/meta/recipes-extended/gawk/gawk_5.3.0.bb
> > index ac9d8500d6..06184a4b48 100644
> > --- a/meta/recipes-extended/gawk/gawk_5.3.0.bb
> > +++ b/meta/recipes-extended/gawk/gawk_5.3.0.bb
> > @@ -18,6 +18,7 @@ PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr,
> mpfr"
> >  SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
> >             file://0001-m4-readline-add-missing-includes.patch \
> >             file://run-ptest \
> > +          file://randtest-fix.patch \
> >             "
> >
> >  SRC_URI[sha256sum] =
> "378f8864ec21cfceaa048f7e1869ac9b4597b449087caf1eb55e440d30273336"
> > --
> > 2.34.1
> >
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#237726): 
https://lists.openembedded.org/g/openembedded-core/message/237726
Mute This Topic: https://lists.openembedded.org/mt/119535145/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to