[m-rev.] for review: derive getopt.m and getopt_io.m from same template

Julien Fischer jfischer at opturion.com
Sat Sep 19 23:36:22 AEST 2020



On Sat, 19 Sep 2020, Julien Fischer wrote:

>
> On Sat, 19 Sep 2020, Zoltan Somogyi wrote:
>
>>  2020-09-18 17:08 GMT+10:00 "Julien Fischer" <jfischer at opturion.com>:
>>>  I suggest defining the following variable somewhere in this Mmakefile
>>>
>>>     SED=sed
>>>
>>>  and using the variable in these rules insteaed of hardcoding it as sed.
>>>  (That gives us the option of choosing which sed to use on systems where
>>>  the default sed may not be the one to use.)
>>
>>  Done. And thanks for the two big catches below.
>
> There's a more subtle problem I didn't catch :-(  With this change the
> following now fail during bootcheck:
>
>     hard_coded/getopt_test in grade asm_fast.gc
>     hard_coded/space in grade asm_fast.gc
>     valid/bug134 in grade asm_fast.gc
>     warnings/ambiguous_overloading in grade asm_fast.gc
>
> (I think the issue is due to chmod bumping the timestamp on getopt.m
> and the stage 2 compiler thinking it needs to rebuild the generated files.)

The following diff fixes the problem, by not symlinking getopt*.m from
the stage 1 directory.

Julien.

diff --git a/tools/bootcheck b/tools/bootcheck
index 3cccb3a..3323904 100755
--- a/tools/bootcheck
+++ b/tools/bootcheck
@@ -792,6 +792,7 @@ then
          cd library
          ${LN_S} ${root}/library/[a-l]*.m .
          ${LN_S} ${root}/library/[m-z]*.m .
+        /bin/rm -f getopt.m getopt_io.m
          ${LN_S} ${root}/library/*.hrl .
          ${LN_S} ${root}/library/getopt_template .
          # See comment below for why we use ${LN} rather than ${LN_S} here


More information about the reviews mailing list