[m-dev.] rotd-2024-04-5 build failed / cannot compile lib in C# grade

Zoltan Somogyi zoltan.somogyi at runbox.com
Sat Apr 6 15:43:27 AEDT 2024


On 2024-04-06 15:11 +11:00 AEDT, "Julien Fischer" <jfischer at opturion.com> wrote:
>> What was the setup that got you the error? Can *you* reproduce it?
> 
> Just directly building stage 1 (in asm_fast.gc) and bootchecking the C#
> grade does not reproduce the problem.

I did almost exactly that (in asm_fast.gc.debug.stseg), and found that out.

> The procedure the script building
> the ROTDs is using is:
> 
>    /bin/rm -rf stage2 stage3 Mmake.params Mmake.stage.params
>    git submodule deinit -f .
>    git checkout -- VERSION
>    git clean -x -f -d
>    git pull --rebase
>    sed "s/VERSION=.*/VERSION=${rotd_version}/" VERSION > VERSION.new
>    mv VERSION.new VERSION
>    ./prepare.sh
>    ./configure --prefix=/home/jfischer/mercury/rotds/"${rotd_version}" \
>       --enable-libgrades=asm_fast.gc,hlc.gc,hlc.gc.tr,csharp,java,asm_fast.gc.profdeep.tr.stseg,hlc.par.gc
>    mmake depend
>    tools/bootcheck -j8

What grade does this use? I always specify that explicitly for a bootcheck;
I forgot the algorithm for the default. For an rotd, this should be hlc.gc.pregen,
right?

>    cd stage2
>    mmake -j8 install
> 
> Doing that with rotd-2024-04-04 as the bootstrap compiler does reproduce
> the problem for me.

At what stage in that script do you get the error? What fails, the bootcheck or
the mmake install? And how does it fail? I ask because it would take my laptop
longer to use that script to reproduce the problem than I have time for today.

And what was the last time the process worked without an error? All my changes
in the last few days should have affected only the LLDS backend. The only idea I had
right now for a *relatively* recent change that may affect the MLDS backend is
a diff that changed some "is this tag in this set" tests to use bitmaps, which could
*potentially* cause problems for C#, if there is a mismatch between the word size
of the C# target and the grade of the installed compiler, and if that process
of cross compilation was not properly managed. But looking at the log, I see that
this commit, 32b79a0bf9b10b56f5e52793a4eda538dfd0cdf7, updated only
the LLDS backend. And the code that we now use to select the common wordsize
between the host and the target, which was introduced by commit
c3fc02bca2606b114cb19dd9e9e3f25d824888fc, seems pretty bulletproof to me.

Zoltan.


More information about the developers mailing list