ref: 8c228a123fa0c6062570964011854302bbf57242
parent: 2eadf1fa1703e5da4a98ba9c1a2bdc23bd140d8c
author: unobe@cpan.org <unobe@cpan.org>
date: Tue Aug 17 10:00:47 EDT 2021
mk for only supported archs 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.
--- a/sys/src/9/mkfile
+++ b/sys/src/9/mkfile
@@ -3,11 +3,13 @@
bcm64\
cycv\
kw\
- mtx\
+# power arch:\
+# mtx\
omap\
pc\
pc64\
- ppc\
+# power arch:\
+# ppc\
sgi\
teg2\
xen\
--- a/sys/src/boot/zynq/mkfile
+++ b/sys/src/boot/zynq/mkfile
@@ -7,6 +7,9 @@
all:V: $TARG
+install:V:
+ echo install not supported >[1=2]
+
clean:V:
rm -rf $TARG *.$O
@{objtype=$cputype mk -f mkfile.port clean}
--- a/sys/src/mkfile
+++ b/sys/src/mkfile
@@ -1,5 +1,12 @@
</$objtype/mkfile
+SUPPORTED_OBJS=\
+ 386\
+ amd64\
+ arm\
+ arm64\
+ mips\
+
LIBS=\
lib9p\
libString\
@@ -52,10 +59,14 @@
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:
@@ -62,11 +73,15 @@
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) @{