Hi,
The attached patch eliminates a recursive dependency for
locore.o in the resultant kernel Makefile.
Without the patch you get this in the Makefile:
locore.o: $S/arch/macppc/macppc/locore.o
and these dependencies:
# make -p | egrep '^locore.o' | sed 's/.*://' | tr ' ' '\n'
/usr/src/sys/arch/macppc/macppc/locore.S
assym.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/assym.h
/usr/src/sys/sys/syscall.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/trap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/trap.h
/usr/src/sys/arch/macppc/macppc/locore.o
With the patch you get this in the Makefile:
locore.o: $S/arch/macppc/macppc/locore.S
and the recursive dependency goes away:
# make -p | egrep '^locore.o' | sed 's/.*://' | tr ' ' '\n'
/usr/src/sys/arch/macppc/macppc/locore.S
assym.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/assym.h
/usr/src/sys/sys/syscall.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/asm.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/param.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pmap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/pte.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/psl.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/intr.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/machine/trap.h
/usr/src/sys/arch/macppc/compile/GENERIC.MP/obj/powerpc/trap.h
The recursive dependency also explains the error I've been
getting sporadically when building the kernel in parallel on
macppc for the last few months:
/usr/src/sys/arch/macppc/macppc/locore.S:35:19: error: assym.h: No such file or
directory
*** Error 1 in target '/usr/src/sys/arch/macppc/macppc/locore.o'
*** Error 1 in /usr/src/sys/arch/macppc/compile/GENERIC.MP (Makefile:820
'/usr/src/sys/arch/macppc/macppc/locore.o')
Thoughts/Feedback?
--
Scott Cheloha
Index: sys/arch/macppc/conf/files.macppc
===================================================================
RCS file: /cvs/src/sys/arch/macppc/conf/files.macppc,v
retrieving revision 1.88
diff -u -p -r1.88 files.macppc
--- sys/arch/macppc/conf/files.macppc 13 Jun 2017 01:44:27 -0000 1.88
+++ sys/arch/macppc/conf/files.macppc 11 Oct 2017 01:41:27 -0000
@@ -17,7 +17,7 @@ file arch/macppc/macppc/mem.c
file arch/macppc/macppc/ofw_machdep.c
file arch/macppc/macppc/openfirm.c
file arch/macppc/macppc/openprom.c
-file arch/macppc/macppc/locore.o
+file arch/macppc/macppc/locore.S
file dev/cninit.c
file arch/macppc/macppc/ofwreal.S