]> git.lizzy.rs Git - plan9front.git/commitdiff
mk for only supported archs
authorunobe@cpan.org <unobe@cpan.org>
Tue, 17 Aug 2021 14:00:47 +0000 (14:00 +0000)
committerunobe@cpan.org <unobe@cpan.org>
Tue, 17 Aug 2021 14:00:47 +0000 (14:00 +0000)
http://fqa.9front.org/fqa1.html#1.2 states the supported archs.
However, clean and nuke also remove build files for 0 (spim) and q
(power).  'mk all' using those archs fails; 'mk kernels' also tries to
build all the kernels, even those which are not supported.  For
example, I tried to build the power arch (qc, qa, ql) and without
surprise it failed (when building dtracy): ...
mk dtracy
qc -FTVw dtracy.c
yacc -v -d -D1 parse.y
qc -FTVw cgen.c
qc -FTVw act.c
qc -FTVw type.c
 == regfree ==
REGISTER R0 <11> STRUCT DTAct cgen.c:302
 == regfree ==

REGISTER R0 <11> STRUCT DTAct act.c:266

 == regfree ==
qc -FTVw agg.c
cgen.c:299 unknown type in regalloc: STRUCT DTAct
cgen.c:299 bad opcode in gmove INT -> STRUCT DTAct
cgen.c:302 unknown type in regalloc: STRUCT DTAct
cgen.c:302 bad opcode in gmove INT -> STRUCT DTAct
cgen.c:302 error in regfree: 0 [0]
REGISTERmk: qc -FTVw cgen.c  : exit status=rc 387386: qc 387392: error R0
 <11> STRUCT DTAct act.c:269

act.c:250 unknown type in regalloc: STRUCT DTAct
act.c:250 bad opcode in gmove INT -> STRUCT DTAct
act.c:266 unknown type in regalloc: STRUCT DTAct
act.c:266 bad opcode in gmove INT -> STRUCT DTAct
act.c:266 error in regfree: 0 [0]
act.c:269 unknown type in regalloc: STRUCT DTAct
act.c:269 bad opcode in gmove INT -> STRUCT DTAct
act.c:269 error in regfree: 0 [0]
act.c:274 unknown type in regalloc: STRUCT DTAct
act.c:274 bad opcode in gmove INT -> STRUCT DTAct
act.c:274 error in regfree: 0 [0]
too many errors
mk: for(i in cc ...  : exit status=rc 382748: rc 387379: mk 387381: error
mk: date for (i ...  : exit status=rc 373781: rc 382226: mk 382227: error
cpu%

The patch below skips over non-supported architectures.  Is that
something we want?  This way, 'mk kernels' should work without a
problem (tested on amd64).  Then if someone works on getting those
architectures supported again in the future, they can be added back
in.

sys/src/9/mkfile
sys/src/boot/zynq/mkfile
sys/src/mkfile

index 9208a7b94e869c2c7695278bc64bae52c18faab8..d4e9a72283d1fc9c5138cd0ff3d548314f80097c 100644 (file)
@@ -3,11 +3,13 @@ ARCH=\
        bcm64\
        cycv\
        kw\
-       mtx\
+#      power arch:\
+#      mtx\
        omap\
        pc\
        pc64\
-       ppc\
+#      power arch:\
+#      ppc\
        sgi\
        teg2\
        xen\
index 90f503446f7390b7dc95d9c178a4d2f8ea6bd6da..2dd24c7113330a8daa0046cc7942723c69a319ff 100644 (file)
@@ -7,6 +7,9 @@ TEXTBASE=0xfffc0000
 
 all:V: $TARG
 
+install:V:
+       echo install not supported >[1=2]
+
 clean:V:
        rm -rf $TARG *.$O
        @{objtype=$cputype mk -f mkfile.port clean}
index 00c1800c8a7992e701198e763f8b5e18f3c2b21d..7711200b6e0d217ebe74956d0cb7cdae21edcc56 100644 (file)
@@ -1,5 +1,12 @@
 </$objtype/mkfile
 
+SUPPORTED_OBJS=\
+       386\
+       amd64\
+       arm\
+       arm64\
+       mips\
+
 LIBS=\
        lib9p\
        libString\
@@ -52,21 +59,29 @@ none:VQ:
 
 all install clean nuke:VQ:
        date
-       for (i in $LIBS $SUBSYS $CMDS) @{
-               cd $i
-               mk $target
+       if (~ $objtype $SUPPORTED_OBJS) {
+               for (i in $LIBS $SUBSYS $CMDS) @{
+                       cd $i
+                       mk $target
+               }
        }
+       if not
+               echo $objtype arch not supported by 9front >[1=2]
        date
 
 installall:V:
        echo "installall not supported"
 
 release:V:
-       mk nuke
-       rm -f /$objtype/lib/ape/*.a
-       rm -f /$objtype/lib/*.a
-       mk install
-       mk clean
+       if (~ $objtype $SUPPORTED_OBJS) {
+               mk nuke
+               rm -f /$objtype/lib/ape/*.a
+               rm -f /$objtype/lib/*.a
+               mk install
+               mk clean
+       }
+       if not
+               echo $objtype architecture not supported >[1=2]
 
 kernels:V:
        for (i in 9 boot) @{